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.主 ...
随机推荐
- Virtualbox中安装Openwrt
Virtualbox:https://www.virtualbox.org/wiki/DownloadsOpenwrt:http://downloads.openwrt.org/backfire/10 ...
- MVC学习系列——ActionResult扩展
首先,MVC扩展性非常强. 我从ActionResult扩展入手,因为我们知道微软ActionResult和其子类,有时候并不能满足所有返回值. 比如:我需要返回XML. 因此,现在我扩展XMLRes ...
- entityframwork
entityframwork映射部分: public class NorthwindContext : DbContext { public DbSet<CATEGORIES> Categ ...
- Financial Management
Financial Management 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 Larry graduated this year and finally ...
- 二分查找or折半查找
package com.gxf.search; /** * 测试折半查找or二分查找 * @author xiangfei * */ public class BiSearch { /** * 非递归 ...
- Team Homework #3: The feedback of predecessors
此次对学长的采访主要在QQ上进行,感谢陈宇宁学长的热情配合. 采访学长的问题及学长的答复如下: 1. 平均每周花在这门课上的时间 (包括上课/作业/上机) -大约15-20小时吧(学长个人花费时间) ...
- c语言编程之二叉树
利用链表建立二叉树,完成前序遍历.中序遍历.后序遍历. 建立二叉树用的是前序遍历建立二叉树: #include<stdio.h> #include<stdlib.h> #inc ...
- spoj 375 Query on a tree(树链剖分,线段树)
Query on a tree Time Limit: 851MS Memory Limit: 1572864KB 64bit IO Format: %lld & %llu Sub ...
- 【转载】Spring中DispatcherServlet与ContextLoaderListener的区别
昨天在写springmvc的时候,在web.xml中配置了DispatcherServlet,如下: <servlet> <servlet-name>DispatcherSer ...
- 给定一颗二叉搜索树,请找出其中的第k小的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "stdafx.h ...