hadoop2.6.0高可靠及yarn 高可靠搭建
| 机器名 | IP | 安装软件 | 运行进程 |
| namenode1 | 192.168.3.161 | hadoop | NameNode、DFSZKFailoverController、ResourceManager |
| namenode2 | 192.168.3.162 | hadoop | NameNode、DFSZKFailoverController、ResourceManager |
| datanode1 | 192.168.3.163 | hadoop,zookeeper | DataNode、QuorumPeerMain、JournalNode、NodeManager |
| datanode2 | 192.168.3.164 | hadoop,zookeeper | DataNode、QuorumPeerMain、JournalNode、NodeManager |
| datanode3 | 192.168.3.165 | hadoop | DataNode、NodeManager |
| datanode4 | 192.168.3.166 | hadoop,zookeeper | DataNode、QuorumPeerMain、JournalNode、NodeManager |
- 192.168.3.161 namenode1
- 192.168.3.162 namenode2
- 192.168.3.163 datanode1
- 192.168.3.164 datanode2
- 192.168.3.165 datanode3
- 192.168.3.166 datanode4
- export JAVA_HOME=/usr/java/jdk1.7.0_67
- export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- export PATH=$PATH:$JAVA_HOME/bin
- export HADOOP_HOME=/home/hadoop/hadoop_installs/hadoop-2.6.0
- service iptables stop
centos7好像把防火墙修改成firewalld,可以试试service firewalld stop
- chkconfig iptables off
- server.1=datanode1:2888:3888
- server.2=datanode2:2888:3888
- server.3=datanode4:2888:3888
然后分别在datanode1,2,4节点中创建一个tmp文件夹 ,mkdir /hadoop/zookeeper-3.4.5/tmp ,再创建一个空文件 touch /hadoop/zookeeper-3.4.5/tmp/myid 最后向该文件写入ID,datanode1执行echo 1 > /hadoop/zookeeper-3.4.5/tmp/myid,datanode1执行echo 2 > /hadoop/zookeeper-3.4.5/tmp/myid,datanode3执行echo 3 > /hadoop/zookeeper-3.4.5/tmp/myid
- export JAVA_HOME=/usr/java/jdk1.7.0_67
- export HADOOP_LOG_DIR=/data/log/hadoop
- <configuration>
- <!-- 指定hdfs的nameservice为ns1,是NameNode的URI。hdfs://主机名:端口/ -->
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://gagcluster</value>
- </property>
- <property>
- <name>io.file.buffer.size</name>
- <value>131072</value>
- </property>
- <!-- 指定hadoop临时目录 -->
- <property>
- <name>hadoop.tmp.dir</name>
- <value>file:/data/hadoop/tmp</value>
- <description>Abase for other temporary directories.</description>
- </property>
- <!--指定可以在任何IP访问-->
- <property>
- <name>hadoop.proxyuser.hduser.hosts</name>
- <value>*</value>
- </property>
- <!--指定所有用户可以访问-->
- <property>
- <name>hadoop.proxyuser.hduser.groups</name>
- <value>*</value>
- </property>
- <!-- 指定zookeeper地址 -->
- <property>
- <name>ha.zookeeper.quorum</name>
- <value>dataNode1:2181,dataNode2:2181,dataNode4:2181</value>
- </property>
- </configuration>
- <configuration>
- <!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
- <property>
- <name>dfs.nameservices</name>
- <value>gagcluster</value>
- </property>
- <!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
- <property>
- <name>dfs.ha.namenodes.gagcluster</name>
- <value>nn1,nn2</value>
- </property>
- <!-- nn1的RPC通信地址 -->
- <property>
- <name>dfs.namenode.rpc-address.gagcluster.nn1</name>
- <value>namenode1:9000</value>
- </property>
- <!-- nn2的RPC通信地址 -->
- <property>
- <name>dfs.namenode.rpc-address.gagcluster.nn2</name>
- <value>namenode2:9000</value>
- </property>
- <!-- nn1的http通信地址 -->
- <property>
- <name>dfs.namenode.http-address.gagcluster.nn1</name>
- <value>namenode1:50070</value>
- </property>
- <!-- nn2的http通信地址 -->
- <property>
- <name>dfs.namenode.http-address.gagcluster.nn2</name>
- <value>namenode2:50070</value>
- </property>
- <!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
- <property>
- <name>dfs.namenode.shared.edits.dir</name>
- <value>qjournal://dataNode1:8485;datanode2:8485;datanode4:8485/gagcluster</value>
- </property>
- <!-- 配置失败自动切换实现方式 -->
- <property>
- <name>dfs.client.failover.proxy.provider.gagcluster</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>/home/hadoop/.ssh/id_rsa</value>
- </property>
- <!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
- <property>
- <name>dfs.journalnode.edits.dir</name>
- <value>/data/hadoop/tmp/journal</value>
- </property>
- <!--指定支持高可用自动切换机制-->
- <property>
- <name>dfs.ha.automatic-failover.enabled</name>
- <value>true</value>
- </property>
- <!--指定namenode名称空间的存储地址-->
- <property>
- <name>dfs.namenode.name.dir</name>
- <value>file:/data/hadoop/dfs/name</value>
- </property>
- <!--指定datanode数据存储地址-->
- <property>
- <name>dfs.datanode.data.dir</name>
- <value>file:/data/hadoop/dfs/data</value>
- </property>
- <!--指定数据冗余份数-->
- <property>
- <name>dfs.replication</name>
- <value>3</value>
- </property>
- <!--指定可以通过web访问hdfs目录-->
- <property>
- <name>dfs.webhdfs.enabled</name>
- <value>true</value>
- </property>
- <!--保证数据恢复 -->
- <property>
- <name>dfs.journalnode.http-address</name>
- <value>0.0.0.0:8480</value>
- </property>
- <property>
- <name>dfs.journalnode.rpc-address</name>
- <value>0.0.0.0:8485</value>
- </property>
- <property>
- <name>ha.zookeeper.quorum</name>
- <value>dataNode1:2181,dataNode2:2181,dataNode4:2181</value>
- </property>
- </configuration>
- <configuration>
- <!--rm失联后重新链接的时间-->
- <property>
- <name>yarn.resourcemanager.connect.retry-interval.ms</name>
- <value>2000</value>
- </property>
- <!--开启resource manager HA,默认为false-->
- <property>
- <name>yarn.resourcemanager.ha.enabled</name>
- <value>true</value>
- </property>
- <!--配置resource manager -->
- <property>
- <name>yarn.resourcemanager.ha.rm-ids</name>
- <value>rm1,rm2</value>
- </property>
- <property>
- <name>ha.zookeeper.quorum</name>
- <value>dataNode1:2181,dataNode2:2181,dataNode4:2181</value>
- </property>
- <!--开启故障自动切换-->
- <property>
- <name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
- <value>true</value>
- </property>
- <property>
- <name>yarn.resourcemanager.hostname.rm1</name>
- <value>namenode1</value>
- </property>
- <property>
- <name>yarn.resourcemanager.hostname.rm2</name>
- <value>namenode2</value>
- </property>
- <!--在namenode1上配置rm1,在namenode2上配置rm2,注意:一般都喜欢把配置好的文件远程复制到其它机器上,但这个在YARN的另一个机器上一定要修改-->
- <property>
- <name>yarn.resourcemanager.ha.id</name>
- <value>rm1</value>
- <description>If we want to launch more than one RM in single node, we need this configuration</description>
- </property>
- <!--开启自动恢复功能-->
- <property>
- <name>yarn.resourcemanager.recovery.enabled</name>
- <value>true</value>
- </property>
- <!--配置与zookeeper的连接地址-->
- <property>
- <name>yarn.resourcemanager.zk-state-store.address</name>
- <value>datanode1:2181,datanode2:2181,datanode4:2181</value>
- </property>
- <property>
- <name>yarn.resourcemanager.store.class</name>
- <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
- </property>
- <property>
- <name>yarn.resourcemanager.zk-address</name>
- <value>datanode1:2181,datanode2:2181,datanode4:2181</value>
- </property>
- <property>
- <name>yarn.resourcemanager.cluster-id</name>
- <value>gagcluster-yarn</value>
- </property>
- <!--schelduler失联等待连接时间-->
- <property>
- <name>yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms</name>
- <value>5000</value>
- </property>
- <!--配置rm1-->
- <property>
- <name>yarn.resourcemanager.address.rm1</name>
- <value>namenode1:8132</value>
- </property>
- <property>
- <name>yarn.resourcemanager.scheduler.address.rm1</name>
- <value>namenode1:8130</value>
- </property>
- <property>
- <name>yarn.resourcemanager.webapp.address.rm1</name>
- <value>namenode1:8188</value>
- </property>
- <property>
- <name>yarn.resourcemanager.resource-tracker.address.rm1</name>
- <value>namenode1:8131</value>
- </property>
- <property>
- <name>yarn.resourcemanager.admin.address.rm1</name>
- <value>namenode1:8033</value>
- </property>
- <property>
- <name>yarn.resourcemanager.ha.admin.address.rm1</name>
- <value>namenode1:23142</value>
- </property>
- <!--配置rm2-->
- <property>
- <name>yarn.resourcemanager.address.rm2</name>
- <value>namenode2:8132</value>
- </property>
- <property>
- <name>yarn.resourcemanager.scheduler.address.rm2</name>
- <value>namenode2:8130</value>
- </property>
- <property>
- <name>yarn.resourcemanager.webapp.address.rm2</name>
- <value>namenode2:8188</value>
- </property>
- <property>
- <name>yarn.resourcemanager.resource-tracker.address.rm2</name>
- <value>namenode2:8131</value>
- </property>
- <property>
- <name>yarn.resourcemanager.admin.address.rm2</name>
- <value>namenode2:8033</value>
- </property>
- <property>
- <name>yarn.resourcemanager.ha.admin.address.rm2</name>
- <value>namenode2:23142</value>
- </property>
- <property>
- <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>
- <property>
- <name>yarn.nodemanager.local-dirs</name>
- <value>/data/hadoop/yarn/local</value>
- </property>
- <property>
- <name>yarn.nodemanager.log-dirs</name>
- <value>/data/log/hadoop</value>
- </property>
- <property>
- <name>mapreduce.shuffle.port</name>
- <value>23080</value>
- </property>
- <!--故障处理类-->
- <property>
- <name>yarn.client.failover-proxy-provider</name>
- <value>org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider</value>
- </property>
- <property>
- <name>yarn.resourcemanager.ha.automatic-failover.zk-base-path</name>
- <value>/yarn-leader-election</value>
- <description>Optional setting. The default value is /yarn-leader-election</description>
- </property>
- </configuration>
- <configuration>
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
- <!-- 配置 MapReduce JobHistory Server 地址 ,默认端口10020 -->
- <property>
- <name>mapreduce.jobhistory.address</name>
- <value>0.0.0.0:10020</value>
- </property>
- <!-- 配置 MapReduce JobHistory Server web ui 地址, 默认端口19888 -->
- <property>
- <name>mapreduce.jobhistory.webapp.address</name>
- <value>0.0.0.0:19888</value>
- </property>
- </configuration>
- atanode1
- datanode2
- datanode3
- datanode4
修改文件yarn-env.sh
- export JAVA_HOME=/usr/java/jdk1.7.0_67
- export YARN_LOG_DIR=/data/log/hadoop指定日志存放目录
进入到 zookeeper-3.4.5/bin/
- ./zkServer.sh start
查看状态:
- ./zkServer.sh status
(一个leader,两个follower)
进入到hadoop-2.6.0
- sbin/hadoop-daemons.sh start journalnode
- sbin/hadoop-daemon.sh start journalnode
(运行jps命令检验,多了JournalNode进程)
在namenode1上执行命令:
- hadoop namenode -format
格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件,之后通过sbin/hadoop-daemon.sh start namenode启动namenode进程在namenode2上执行hdfs namenode -bootstrapStandby完成主备节点同步信息
- hdfs zkfc -formatZK
启动HDFS(在namenode1上执行)
- sbin/start-dfs.sh
启动YARN(在namenode1和namenode2上执行)
- sbin/start-yarn.sh
在namenode1上执行${HADOOP_HOME}/bin/yarn rmadmin -getServiceState rm1查看rm1和rm2分别为active和standby状态,也可以通过浏览器访问http://192.168.3.161:8188查看状态
hadoop2.6.0高可靠及yarn 高可靠搭建的更多相关文章
- 最详细的hadoop2.2.0集群的HA高可靠的最简单配置
简介 [from http://www.open-open.com/lib/view/open1390717631132.html] hadoop中的NameNode好比是人的心脏,非常重要,绝对不可 ...
- 国内最全最详细的hadoop2.2.0集群的HA高可靠的最简单配置
简介 hadoop中的NameNode好比是人的心脏,非常重要,绝对不可以停止工作.在hadoop1时代,只有一个NameNode.如果该NameNode数据丢失或者不能工作,那么整个集群就不能恢复了 ...
- hadoop2.9.0之前的版本yarn RM fairScheduler调度性能优化
对一般小公司来说 可能yarn调度能力足够了 但是对于大规模集群1000 or 2000+的话 yarn的调度性能捉襟见肘 恰好网上看到一篇很好的文章https://tech.meituan.com ...
- Hadoop2.6.0(2.4~2.7)完全分布式搭建-入门向 新手向 详细流程
.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.tabl ...
- Hadoop2.6.0实践:001 伪分布式环境搭建
##################### Centos6.4VM_01_os.rar ################################################准备工作/opt ...
- Hadoop2.2.0集群的HA高可靠的最简单配置
HA集群需要使用nameservice ID区分一个HDFS集群.另外,HA中还要使用一个词,叫做NameNode ID.同一个集群中的不同NameNode,使用不同的NameNode ID区分.为了 ...
- Hadoop2.2.0(yarn)编译部署手册
Created on 2014-3-30URL : http://www.cnblogs.com/zhxfl/p/3633919.html @author: zhxfl Hadoop-2.2编译 ...
- hadoop2.6.0实践:004 启动伪分布式hadoop的进程
[hadoop@LexiaofeiMaster hadoop-2.6.0]$ start-dfs.shStarting namenodes on [localhost]localhost: start ...
- 完全分布式hadoop2.5.0安装 VMware下虚拟机centos6.4安装1主两从hadoop
请跟我走,从零开始搭建hadoop2.5.0环境.总览第一步:搭建三台能不用密码shh的虚拟机.第二步,装jdk,解压hadoop文件,配置环境变量和xml文件.第三步,复制克隆两个slave机器.调 ...
随机推荐
- web 页面间传值 js 封装方法
用法 var id = getParam("id"); function getParam(strKey) { var url=document.URL; //var url=&q ...
- webpack的css样式文件加载依赖
1.需要两个依赖包: npm i style-loader css-loader -D
- 给video添加自定义进度条
思路: 1.进度条,首先要知道视频的总长度,和视频的当前进度,与其对应的便是进度条的总长度和当前的长度,两者比值相等 2.获取视频的总长度(单位是秒),获取当前进度 3.要实现的功能,首先是进度条根据 ...
- [转]OpenStreetMap/Google/百度/Bing瓦片地图服务(TMS)
转自:https://blog.csdn.net/youngkingyj/article/details/23365849 开源与成熟商业的瓦片地图服务(TMS 2 WMTS),都有如下共同的特性 ...
- efk学习整理
概念 Logstash 数据收集处理引擎.支持动态的从各种数据源搜集数据,并对数据进行过滤.分析.丰富.统一格式等操作,然后存储以供后续使用. kibana 可视化化平台.它能够搜索.展示存储在 El ...
- xls文件导入数据库
protected void btn_ok_Click(object sender, EventArgs e) { int num = 0; ...
- PHP 如何获取客户端ip地址
PHP 如何获取客户端ip地址 一.总结 一句话总结:主要是使用$_SERVER的 REMOTE_ADDR 和 HTTP_X_FORWARDED_FOR 两个属性,在用户使用不同代理的时候这两个属性可 ...
- 新手vue构建单页面应用实例
本人写的小程序,功能还在完善中,欢迎扫一扫提出宝贵意见! 步骤: 1.使用vue-cli创建项目2.使用vue-router实现单页路由3.用vuex管理我们的数据流4.使用vue-resource请 ...
- MongDB 批量更新
最近公司在使用mongodb. 批量更新的语句为: db.table.update( {'wo': {$in: [ "123", "456"]}}, {$s ...
- 美团2017年CodeM大赛-初赛B轮-黑白树
https://ac.nowcoder.com/acm/problem/13249 链接:https://ac.nowcoder.com/acm/problem/13249来源:牛客网 题目描述 一棵 ...