Hadoop学习笔记 5 - hdfs和yarn高可用性的搭建与配置
2017-09-05 15:46
573 查看
节点分配
主机名 | IP | 安装的软件 | 运行的进程 |
---|---|---|---|
node1 | 192.168.2.171 | jdk、hadoop | namenode、DFSZKFailoverController(zkfc)、ResourceManager |
node2 | 192.168.2.172 | jdk、hadoop | namenode、DFSZKFailoverController(zkfc)、ResourceManager |
node3 | 192.168.2.173 | jdk、hadoop、zookeeper | DataNode、NodeManager、JournalNode、QuorumPeerMain |
node4 | 192.168.2.174 | jdk、hadoop、zookeeper | DataNode、NodeManager、JournalNode、QuorumPeerMain |
node5 | 192.168.2.175 | jdk、hadoop、zookeeper | DataNode、NodeManager、JournalNode、QuorumPeerMain |
一、zookeeper集群的安装与配置(在node3,node4,node5上配置)
1.上传安装包并解压
tar -zxvf zookeeper-3.4.9.tar.gz -C /home/hadoopcd /home/hadoop/zookeeper-3.4.9/conf
cp zoo_sample.cfg zoo.cfg
编辑zoo.cfg:
vim zoo.cfg
按照下图所示编辑:
2.在zookeeper目录下新建两个目录:
cd /home/hadoop/zookeeper-3.4.9mkdir data
mkdir log
cd data
touch myid
vim myid(在每台上面都不一样,参考zoo.cfg文件上server后面的3、4、5,如我写的server.3=node3:2288:3388,那么在node3上myid里就应该是3,以此类推)
3.启动ZK节点(分别在node3、node4、node5上启动)
cd /home/hadoop/zookeeper-3.4.9/bin./zkServer.sh start
查看是否启动成功:
./zkServer.sh status
node5:
node4:
node3:
可以看到有一个leader,两个follower
输入jps查看:
至此zookeeper集群安装完成。
二、hdfs和yarn高可用性的搭建与配置
(每个节点都要配置,可以先在一台机子上配置好,然后再使用scp命令拷贝到其他节点上)1.修改core-site.xml文件:
cd /usr/hadoop/etc/Hadoopvim core-site.xml
<configuration> <!--指定hdfs的nameservice为Master(和hdfs-site.xml一致)--> <property> <name>fs.defaultFS</name> <value>hdfs://Master</value> </property> <!--指定缓冲大小--> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> <!--指定hadoop的临时目录--> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoopdir/tmp/</value> <description>A base for other temporary directories.</description> </property> <!--指定zookeeper地址(就是安装了zookeeper的三个节点)--> <property> <name>ha.zookeeper.quorum</name> <value>node3:2181,node4:2181,node5:2181</value> </property> </configuration>
2.修改hdfs-site.xml文件
vim hdfs-site.xml<configuration> <!--默认复制几份 --> <property> <name>dfs.replication</name> <value>3</value> </property> <!--namenode文件保存地址 --> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoopdir/dfs/name</value> </property> <!--datanode文件保存地址 --> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoopdir/dfs/data</value> </property> <!--指定hdfs的nameservices名称为Master(和core-site.xml一致)--> <property> <name>dfs.nameservices</name> <value>Master</value> </property> <!--指定高可用的两个namenode名称分别为node1,node2 --> <property> <name>dfs.ha.namenodes.Master</name> <value>node1,node2</value> </property> <!--配置node1,node2的rpc通信端口 --> <property> <name>dfs.namenode.rpc-address.Master.node1</name> <value>node1:9000</value> </property> <property> <name>dfs.namenode.rpc-address.Master.node2</name> <value>node2:9000</value> </property> <!--配置node1,node2的http通信端口--> <property> <name>dfs.namenode.http-address.Master.node1</name> <value>node1:50070</value> </property> <property> <name>dfs.namenode.http-address.Master.node2</name> <value>node2:50070</value> </property> <!--指定namenode的元数据在JournalNode上存放的位置--> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://node3:8485;node4:8485;node5:8485/Master</value> </property> <!--JournalNode上元数据和日志存放的位置--> <property> <name>dfs.journalnode.edits.dir</name> <value>/usr/hadoop/journaldata</value> </property> <!--开启NameNode失败自动切换--> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> <!--NameNode失败自动切换实现方式--> <property> <name>dfs.client.failover.proxy.provider.Master</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <!--隔离机制方法,确保任何时间只有一个NameNode处于活跃状态--> <property> <name>dfs.ha.fencing.methods</name> <value>sshfence(hdfs) shell(/bin/true)</value> </property> <!--使用sshfence隔离机制要ssh免密登陆--> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/home/hadoop/.ssh/id_rsa</value> </property> </configuration>
3.修改yarn-site.xml文件
vim yarn-site.xml<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!--rm失联后重新连接的时间 --> <property> <name>yarn.resourcemanager.connect.retry-interval.ms</name> <value>2000</value> </property> <!--开启rm高可用--> <property> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> </property> <!--指定rm的cluster id--> <property> <name>yarn.resourcemanager.cluster-id</name> <value>ihona</value> </property> <!--指定两台rm主机名称--> <property> <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> </property> < c73a span class="hljs-comment"><!--rm主机1--> <property> <name>yarn.resourcemanager.hostname.rm1</name> <value>node1</value> </property> <!--rm主机2--> <property> <name>yarn.resourcemanager.hostname.rm2</name> <value>node2</value> </property> <!--rm故障自动切换--> <property> <name>yarn.resourcemanager.ha.automatic-failover.recover.enabled</name> <value>true</value> </property> <!--rm故障自动恢复--> <property> <name>yarn.resourcemanager.recovery.enabled</name> <value>true</value> </property> <!--rm状态信息存储方式1,一种基于内存(MemStore),一种基于ZK(ZKStore)--> <property> <name>yarn.resourcemanager.store.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value> </property> <!--指定zk集群地址--> <property> <name>yarn.resourcemanager.zk-address</name> <value>node3:2181,node4:2181,node5:2181</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!--向rm调度资源地址--> <property> <name>yarn.resourcemanager.scheduler.address.rm1</name> <value>node1:8030</value> </property> <property> <name>yarn.resourcemanager.scheduler.address.rm2</name> <value>node2:8030</value> </property> <!--NodeManager通过该地址交换信息--> <property> <name>yarn.resourcemanager.resource-tracker.address.rm1</name> <value>node1:8031</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address.rm2</name> <value>node2:8031</value> </property> <!--客户端通过改地址向rm提交对应用程序操作--> <property> <name>yarn.resourcemanager.address.rm1</name> <value>node1:8032</value> </property> <property> <name>yarn.resourcemanager.address.rm2</name> <value>node2:8032</value> </property> <!-- 管理员通过改地址向rm发送管理命令--> <property> <name>yarn.resourcemanager.admin.address.rm1</name> <value>node1:8033</value> </property> <property> <name>yarn.resourcemanager.admin.address.rm2</name> <value>node2:8033</value> </property> <!-- rm HTTP访问地址,查看集群信息--> <property> <name>yarn.resourcemanager.webapp.address.rm1</name> <value>node1:8088</value> </property> <property> <name>yarn.resourcemanager.webapp.address.rm2</name> <value>node2:8088</value> </property> </configuration>
4.修改mapred-site.xml文件
vim mapred-site.xml<configuration> <!--指定mr框架为yarn方式--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!--配置MapReduce JobHistory Server地址,默认端口10020--> <property> <name>mapreduce.jobhistory.address</name> <value>node1:10020</value> </property> <property> <!--配置MapReduce JobHistory Server HTTP地址,默认端口19888--> <name>mapreduce.jobhistory.webapp.address</name> <value>node1:19888</value> </property> </configuration>
5.修改slaves文件
vim slaves6.将配置好的hadoop拷贝到其他节点
scp -r /usr/hadoop hadoop@node2:/usrscp -r /usr/hadoop hadoop@node3:/usr
scp -r /usr/hadoop hadoop@node4:/usr
scp -r /usr/hadoop hadoop@node5:/usr
7.Hadoop集群的初始化
启动zookeeper集群(在node3,node4,node5上执行):cd /home/hadoop/zookeeper-3.4.9/bin
./zkServer.sh start
格式化ZKFC(在node1上执行):
hdfs zkfc -formatZK
启动journalnode(在node3,4,5上执行):
hadoop-daemon.sh start journalnode
格式化HDFS(在node1上执行):
hdfs namenode -format
将格式化后的node1节点hadoop工作目录中的元数据目录复制到node2节点:
scp -r /home/hadoopdir/dfs hadoop@node2:/home/hadoopdir(实际路径参考配置文件)
启动HDFS(在node1执行):
start-dfs.sh
start-yarn.sh
在node2执行:
yarn-daemon.sh start resourcemanager
集群情况
node1:
node2:
node3:
node4:
node5:
8.测试高可用是否生效
用浏览器登录:192.168.2.171:50070登录192.168.2.172:50070
kill掉node1上的namenode:
jps
kill -9 7216
然后登录192.168.2.172:50070
发现node2从standby变成了active
至此,Hadoop HA搭建完成
相关文章推荐
- hadoop学习笔记:yarn框架资源相关配置
- Hadoop学习笔记—22.Hadoop2.x环境搭建与配置
- hadoop搭建四个配置文件(core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml )的简单介绍
- hadoop初识之三:搭建hadoop环境(配置HDFS,Yarn及mapreduce 运行在yarn)上及三种运行模式(本地模式,伪分布式和分布式介)
- Hadoop 学习笔记 (十) hadoop2.2.0 生产环境部署 HDFS HA Federation 含Yarn部署
- hadoop-HA集群搭建,启动DataNode,检测启动状态,执行HDFS命令,启动YARN,HDFS权限配置,C++客户端编程,常见错误
- hadoop搭建四个配置文件(core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml )的简单介绍
- Hadoop学习笔记—22.Hadoop2.x环境搭建与配置
- Hadoop学习笔记(二)----环境搭建之CentOS 7 配置与安装Hadoop
- hadoop学习笔记-基于hdfs搭建简单网盘应用
- 第120讲:Hadoop的MapReduce和Yarn的配置实战详解学习笔记
- Hadoop学习笔记-Hadoop HDFS环境搭建
- hadoop学习笔记(2) 伪分布模式配置
- hadoop学习笔记(2) 伪分布模式配置
- hadoop学习笔记之-使用bind配置DNS实验
- hadoop学习笔记(8)-hosts文件配置的问题
- hadoop学习笔记1--centos6.2 64位 最小化(minimal)安装配置
- HADOOP的学习笔记 (第三期) eclipse 配置hadoop开发环境
- hadoop学习笔记<二>----hadoop集群环境的配置
- 开始hadoop前的准备:ubuntu学习笔记-基本环境的搭建(ssh的安装,SecureCRT连接,vim的安装及使用、jdk的安装)