写的不到位的地方,欢迎评论指出不足之处
- Hadoop2.X 出现了一个 Yarn (资源管理)
- MapReduce 没有后台的常服务(临时服务)
- 与 HDFS 是两个独立的概念
- Yarn 模型
- container 容器,里面运行我们的 AppMaster、Map/Reduce Task
- 解耦
- mapreduce on yarn
- container 容器,里面运行我们的 AppMaster、Map/Reduce Task
- 架构
- Resource Manager
- Node Manage
NameNode (NN) | NameNode (NN) | ZooKepper Failover Controller (ZKFS) | DataNode (DN) | ZooKepper | Node Manage (NM) | Journal Node (JN) | Resource Manager (RM) | |
one | yes | yes | yes | |||||
two | yes | yes | yes | yes | yes | yes | ||
three | yes | yes | yes | yes | yes | |||
four | yes | yes | yes | yes | ||||
说明 | 监控 NN 情况 | Yarn 监控 DN 情况 | 负责 NN | Yarn 主控 协调和管理资源 (主备) 与NN的节点分开 | ||||
Hadoop | 1.X | 2.X | ||||||
HDFS | HA 为了兼容,没有过多改 NN,新增角色 ZKFC | |||||||
Yarn | Yarn 不用新增角色 直接在RM进程中增加了HA的模块 |
配置文件
mapred-site.xml ( mapreduce on yarn )
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>two:2181,three:2181,four:2181</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>myHA</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>three</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>four</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>three:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>four:8088</value>
</property>
将配置文件使用 scp 发送到其它相关节点上
vim slaves 由于之前编辑过 DN,所以 NM 就不用再编辑了
启动 Yarn
start-yarn.sh
# 此时 NodeManager 启动,RM 需要手动到指定节点上人为启动
yarn-daemon.sh start resourcemanager
顺利配置并启动后,通过浏览器 http://four:8088/cluster
脚本启动
ssh two "/opt/zookeeper-3.4.6/bin/zkServer.sh start"
ssh three "/opt/zookeeper-3.4.6/bin/zkServer.sh start"
ssh four "/opt/zookeeper-3.4.6/bin/zkServer.sh start"
ssh one "/opt/hadoop-2.6.5/sbin/start-dfs.sh"
ssh one "/opt/hadoop-2.6.5/sbin/start-yarn.sh"
ssh three "/opt/hadoop-2.6.5/sbin/yarn-daemon.sh start resourcemanager"
ssh four "/opt/hadoop-2.6.5/sbin/yarn-daemon.sh start resourcemanager"
测试
首先确认有一个目录下有一个数据文件
操作
cd /opt/hadoop-2.6.5/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /data/root /data/output
注意:搭建过程会遇到一些问题
1、hadoop 版本与 zookeeper 版本要兼容
2、换个浏览器即可
3、通过网上搜索到的一些处理方案,进行多次尝试后并没有将这个异常处理好。主要还是要记得将 RM节点 启动 yarn-daemon.sh start resourcemanager ,上传文件等一些操作还是正常的没有什么影响,无语的是教学视频也这样(之后要是有解决方案,我再补充内容)