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)的更多相关文章

  1. 非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法

    非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法 环境:非域环境 因为是自动故障转移,需要加入见证,事务安全模式是,强安全FULL模式 做到最后一 ...

  2. hadoop2 环境的搭建(手动HA)

    1.手工切换ha的环境的搭建(比hadoop1多出来journalnode的配置) namenode:hadoop110和hadoop111 datanode:hadoop112.hadoop113. ...

  3. Linux下Hadoop2.6.0集群环境的搭建

    本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 基础环境 JDK的安装与配置 现在直接到Oracle官网(http:/ ...

  4. 记录使用gogs,drone搭建自动部署测试环境

    使用gogs,drone,docker搭建自动部署测试环境 Gogs是一个使用go语言开发的自助git服务,支持所有平台 Docker是使用go开发的开源容器引擎 Drone是一个基于容器技术的持续集 ...

  5. Jenkins+Maven+SVN搭建自动部署、自动测试环境

    .打开http://10.3.15.78:8080/jenkins/,第一次进入里面没有数据,我们需要创建job,我们这有2个项目,需要创建2个job.http://10.3.34.163:9890/ ...

  6. Linux下Hadoop2.7.1集群环境的搭建(超详细版)

                                本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 一.基础环境 ...

  7. Linux下Hadoop2.7.3集群环境的搭建

    Linux下Hadoop2.7.3集群环境的搭建 本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 基础环境 JDK的安 ...

  8. 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 ...

  9. 基于HBase0.98.13搭建HBase HA分布式集群

    在hadoop2.6.0分布式集群上搭建hbase ha分布式集群.搭建hadoop2.6.0分布式集群,请参考“基于hadoop2.6.0搭建5个节点的分布式集群”.下面我们开始啦 1.规划 1.主 ...

随机推荐

  1. [MVC] - 异步调用后台的常用方法。

    1. 直接调用Action @Html.Action("GetTopArticle", "Home") 2. 通过url, 并用Jquery异步加载. < ...

  2. NET免费服务器

    NET免费服务器 1.先注册一个号.地址:https://appharbor.com/ 2.看看有没有你需要的插件,基本上都是免费的 3.本地创建git库 4.复制git远程仓库的地址 5.推送到远程 ...

  3. 剑指offer--面试题9

    题目一:求斐波那契数列第n项 自己所写代码如下: #include "stdafx.h" #include<iostream> long Fibonacci(unsig ...

  4. [转载]关于C++ const 的全面总结

    C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助. Const 是C++中常用的类型修饰符,常类型是指使用类 ...

  5. 通过WebBrowser获取网页验证码

    /// <summary> /// 返回指定WebBrowser中图片<IMG></IMG>中的图内容 /// </summary> /// <p ...

  6. MATLAB——PLOT绘图

    MATLAB——PLOT绘图 格式化绘图: 1.color: b g  r c m y k w blue green red  cyan magenta yellow black white 2.ty ...

  7. State of Hyperparameter Selection

    State of Hyperparameter Selection DANIEL SALTIEL VIEW NOTEBOOK Historically hyperparameter determina ...

  8. JAVA数据源连接方式汇总

    最近在研究JAVA的数据源连接方式,学习的时候发现了一位同行写的文章,转载过来,留作记录! 一.问题引入 在java程序中,需要访问数据库,做增删改查等相关操作.如何访问数据库,做数据库的相关操作呢? ...

  9. jquery 父页面 子页面 同级页面 调用

    项目中用到  代码 ,先 展示 ,以便以后用到,直接看下就会明白. var li_divs = parent.$("#servicelist")[0].contentWindow. ...

  10. Follow Path -》 Unity3d通用脚本

    PathDefinition.cs using UnityEngine; using System.Collections; using System.Collections.Generic; usi ...