Hadoop2.7.4 yarn(HA)集群搭建步骤(CentOS7)
群节点分配:
Park01:Zookeeper、NameNode(active)、ResourceManager(active)
Park02:Zookeeper、NameNode(standby)
Park03:Zookeeper、ResourceManager(standby)
Park04:DataNode、NodeManager、JournalNode
Park05:DataNode、NodeManager、JouralNode
Park06:DataNode、NodeManager、JournalNode
安装步骤:
0、永久关闭每台机器的防火墙
systemctl stop firewalld.service
1、为每台机器配置主机名(每台机器改为固定ip)
Park01->hadoop01
Park02->hadoop02
Park03->hadoop03
Park04->hadoop04
Park05->hadoop05
Park06->hadoop06
修改host文件,并hostname更改主机名
2、通过远程命令将配置好的hosts文件scp到其他5台节点上
例:scp /etc/hosts hadoop02:/etc
3、为每台机器配置ssh免秘登录
ssh-keygen
ssh-copy-id root@hadoop01(分别发送到6台节点上)
4、前三台机器安装和配置zookeeper
配置conf目录下的zoo.cfg以及创建myid文件(安装步骤略)
5、为每台机器安装jdk和配置jdk环境
6、为每台机器配置主机名
hostnamectl set-hostname hadoop01
7、节点的hadoop
配置 hadoop-env.sh
配置jdk安装所在目录
配置hadoop配置文件所在目录
8、配置core-site.xml
<configuration>
<!--用来指定hdfs的老大,ns为固定属性名,表示两个namenode-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns</value>
</property>
<!--用来指定hadoop运行时产生文件的存放目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/software/hadoop-2.7.4/tmp</value>
</property>
<!--执行zookeeper地址-->
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
</configuration>
节点的hdfs-site.xml
<configuration>
<!--执行hdfs的nameservice为ns,和core-site.xml保持一致-->
<property>
<name>dfs.nameservices</name>
<value>ns</value>
</property>
<!--ns下有两个namenode,分别是nn1,nn2-->
<property>
<name>dfs.ha.namenodes.ns</name>
<value>nn1,nn2</value>
</property>
<!--nn1的RPC通信地址-->
<property>
<name>dfs.namenode.rpc-address.ns.nn1</name>
<value>hadoop01:9000</value>
</property>
<!--nn1的http通信地址-->
<property>
<name>dfs.namenode.http-address.ns.nn1</name>
<value>hadoop01:50070</value>
</property>
<!--nn2的RPC通信地址-->
<property>
<name>dfs.namenode.rpc-address.ns.nn2</name>
<value>hadoop02:9000</value>
</property>
<!--nn2的http通信地址-->
<property>
<name>dfs.namenode.http-address.ns.nn2</name>
<value>hadoop02:50070</value>
</property>
<!--指定namenode的元数据在JournalNode上的存放位置,这样,namenode2可以 从jn集群里获取
最新的namenode的信息,达到热备的效果-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
;hadoop06:8485/ns</value>
</property>
<!--指定JournalNode存放数据的位置-->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/software/hadoop-2.7.4/journal</value>
</property>
<!--开启 namenode 故障时自动切换-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!--配置切换的实现方式-->
<property>
<name>dfs.client.failover.proxy.provider.ns</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!--配置隔离机制-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<!--配置隔离机制的ssh登录秘钥所在的位置-->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<!--配置namenode数据存放的位置,可以不配置,如果不配置,默认用的是
core-site.xml里配置的hadoop.tmp.dir的路径-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/software/hadoop-2.7.4/tmp/namenode</value>
</property>
<!--配置datanode数据存放的位置,可以不配置,如果不配置,默认用的是
core-site.xml里配置的hadoop.tmp.dir的路径-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/software/hadoop-2.7.4/tmp/datanode</value>
</property>
<!--配置block副本数量-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--设置 hdfs 的操作权限, false 表示任何用户都可以在 hdfs 上操作文件-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
10、 配置 mapred-site.xml
<configuration>
<property>
<!--指定mapreduce运行在yarn上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
11、配置yarn-site.xml
<configuration>
<!--开启YARN HA -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!--指定两个 resourcemanager 的名称-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!--配置rm1,rm2的主机-->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop03</value>
</property>
<!--开启yarn恢复机制-->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<!--配置zookeeper的地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
<description>For multiple zk services, separate them with comma</description>
</property>
<!--指定YARN HA的名称-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yarn-ha</value>
</property>
<property>
<!--指定yarn的老大resoucemanager的地址-->
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<!--NodeManager 获取数据的方式-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
12、配置slaves文件
配置代码:
hadoop04
hadoop05
hadoop06
13、配置 hadoop 的环境变量(可不配)
JAVA_HOME=/home/software/jdk1.8
HADOOP_HOME=/home/software/hadoop-2.7.4
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export JAVA_HOME PATH CLASSPATH HADOOP_HOME
14、 根据配置文件,创建相关的文件夹,用来存放对应数据
在hadoop-2.7.4目录下创建:
①journal目录
②创建tmp目录
③在tmp目录下,分别创建namenode目录和datanode目录
台机器上
比如向hadoop02节点传输:
scp -r hadoop-2.7.4 hadoop02:/home/software
Hadoop集群启动
16、启动zookeeper集群
在Zookeeper安装目录的bin目录下执行:sh zkServer.sh start
利用sh zkServer.sh status检查状态
17、格式化zookeeper
在zk的leader节点上执行:
hdfs zkfc -formatZK,这个指令的作用是在zookeeper集群上生成ha节点 (ns节点)
注:18--24步可以用一步来替代:进入hadoop安装目录的sbin目录,执行: start-dfs.sh 。 但建议还是按部就班来执行,比较可靠。
18、启动journalnode集群
节点上执行:
切换到hadoop安装目录的sbin目录下,执行:
sh hadoop-daemons.sh start journalnode
然后执行jps命令查看:
19、节点的namenode
节点上执行:
hadoop namenode -format
节点的namenode
节点上执行:
hadoop-daemon.sh start namenode
21、节点的namenode节点变为standby namenode节点
节点上执行:
hdfs namenode -bootstrapStandby
22、 节点的 namenode 节点
节点上执行:
hadoop-daemon.sh start namenode
23、在04,05,06节点上启动datanode节点
在 04,05,06 节点上执行:hadoop-daemon.sh start datanode
24、启动zkfc(启动FalioverControllerActive)
在01,02节点上执行:
hadoop-daemon.sh start zkfc
25、节点上启动主Resourcemanager
节点上执行:start-yarn.sh
启动成功后,04,05,06节点上应该有nodemanager 的进程
节点上启动副 Resoucemanager
节点上执行:yarn-daemon.sh start resourcemanager
27、测试
输入地址: http://192.168.234.21:50070 ,查看 namenode 的信息,是active状态 的
节点的namenode,此时返现standby的namenode变为active。
28、 查看 yarn 的管理地址
端口)
最新文章
- es6小白学习笔记(一)
- 规则引擎集成接口(七)规则引擎调用Java类
- 将txt多行文本合并成一行
- 12.从上往下遍历二元树[LevelOrderOfBinaryTree]
- loadingDialog
- 2015.01.15(android AsyncTask)
- mysql 基础知识
- aspx利用cookie值来停止silverlight中的计时器
- SOD-80 LL34 DL-35 (2.7~75V)贴片稳压二极管【worldsing 笔记
- UESTC_Rain in ACStar 2015 UESTC Training for Data Structures<;Problem L>;
- iOS开发面试题整理 (三)
- Js实现select联动,option从数据库中读取
- 2018Pycharm激活方法
- C#中自定义高精度Timer定时器的实例教程
- delphi中怎么获取服务器的时间
- QSettings配置读写-win注册表操作-ini文件读写
- MD5在线查询的实现
- Android进阶笔记13:ListView篇之ListView刷新显示(全局 和 局部)
- HDFS HA 的 hdfs-site.xml
- LCA【p2912】 牧场散步 (USACO08OCT)
热门文章
- linux进阶命令
- oracle导入导出常见问题及解决方案
- A1139-引爆炸弹 计蒜客 bfs剪枝
- 奉献pytorch 搭建 CNN 卷积神经网络训练图像识别的模型,配合numpy 和matplotlib 一起使用调用 cuda GPU进行加速训练
- USACO1.6 回文质数 Prime Palindromes
- python 并发编程 多线程 互斥锁
- [BJWC2008] Gate Of Babylon
- laravel框架之及時更改
- python-day8(正式学习)
- [LeetCode] 223.矩形面积