【Hadoop】⼤数据简介及Hadoop平台搭建
1、⼤数据简介
⼤数据特点:⼤(数据量⼤,PB级别的数据)、繁(多样性、复杂性,⾮结构化数据)、快(查询、处理、计算速度快)、有价值(Value)。⼤数据的4V特性:Volume(海量的数据规模),Variety(多样的数据类型),Velocity(快速的数据流转),Value(发现数据价值)。
2008年成⽴的Cloudera是最早将Hadoop商⽤的公司,为合作伙伴提供Hadoop的商⽤解决⽅案,主要是包括⽀持、咨询服务和培训。2009年Hadoop的创始⼈Doug Cutting也加盟Cloudera公司,Cloudera产品主要为CDH,Cloudera Manager,Cloudera Support。CDH是Cloudera的Hadoop发⾏版,完全开源,⽐Apache Hadoop在兼容性,安全性,稳定性上有所增强。Cloudera Manager是集的软件分发及管理监控平台,可以在⼏个⼩时内部署好⼀个Hadoop集,并对集的节点及服务进⾏实时监控。Cloudera Support即是对Hadoop的技术⽀持。Cloudera的标价为每年每个节点4000美元。Cloudera开发并贡献了可实时处理⼤数据的Impala项⽬。
Cloudera公司的Hadoop发⾏版是CDH版。Google的三篇论⽂:MapReduce、GFS->HDFS分布式⽂件系统、bigtable->HBase数据库。Hadoop 1.x = MapReduce+HDFS。
2、Hadoop风⾬⼗年
(1)2006年2⽉,Apache Hadoop项⽬正式启动以⽀持MapReduce和HDFS的独⽴发展。
(2)2007年10⽉,第⼀个Hadoop⽤户组会议召开,社区贡献开始急剧上升。
(3)2008年1⽉,Hadoop成为Apache顶级项⽬。
(4)2008年8⽉,第⼀个Hadoop商业化公司Cloudera成⽴。
(5)2009 年3⽉,Cloudera推出世界上⾸个Hadoop发⾏版——CDH(Cloudera's Distribution including Apache Hadoop)平台,完全由开放源码软件组成。
(6)2010年-2011年,扩⼤的Hadoop社区忙于建⽴⼤量的新组件(Crunch,Sqoop,Flume,Oozie等)来扩展Hadoop 的使⽤场景和可⽤性。
(7)2011年5⽉,Mapr Technologies公司推出分布式⽂件系统和MapReduce引擎——MapR Distribution for Apache Hadoop。
(8)2011年7⽉,Yahoo!和硅⾕风险投资公司 Benchmark Capital创建了Hortonworks 公司,旨在让Hadoop更加可靠, 并让企业⽤户更容易安装、管理和使⽤Hadoop。
(9)2014年2⽉,Spark逐渐代替MapReduce成为Hadoop的缺省执⾏引擎,并成为Apache基⾦会顶级项⽬。
3、企业⼤数据平台架构
企业⼤数据平台架构分为离线计算和实时计算。离线计算如Hadoop,以及以Hadoop为底层的⼤数据框架,如Hive,HBase等。实时计算如Storm和Spark等,⽤于流式计算和在线分析。企业中,通常实时计算和离线计算都是在⼀个架构或⼀个集中,所需要的数据共⽤共享。此外,搭建⼤数据架构还需要考虑容灾机制、监控系统、恢复机制等等。
4、Hadoop模块
Hadoop 2.x主要包括以下四个模块:
(1)Hadoop Common:为其他Hadoop模块提供基础设施。
(2)Hadoop HDFS:⼀个⾼可靠、⾼吞吐量的分布式⽂件系统。
(3)Hadoop MapReduce:⼀个分布式的离线并⾏计算框架。
(4)Hadoop YARN:⼀个新的MapReduce框架,任务调度与资源管理。
5、HDFS(Hadoop Distributed File System)⽂件系统
(1)设计思想:⼀次写⼊,多次读取,写⼊后存储在HDFS上就不能修改,但可以把⽂件下载到本地,把HDFS上的⽂件删除,修改后再上传到HDFS上,实现⽂件的修改。
(2)⽂件属性(⽂件元数据):⽂件名称、存储位置、副本数、权限(RWX)、有哪些存储块,各个块存储在哪些DataNode上。
(3)存储的形式:块block,块的⼤⼩:默认128MB,可以⽤户⾃定义⼤⼩。
⽐如:⽂件⼤⼩为500MB,块⼤⼩是256MB,第⼀个块:256MB,第⼆个块:244MB。
如果⽂件⼤⼩⼩于数据块的⼤⼩,它是不会占据整个块的空间的。⽽且多个⽂件不能放到⼀个块中。
HDFS不太适合存储⼤量的⼩⽂件,可以将⼩⽂件进⾏合并。
(4)主从架构
主节点namenode:管理存储元数据;
从节点datanode:真正存储⽂件,消耗硬盘。
NameNode是主节点,存储⽂件的元数据,如⽂件名,⽂件⽬录结构,⽂件属性(⽣成时间,副本数,⽂件权限),以及每个⽂件的块列表和块所在DataNode等。
DataNode在本地⽂件系统存储⽂件块数据,以及块数据的校验和。
SecondaryNameNode是⽤来监控HDFS状态的辅助后台程序,每隔⼀段时间获取HDFS元数据的快照。
(5)读写流程
⾸先client通过RPC协议请求namenode获取⽂件的位置,然后到具体datanode上读写。在哪个datanode上读写遵循就近原则,选择距离client近的datanode读写,⽬的是减少⽹络传输的时间消耗和资源消耗。
client -> namenode
client -> datanode
淘宝⽂件系统是TFS,在github上开源。
6、Yarn框架
(1)主从架构
主节点:resourcemanager,管理并分配整个集的资源;
从节点:nodemanager,消耗资源。
(2)作⽤:集资源分配管理,多任务调度。
总的资源:CPU、内存、硬盘。
多任务调度:运⾏的任务需要时间和资源。
ApplicationMaster应⽤管理者:每⼀个应⽤都会有⼀个应⽤管理者。
Container容器:每个map都是在各⾃独⽴的环境中去运⾏(资源独⽴),任务就在容器中运⾏。hadoop分布式集搭建
(3)ResourceManager:负责处理客户端请求,启动/监控ApplicationMaster,监控NodeManager,资源分配与调度。
NodeManager:负责单个节点上的资源管理,处理来⾃ResourceManager的命令和来⾃ApplicationMaster的命令。
ApplicationMaster:负责数据切分,为应⽤程序申请资源,并分配给内部任务,负责任务监控与容错。
Container:对任务运⾏环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运⾏相关的信息。
NodeManager和DataNode⼀般会放在⼀台机器上。DataNode消耗磁盘空间,NodeManager消耗资源。集单个节点的资源都在NodeManager中,每个Container容器也都是在不同的NodeManager节点上运⾏的。
Yarn是在Hadoop 2.x系统中才有的新的框架组件,Hadoop 0.x 和 Hadoop 1.x 版本中的组件服务很少,只有HDFS+MapReduce。
7、Hadoop伪分布式环境搭建
(1)三种模式
Local (Standalone) Mode  本地模式:不使⽤HDFS⽂件系统,使⽤本地⽂件系统,程序员调试⽤;
Pseudo-Distributed Mode  伪分布式模式:单节点,⼀台机器,使⽤HDFS⽂件系统,程序员调试⽤;
Fully-Distributed Mode  完全分布式模式:真实⽣产环境⽤,集。
(2)卸载OpenJDK,安装Oracle JDK
解压JDK:software] $ tar  -zxf    -C  /opt/modules/
在/etc/profile⽂件中配置环境变量:
#JAVA_HOME
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
配置环境变量后在root⽤户下输⼊ source /etc/profile 命令,并 exit 退出,重新登录,环境变量即可⽣效。
(3)解压Hadoop
software] $ tar -zxf hadoop-2.5. -C /opt/modules/
(4)建议:删除rm -rf /opt/modules/hadoop-2.5.0/share/doc/,⾥⾯是英⽂⽂档,没有作⽤
(5)配置过程
1)hadoop-env.sh、mapred-env.sh、yarn-env.sh指定Java的安装路径
export JAVA_HOME=/opt/modules/jdk1.7.0_67
2)l,指定namenode所在机器位置及namenode和datanode之间的交互端⼝号,另外也是指定使⽤的是HDFS⽂件系统。Hadoop1.x系列使⽤的旧端⼝号是9000,Hadoop2.x系列使⽤的是8020端⼝号。
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-senior.ibeifeng:8020</value>
</property>
3)l
指定副本数个数:
<property>
<name&plication</name>
<value>1</value>
</property>
修改⽂件系统块⼤⼩:
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
4)l,更改Hadoop默认的临时⽬录位置,⽤于存放块⽂件和元数据⽂件
<property>
<name&p.dir</name>
<value>/opt/modules/hadoop-2.5.0/data/tmp</value>
</property>
5)slaves,指定从节点位置(主机名),包括datanode和nodemanager
6)格式化namenode,对于元数据进⾏初始化,⽣成元数据,否则⽆法读取元数据
hadoop-2.5.0] $ bin/hdfs namenode -format
7)更改l⽂件名称,指定MR运⾏在yarn上
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
8)l
<property>
<name&demanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name&sourcemanager.hostname</name>
<value>hadoop-senior.ibeifeng</value>
</property>
9)Yarn外部管理界⾯端⼝号:8088,Yarn和外部浏览器的交互端⼝号。
HDFS外部管理界⾯端⼝号:50070,HDFS和外部浏览器的交互端⼝号。
SecondaryNameNode外部管理界⾯端⼝号:50090,SecondaryNameNode和外部浏览器的交互端⼝号。
使⽤IP地址加端⼝号也同样可以访问。如果出现⽆法访问的情况,可能是防⽕墙导致的,也可能是selinux导致的,还有可能是本地Windows的hosts⽂件的⽹络映射没有设置导致的。
8、组件启动
启动namenode:
sbin/hadoop-daemon.sh start namenode
启动datanode:
sbin/hadoop-daemon.sh start datanode
启动resourcemanager:
sbin/yarn-daemon.sh start resourcemanager
启动nodemanager:
sbin/yarn-daemon.sh start nodemanager
9、⽇志
⽇志⽂件:分析⽇志⽂件的格式.log和.out
.
log:通过log4j记录的,记录⼤部分应⽤程序的⽇志信息
.out:记录标准输出和标准错误⽇志,少量记录
⽇志⽂件的命名规则:【框架名称-⽤户名-进程名-主机名.⽇志格式后缀】
出错⼀定要学会看⽇志,看错误信息,看.log的⽇志
10、Hadoop⾃带历史服务器
配置:l
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop-senior.ibeifeng:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop-senior.ibeifeng:19888</value>
</property>
存放正在运⾏的Hadoop的作业记录:mapreduce.jobhistory.intermediate-done-dir
存放已经完成的Hadoop的作业⽬录:mapreduce.jobhistory.done-dir
由于历史服务作业记录很多,所以存储的形式是按照年/⽉/⽇形式存放在对应的⽬录中,以便于查和管理。
启动历史服务器:sbin/mr-jobhistory-daemon.sh start historyserver
11、⽇志聚集

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。