hadoop2 环境的搭建(自动HA)
zookeeper:hadoop112、hadoop113、hadoop114
namenode:hadoop110和hadoop111
datanode:hadoop112、hadoop113、hadoop114
journalnode:hadoop110、hadoop111、hadoop112
resourcemanager:hadoop110
nodemanager:hadoop112、hadoop113、hadoop114
1、搭建zk集群,并启动
1.1、搭建zookeeper
1.1.1、在hadoop112上解压缩,重命名为zookeeper,把conf/zoo_sample.cfg重命名为zoo.cfg
1.1.2、修改文件conf/zoo.cfg
dataDir=/usr/zookeeper/data
增加以下内容
server.112=hadoop112:2888:3888
server.113=hadoop113:2888:3888
server.114=hadoop114:2888:3888
1.1.3、创建目录mkdir zookeeper/data
1.1.4、写入节点id:echo 112 > zookeeper/data/myid
1.1.5、复制zookeeper文件夹到hadoop113和hadoop114上
scp /usr/zookeeper/ hadoop113:/usr/
scp /usr/zookeeper/ hadoop114:/usr/
在hadoop113上执行 echo 113 > zookeeper/data/myid
在hadoop114上执行 echo 114 > zookeeper/data/myid
1.2、启动
在hadoop112、hadoop113、hadoop114上分别执行:
bin/zkServer.sh start
1.3、验证
执行命令:
bin/zkCli.sh
进入后执行ls /
2、配置文件(hadoop-env.sh、core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml)
2.1、hadoop-env.sh
export JAVA_HOME=/usr/jdk
上面是我本机的路径,需要改成真实的jdk路径
export JAVA_HOME=JDK的路径
2.2、core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://cluster1</value> </property> <!-- 设置默认的HDFS路径,有多个HDFS集群同时工作时,默认值在这里指定 --> <property> <name>hadoop.tmp.dir</name> <value>/usr/hadoop/tmp</value> </property> <!-- 设置NameNode DataNode JournalNode等存放数据的公共目录,也可以单独指定 --> <property>
<name>ha.zookeeper.quorum</name>
<value>hadoop112:2181,hadoop113:2181,hadoop114:2181</value>
</property>
<!-- 指定zookeeper集群 -->
</configuration>
2.3、hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <!-- 集群中文件的副本数 --> <property> <name>dfs.nameservices</name> <value>cluster1</value> </property> <!-- 使用federation时,这里填写所有集群的别名,用逗号分隔 --> <property> <name>dfs.ha.namenodes.cluster1</name> <value>hadoop110,hadoop111</value> </property> <!-- 配置集群的NameNode几点,这里是NameNode 的别名,需要对每个NameNode再进行详细的配置--> <property> <name>dfs.namenode.rpc-address.cluster1.hadoop110</name> <value>hadoop110:9000</value> </property> <!-- 配置NameNode的RPC地址 --> <property> <name>dfs.namenode.http-address.cluster1.hadoop110</name> <value>hadoop110:50070</value> </property> <!-- 配置NameNode的HTTP地址 --> <property> <name>dfs.namenode.rpc-address.cluster1.hadoop111</name> <value>hadoop111:9000</value> </property> <property> <name>dfs.namenode.http-address.cluster1.hadoop111</name> <value>hadoop111:50070</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://hadoop110:8485;hadoop111:8485;hadoop112:8485/cluster1</value> </property> <!-- 指定集群(cluster1)的两个NameNode共享edits文件目录时使用的JournalNode集群信息 --> <property> <name>dfs.ha.automatic-failover.enabled.cluster1</name>
<value>true</value>
</property>
<!-- 指定集群(cluster1)是否启动自动故障恢复,即当NameNode出故障事,是否自动切换到另一台NameNode --> <property>
<name>dfs.client.failover.proxy.provider.cluster1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!-- 指定集群(cluster1)出故障时,哪个实现类负责执行故障切换 --> <property>
<name>dfs.journalnode.edits.dir</name>
<value>/usr/hadoop/tmp/journal</value>
</property>
<!-- 指定JournalNode集群在对NameNode的目录进行共享时,自己存储数据的磁盘路径 --> <property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property> <!-- 一旦需要NameNode切换,使用ssh方式进行切换 --> <property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property> </configuration>
2.4、yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop110</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
2.5、mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
2.6、slaves
hadoop112 hadoop113 hadoop114
2.7、同步修改的配置文件
3、格式化zookeeper集群
在hadoop110上执行
hadoop/bin/hdfs zkfc -formatZK
4、启动journalnode集群
在hadoop110、hadoop111、hadoop112上分别执行:
sbin/hadoop-daemon.sh start journalnode
扩展
停止journalnode
sbin/hadoop-daemon.sh stop journalnode
5、格式化namenode、启动namenode
在hadoop110或者hadoop111上执行:
bin/hdfs namenode -format sbin/hadoop-daemon.sh start namenode
在hadoop111上执行
bin/hdfs namenode -bootstrapStandby
sbin/hadoop-daemon.sh start namenode
*hadoop111的格式化,操作是关键是是把hadoop110上面的tmp/dfs下的fsimage和edit拷贝过去
6、启动datanode
sbin/hadoop-daemons.sh start datanode
7、启动ZKFC
在NameNode节点上执行(hadoop110或hadoop111)执行:
hadoop/sbin/hadoop-daemon.sh start zkfc
8、启动resourcemanager和nodemanager
在hadoop110或者hadoop111上执行
sbin/yarn-daemon.sh start resourcemanager sbin/yarn-daemons.sh start nodemanager 或者
sbin/start-yarn.sh start resourcemanager
总结:
自动切换比手动切换多的操作:
1、在core-site.xml配置zookeeper集群,在hdfs-site.xml中设置允许自动切换
2、操作上,格式化zookeeper,执行命令bin/hdfs zkfc -formatZK, 启动zk,执行命令sbin/hadoop-daemon.sh start zkfc
hadoop2 环境的搭建(自动HA)的更多相关文章
- 非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法
非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法 环境:非域环境 因为是自动故障转移,需要加入见证,事务安全模式是,强安全FULL模式 做到最后一 ...
- hadoop2 环境的搭建(手动HA)
1.手工切换ha的环境的搭建(比hadoop1多出来journalnode的配置) namenode:hadoop110和hadoop111 datanode:hadoop112.hadoop113. ...
- Linux下Hadoop2.6.0集群环境的搭建
本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 基础环境 JDK的安装与配置 现在直接到Oracle官网(http:/ ...
- 记录使用gogs,drone搭建自动部署测试环境
使用gogs,drone,docker搭建自动部署测试环境 Gogs是一个使用go语言开发的自助git服务,支持所有平台 Docker是使用go开发的开源容器引擎 Drone是一个基于容器技术的持续集 ...
- Jenkins+Maven+SVN搭建自动部署、自动测试环境
.打开http://10.3.15.78:8080/jenkins/,第一次进入里面没有数据,我们需要创建job,我们这有2个项目,需要创建2个job.http://10.3.34.163:9890/ ...
- Linux下Hadoop2.7.1集群环境的搭建(超详细版)
本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 一.基础环境 ...
- Linux下Hadoop2.7.3集群环境的搭建
Linux下Hadoop2.7.3集群环境的搭建 本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 基础环境 JDK的安 ...
- Hadoop2.4.1 64-Bit QJM HA and YARN HA + Zookeeper-3.4.6 + Hbase-0.98.8-hadoop2-bin HA Install
Hadoop2.4.1 64-Bit QJM HA and YARN HA Install + Zookeeper-3.4.6 + Hbase-0.98.8-hadoop2-bin HA(Hadoop ...
- 基于HBase0.98.13搭建HBase HA分布式集群
在hadoop2.6.0分布式集群上搭建hbase ha分布式集群.搭建hadoop2.6.0分布式集群,请参考“基于hadoop2.6.0搭建5个节点的分布式集群”.下面我们开始啦 1.规划 1.主 ...
随机推荐
- mdelay,udelay,msleep区别
delay函数是忙则等待,占用CPU时间:而sleep函数使调用的进程进行休眠. udelay引用头文件/include/asm-***/delay.h,mdelay和ndelay则引用/includ ...
- Setting composer minimum stability for your application
Do you have a confusion of how do you determine the stability when using composer dependency manager ...
- C# 实现Oracle中的数据与Excel之间的转换
最近项目要求实现数据库之间数据在各个数据库之间导入导出,在此做个笔记 1. 将Oracle中的表导入到Excel中,反之亦然 private static readonly string conne ...
- D2GS1.11 的DC Key的相關設置指南
D2GS1.11版本暗黑戰網服務器DC Key 的相關設置是保存在 D2Server.ini 文件中的.在這裡我列舉跟DC Key 有關的配置條款. (以下內容具存在於D2Server.ini 文件中 ...
- 1068: [SCOI2007]压缩 - BZOJ
Description 给一个由小写字母组成的字符串,我们可以用一种简单的方法来压缩其中的重复信息.压缩后的字符串除了小写字母外还可以(但不必)包含大写字母R与M,其中M标记重复串的开始,R重复从上一 ...
- maven+springMVC+mybatis+junit详细搭建过程 ***
springMVC+mybatis框架搭建 在上一遍博客中以及讲诉了新建maven项目的流程,现在紧跟上一遍文章,接着搭建spring项目 首先我们先要弄清搭建项目的一般流程,需要注意哪些方面,想要什 ...
- 剑指offer--面试题11
题目:求数值的整数次方,不考虑大数值情况 即实现函数:double Power(double base, int exponent) 自己所写代码如下: #include "stdafx.h ...
- 查看语句运行时间异常的原因(SQLServer)
转载:http://www.cnblogs.com/fygh/archive/2012/01/17/2324926.html 查看语句运行时间异常的原因(SQLServer) 经常有开发同事反映如 ...
- 关于asp.net mvc4 在IE8下 导出excel失败的解决办法
在使用FileResult向浏览器输出文件时(pdf,excel等),通常这样做: byte[] fileContents = Encoding.UTF8.GetBytes(sbHtml.ToStri ...
- libcurl编程学习
一.curl简介 curl是一个利用URL语法在命令行方式下工作的文件传输工具.它支持的协议有:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以 ...