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机器.调 ...
随机推荐
- Unity自定义定时器,模拟协程,脱离MonoBehavior控制
using System; using System.Collections.Generic; using System.Timers; public class PETimer { private ...
- mysql自增长主键,删除数据后,将主键顺序重新排序
用数据库的时候,难免会删除数据,会发现设置的主键增长不是按照正常顺序排列,中间有断隔比如这样. 以我这个情况举例 处理方法的原理:删除原有的自增ID,重新建立新的自增ID. ALTER TABLE ` ...
- day2——两数相加
// 小白一名,0算法基础,艰难尝试算法题中,若您发现本文中错误, 或有其他见解,往不吝赐教,感激不尽,拜谢. 领扣 第2题 今日算法题干//给定两个非空链表来表示两个非负整数.位数按照逆序方式存储, ...
- sass报 error (Line XX: Invalid GBK character "\xE4") 的解决办法
在webstorm配置的SASS,插入中文注释报错: cmd.exe /D /C call D:\ProgramFiles\Ruby24-x64\bin\sass.bat --no-cache --u ...
- Kotlin 继承
Kotlin 中所有类都继承该 Any 类,它是所有类的超类,对于没有超类型声明的类是默认超类: class Example // 从 Any 隐式继承 Any 默认提供了三个函数: equals() ...
- [转]osgconv工具简介
osgconv是一种用来读取3D数据库以及对它们实施一些简单的操作的实用应用程序,同时也被称作 一种专用3D数据库工具. 用osgconv把其他格式的文件转换为OSG所支持的格式 osgconv是一种 ...
- 雷林鹏分享:Laravel 安装
前面我们介绍我了 composer安装,这里我们接着来介绍 Laravel框架的安装. 这里我们安装的是laravel 4 项目下载地址:https://github.com/laravel/lara ...
- Redis(二)--Jedis使用
1.Jedis是连接java和redis的jar,这里用maven来添加jar包 # 在eclipse中新建maven project,填写GroupID.Artifactid # 在百度搜索mave ...
- MATLAB 符号变量表达式 + 方程求解
源代码见文末 部分源代码: % 符号变量 两种表达方式 a=sym('a'); class(a); syms b; b; % 符号常量 c=sym('); c; % 符号表达式 三种表达方式 f1=' ...
- ionic 在windows环境下更换logo和加载图片的问题
做用自己的电脑做ionic项目时,更换logo和加载图片时,无论使用哪种命令,发现都上传不了,并且报错 最后发现,需要将 icon和splash两个文件改为.ai格式才能上传成功. 这是最终生成后的文 ...