HDFS

快速学习-HBase简介

筅森魡賤 提交于 2020-02-17 11:40:02
第1章 HBase简介 1.1 什么是HBase HBase的原型是Google的BigTable论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持结构化的数据存储。 官方网站:http://hbase.apache.org – 2006年Google发表BigTable白皮书 – 2006年开始开发HBase – 2008年北京成功开奥运会,程序员默默地将HBase弄成了Hadoop的子项目 – 2010年HBase成为Apache顶级项目 – 现在很多公司二次开发出了很多发行版本,你也开始使用了。 HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。 HBase是Google Bigtable的开源实现,但是也有很多不同之处。比如:Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MAPREDUCE来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google

网站日志流量分析系统之数据清洗处理(离线分析)

妖精的绣舞 提交于 2020-02-17 05:58:21
一、概述    网站日志流量分析系统之(日志埋点) 这里我们已经将相关数据通过ajax发送至日志服务器,这里我只用了一台日志服务器(本机Windows环境),日志收集主要分为以下几个步骤:   ①日志服务器集结合logback,并自定义日志过滤器,将日志发给对应FlumeAgent客户端   ②FlumeAgent客户端根据接收器策略分发至中心服务器   ③中心服务器将数据分别落地至HDFS及Kafka(这里先做 离线分析 ,中心服务器落地HDFS;实时分析中心服务器的Flume策略暂时不加,后续实时分析时加上) 二、服务器规划 三、日志收集实现 ①日志服务器结合logback,并自定义日志过滤器,将日志发送至FlumeAgent客户端   继续编写日志服务器代码(代码已经上传Github: https://github.com/Simple-Coder/log-demo ),增加logback.xml配置如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration> <configuration> <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyy

Spark 读取文件系统的数据

本秂侑毒 提交于 2020-02-16 21:58:18
目录: 一、 在 spark-shell 中读取 Linux 系统本地文件 二、 在 spark-shell 中读取 HDFS 系统文件 三、 编写独立应用程序,读取 HDFS 系统文件 (此处有sbt安装教程——> Spark之Scala独立应用编程 ) 环境: Hadoop 2.6.0以上 java JDK 1.7以上 Spark 3.0.0-preview2 sbt 0.13.9 一、在 spark-shell 中读取 Linux 系统本地文件“/home/hadoop/test1.txt”,然后统计出文件的行数: 1、 首先启动spark-shell进入Spark-shell模式:(进入spark目录下后 输入命令 bin/spark-shell 启动spark-shell模式 ) 2、 加载text文件 (spark创建sc,可以加载本地文件和HDFS文件创建RDD) val textFile = sc.textFile("file:///home/hadoop/test1.txt") #注意file:后是三个“/” 注意:加载HDFS文件和本地文件都是使用textFile,区别是添加前缀(hdfs://和file://)进行标识。 3、 获取RDD文件textFile所有项 (文本文件即总共行数) 的计数 (还有很多其他的RDD操作,自行百度) textFile

【Spark】六、org.apache.hadoop.security.AccessControlException

≡放荡痞女 提交于 2020-02-16 19:12:43
Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=L.MOON, access=WRITE, inode="/user/lsy/result1/_temporary/0":lsy:supergroup:drwxr-xr-x Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=L.MOON, access=WRITE, inode="/user/lsy/result1/_temporary/0":lsy:supergroup:drwxr-xr-x 修改配置文件:hdfs.site-xml【hadoop-2.7.2/etc/hadoop/hdfs.site.xml】 <!-- 修改HDFS权限 --> <property> <name>dfs.permissions</name> <value>false</value> </property> 分发修改后的文件【scp】,并重启HDFS 再次运行程序,即可成功写入! 来源: CSDN 作者

HDFS简介及基本概念

↘锁芯ラ 提交于 2020-02-15 17:50:38
(一)HDFS简介及其基本概念   HDFS(Hadoop Distributed File System)是hadoop生态系统的一个重要组成部分,是hadoop中的的存储组件,在整个Hadoop中的地位非同一般,是最基础的一部分,因为它涉及到数据存储,MapReduce等计算模型都要依赖于存储在HDFS中的数据。HDFS是一个分布式文件系统,以流式数据访问模式存储超大文件,将数据分块存储到一个商业硬件集群内的不同机器上。   这里重点介绍其中涉及到的几个概念:(1) 超大文件 。目前的hadoop集群能够存储几百TB甚至PB级的数据。(2) 流式数据访问 。HDFS的访问模式是: 一次写入,多次读取 ,更加关注的是读取整个数据集的整体时间。(3) 商用硬件。 HDFS集群的设备不需要多么昂 贵和特殊,只要是一些日常使用的普通硬件即可,正因为如此,hdfs节点故障的可能性还是很高的,所以 必须要有机制来处理这种单点故障 ,保证数据的可靠。(4) 不支持低时间延迟的数据访问 。hdfs关心的是高数据吞吐量,不适合那些要求低时间延迟数据访问的应用。(5) 单用户写入,不支持任意修改。 hdfs的数据以读为主,只支持单个写入者,并且写操作总是以添加的形式在文末追加,不支持在任意位置进行修改。 1、HDFS数据块   每个磁盘都有默认的数据块大小,这是文件系统进行数据读写的最小单位

Hadoop 2.6.0 集群部署

天涯浪子 提交于 2020-02-15 10:43:36
  Hadoop的集群部署和单节点部署类似,配置文件不同,另外需要修改网络方面的配置   首先,准备3台虚拟机,系统为CentOS 6.6,其中一台为namenode 剩余两台为 datanode;   修改主机名主节点为:hadoopha,数据节点主机名分别为hadoop1、hadoop2,具体修改方法 点击这里 查看   本例中这3台虚拟机处于同一个局域网,网络连接设置为桥接,ip地址分别为是hadoopha为:192.168.1.42,hadoop1为:192.168.1.78、hadoop2为:192.168.1.44,实际中可以设置静态ip为连续的   然后修改hosts网络指向,用vim /etc/hosts打开文件,后面添加3行记录:    192.168.1.42 hadoopha   192.168.1.78 hadoop1   192.168.1.44 hadoop2   然后保存退出      上面那些localhost指向不用改,新添加3行即可,这三台主机都要修改hosts文件保持一致   以上是主机之间网络通信的基础,接下来在hadoopha上单独配置hadoop环境,hadoop1和hadoop2不用安装hadoop,只有jdk即可   同样把hadoop解压到指定目录,配置一下HADOOP_HOME到环境变量中,然后进入hadoop安装目录,修改配置

大数据-HDFS(四)

倖福魔咒の 提交于 2020-02-15 05:26:57
大数据-HDFS(四) hdfs的架构以及block块和副本机制 hdfs分布式文件系统是一个主从架构,主节点是NameNode,负责管理整个集群以及维护集群的元数据信息;从节点是DataNode,主要负责文件数据存储。 hdfs将所有的文件全部抽象成为 block 块来进行存储,不管文件大小,全部一视同仁都是以block块的统一大小和形式进行存储,方便分布式文件系统对文件的管理。 从2.7.3版本开始,官方关于Data Blocks 的说明中,block size由64 MB变成了128 MB的;block块的大小可以通过 hdfs -site .xml 当中的配置文件进行指定。 <property> <name>dfs.block.size</name> <value>块大小 以字节为单位</value>//只写数值就可以 </property> 抽象成数据块的好处 1、一个文件可能大于集群中任意一个磁盘容量,就需要将文件切割为小块存储在多块磁盘。 10T*3/128 = xxx块 2T,2T,2T 文件方式存 —–> 多个block块,这些block块属于一个文件 2、使用块抽象,而不是使用文件抽象,可以简化存储子系统。 3、块非常适合用于数据库备份,进而提高数据容错能力和可用性。 块缓存 通常DataNode从磁盘中读取块,但对于访问频繁的文件

Flume 与Kafka区别

主宰稳场 提交于 2020-02-14 22:26:54
   今天开会讨论日志处理为什么要同时使用Flume和Kafka,是否可以只用Kafka 不使用Flume?当时想到的就只用Flume的接口多,不管是输入接口(socket 和 文件)以及输出接口(Kafka/HDFS/HBase等)。    考虑单一应用场景,从简化系统的角度考虑,在满足应用需求的情况下可能只使用一个比较好。但是考虑到现有系统业务发展,为了后面的灵活扩展,在系统设计时留有一定的扩展性感觉更重要。可能使用Flume+kafka架构相对只使用Kafka会多占用1-2台机器做Flume日志采集,但是为了方便以后日志数据处理方式的扩展,可以采用Flume+kafka架构。   Flume :管道 ----个人认为比较适合有多个生产者场景,或者有写入Hbase、HDFS和kafka需求的场景。   Kafka :消息队列-----由于Kafka是Pull模式,因此适合有多个消费者的场景。   目前应用场景,一台日志转发机负责产生日志。后端需要通过Strom消费日志信息,建议可以设置成log-->Kafka->Strom.如果以后有写入Hbase或者HDFS的需求可以,在Kafka后面再接上Strom,或者在日志转发机上直接日志落地,由Flume去读取日志消息。 参考: Kafka与Flume区别 Kafka与Flume对比 基于Flume的美团日志收集系统 Using

大数据集群

折月煮酒 提交于 2020-02-14 19:07:30
常见搭建方式: 一、使用框架进行快速 搭建,常见CDH(Cloudera Manager)和HDP( Ambari ) https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html CDH安装有几个坑: 1.确保所有的hostname 写正确 2.初次进入时候需要取消AUTO-SSL,在配置文件里面也要将SSL改为0 3.检验parchael的时候需要保证钥匙一致,无需将SHA25后缀改成sha。 更多坑,参考 https://yq.aliyun.com/articles/578800 二、使用docker或者kvm安装,见 https://www.cnblogs.com/xuwujing/p/8150109.html 三、自用使用云平台 大数据集群常见接口: https://blog.csdn.net/sheldonwong/article/details/79933787 Python 操作hadoop 常见包 1.MRJOB----> Mapreduce 2.Dumbo,Pydoop----->Mapreduce 3.hdfs --->hdfs from hdfs import InsecureClient hdfs_client = InsecureClient(url,

hadoop Requested data length 86483783 is longer than maximum configured RPC length

冷暖自知 提交于 2020-02-14 18:18:47
错误: hadoop Requested data length 86483783 is longer than maximum configured RPC length 解决: 修改NameNode的hdfs-site.xml配置文件,添加以下配置: <property> <name>ipc.maximum.data.length</name> <value>134217728</value> </property> 允许ipc通讯最大的数据包为128MB,默认配置为64MB。 最后平滑重启NameNode,在重启异常的DataNode解决 借鉴: https://zhuanlan.zhihu.com/p/44018321 来源: https://www.cnblogs.com/yjt1993/p/12308205.html