hadoop框架hdfs、mapreduce、yarn三大组件内容

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

hadoop框架hdfs、mapreduce、yarn三⼤组件内容
Hadoop是什么?
1.hadoop是⼀个由Apache基⾦会所开发的分布式系统基础架构。

2.主要解决,海量数据的储存和海量数据的分析计算问题。

3.⼴义来说,hadoop通常是指⼀个更⼴泛的概念----Hadoop⽣态圈。

Hadoop三⼤发⾏版本
Hadoop三⼤发⾏版本:Apache、Cloudera、Hortonworks。

Apache版本最原始(最基础)的版本,对于⼊门学习最好。

Cloudera在⼤型互联⽹企业中⽤的较多。

Hortonworks⽂档较好。

Hadoop的优势(4⾼)
1.⾼可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。

2.⾼扩展性:在集群间分配任务数据,可⽅便的扩展数以千计的节点。

3.⾼效性:在MapReduce的思想下,Hadoop是并⾏⼯作的,以加快任务处理速度。

4.⾼容错性:能够⾃动将失败的任务重新分配。

HDFS的局限
HDFS的上述种种特点⾮常适合于⼤数据量的批处理,但是对于⼀些特点问题不但没有优势,⽽且有⼀定的局限性,主要表现以下⼏个⽅⾯:
1、不适合低延迟数据访问
如果要处理⼀些⽤户要求时间⽐较短的低延迟应⽤请求(⽐如毫秒级、秒级的响应时间),则HDFS不适合。

HDFS是为了处理⼤型数据集⽽设计的,主要是为了达到⾼的数据吞吐量⽽设计的,
延迟时间通常是在分钟乃⾄⼩时级别。

对于那些有低延迟要求的应⽤程序,HBase是⼀个更好的选择,尤其是对于海量数据集进⾏访问要求毫秒级响应的情况,单HBase的设计是对单⾏或少量数据集的访问,对HBase的访问必须提供主键或主键范围。

2、⽆法⾼效存储⼤量⼩⽂件
3、不⽀持多⽤户写⼊和随机⽂件修改
在HDFS的⼀个⽂件中只有⼀个写⼊者,⽽且写操作只能在⽂件末尾完成,即只能执⾏追加操作。

HDFS架构概述
Node(nn):存储⽂件的元数据,如⽂件名,⽂件⽬录结构,⽂件属性(⽣存时间,副本数,⽂件权限),以及每个⽂件的快列表和块所在的DataNode等。

2.DataNode(dn):在本地⽂件系统储存⽂件块数据,以及块数据的校检和。

3.Secondary NameNode(2nn):⽤来监控HDFS状态的辅助后台程序,每隔⼀段时间获取HDFS元数据的快照。

HDFS是分布式⽂件系统,有⾼容错性的特点,可以部署在价格低廉的服务器上,主要包含namenode和datanode。

Namenode是hdfs中⽂件⽬录和⽂件分配管理者,它保存着⽂件名和数据块的映射管理,数据块和datanode列表的映射关系。

其中⽂件名和数据块的关系保存在磁盘上,但是namenode上不保存数据块和datanode列表的关系,该列表是通过datanode上报建⽴起来的。

Namenode上的有三种交互,1、client访问namenode获取的相关datanode的信息。

2、datanode⼼跳汇报当前block的情况。

3、secondarynamenode做checkpoint交互。

DataNode它负责实际的数据存储,并将数据息定期汇报给NameNode。

DataNode以固定⼤⼩的block为基本单位组织⽂件内容,默认情况下block⼤⼩为128MB。

当⽤户上传⼀个⼤的⽂件到HDFS上时,该⽂件会被切分成若⼲个block,分别存储到不同的DataNode;同时,为了保证数据可靠,会将同⼀个block以流⽔线⽅式写到若⼲个(默认是3,该参数可配置)不同的DataNode上。

这种⽂件切割后存储的过程是对⽤户透明的。

SecondaryNameNode,⽤来辅助namenode进⾏元数据的合并,并且传回到namenode。

YARN架构概述
YARN主要包括⼏种⾓⾊
1.ResourceManager(RM):主要接收客户端任务请求,接收和监控NodeManager(NM)的资源情况汇报,负责资源的分配与调度,启动和监控ApplicationMaster(AM),⼀个集群只有⼀个。

2.NodeManager:主要是节点上的资源管理,启动Container运⾏task计算,上报资源、container情况给RM和任务处理情况给AM,整个集群有多个。

3.ApplicationMaster:主要是单个Application(Job)的task管理和调度,向RM进⾏资源的申请,向NM发出launch Container指令,接收NM的task处理状态信息。

每个应⽤有⼀个。

4.Container:是YARN中资源的抽象,它封装了某个节点上⼀定量的资源(CPU和内存两类资源)。

Hadoop运⾏环境搭建
虚拟机环境准备
1. 克隆虚拟机
2. 修改克隆虚拟机的静态IP
3. 修改主机名
4. 关闭防⽕墙
5. 创建jinghang⽤户
6. 配置jinghang⽤户具有root权限(详见《⼤数据技术之Linux》)
7.在/opt⽬录下创建⽂件夹
(1)在/opt⽬录下创建module、software⽂件夹
[jinghang@hadoop101 opt]$ sudo mkdir module
[jinghang@hadoop101 opt]$ sudo mkdir software
(2)修改module、software⽂件夹的所有者cd
[jinghang@hadoop101 opt]$ sudo chown jinghang:jinghang module/ software/
[jinghang@hadoop101 opt]$ ll
总⽤量 8
drwxr-xr-x. 2 jinghang jinghang 4096 1⽉ 17 14:37 module
drwxr-xr-x. 2 jinghang jinghang 4096 1⽉ 17 14:38 software
Hadoop运⾏模式
Hadoop运⾏模式包括:本地模式、伪模式以及完全分布式模式。

编写集群分发脚本xsync
1. scp(secure copy)安全拷贝
(1)scp定义:
scp可以实现服务器与服务器之间的数据拷贝。

(from server1 to server2)
(2)基本语法
scp -r $pdir/$fname $user@hadoop$host:$pdir/$fname
命令递归要拷贝的⽂件路径/名称⽬的⽤户@主机:⽬的路径/名称
2. rsync 远程同步⼯具
rsync主要⽤于备份和镜像。

具有速度快、避免复制相同内容和⽀持符号链接的优点。

rsync和scp区别:⽤rsync做⽂件的复制要⽐scp的速度快,rsync只对差异⽂件做更新。

scp是把所有⽂件都复制过去。

(1)基本语法
rsync -av $pdir/$fname $user@hadoop$host:$pdir/$fname
命令选项参数要拷贝的⽂件路径/名称⽬的⽤户@主机:⽬的路径/名称
选项参数说明
表2-2
选项功能
-a 归档拷贝
-v 显⽰复制过程
3. xsync集群分发脚本
(1)需求:循环复制⽂件到所有节点的相同⽬录下
(2)需求分析:
(a)rsync命令原始拷贝:
rsync -av /opt/module root@hadoop103:/opt/
(b)期望脚本:
xsync要同步的⽂件名称
(c)说明:在/home/jinghang/bin这个⽬录下存放的脚本,jinghang⽤户可以在系统任何地⽅直接执⾏。

(3)脚本实现
集群配置
集群部署规划
表2-3
hadoop102 hadoop103 hadoop104
HDFS NameNodeDataNode DataNode SecondaryNameNodeDataNode
YARN NodeManager ResourceManagerNodeManager NodeManager
2. 配置集群
(1)核⼼配置⽂件
配置core-site.xml
[jinghang@hadoop102 hadoop]$ vi core-site.xml
在该⽂件中编写如下配置
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:9000</value>
</property>
<!-- 指定Hadoop运⾏时产⽣⽂件的存储⽬录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
(2)HDFS配置⽂件
配置hadoop-env.sh
[jinghang@hadoop102 hadoop]$ vi hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置hdfs-site.xml
[jinghang@hadoop102 hadoop]$ vi hdfs-site.xml
在该⽂件中编写如下配置
<property>
<name>dfs.replication</name>
<value>3</value>
</property> <。

相关文档
最新文档