ZooKeeper+Hadoop2.6.0的ResourceManager HA搭建

以下为我的操作记录,还未整理格式

hqvm-L118        192.168.1.118        jdk、hadoop                   NameNode、DFSZKFailoverController(zkfc)

hqvm-L138        192.168.1.138        jdk、hadoop、zookeeper        NameNode、DFSZKFailoverController(zkfc)、DataNode、NodeManager、JournalNode、QuorumPeerMain

hqvm-L144        192.168.1.144        jdk、hadoop、zookeeper        ResourceManager、DataNode、NodeManager、JournalNode、QuorumPeerMain

hqvm-L174        192.168.1.174        jdk、hadoop、zookeeper        ResourceManager、DataNode、NodeManager、JournalNode、QuorumPeerMain

--查看当前操作系统

cat /proc/version

Linux version 2.6.32-431.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013

--每一台新建hadoop用户

useradd hadoop

passwd hadoop

usermod -g appl hadoop

--每一台配置java

切换到hadoop

vi .bash_profile

JAVA_HOME="/opt/appl/wildfly/jdk1.7.0_72"

HADOOP_HOME="/home/hadoop/hadoop-2.4.1"

JRE_HOME=$JAVA_HOME/jre

PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:$HOME/bin

export JRE_HOME

export JAVA_HOME

export PATH

退出重登,java -version查看是否配置成功

--配置hostname

每一台用root用户vi /etc/hosts加入如下主机名

172.30.0.118 hqvm-L118

172.30.0.138 hqvm-L138

172.30.0.144 hqvm-L144

172.30.0.174 hqvm-L174

--sudo /etc/init.d/networking restart

--配置ssh

先在本机172.30.0.118

cd

ssh-keygen -t dsa -P ‘‘ -f ~/.ssh/id_dsa

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

vi /etc/ssh/sshd_config

讲以下注释打开

RSAAuthentication yes # 启用 RSA 认证

PubkeyAuthentication yes # 启用公钥私钥配对认证方式

AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)

service sshd restart

分发118的公钥

在172.30.0.118上将id_dsa.pub公钥发给138

scp id_dsa.pub [email protected]:~/

在138上

cat ~/id_dsa.pub >> ~/.ssh/authorized_keys

完成后在118上ssh 172.30.0.138成功

如上步骤按需要配置ssh登陆,此四台我全配了两两都能相互访问

--将hadoop-2.6.0.tar.gz和Zookeeper3.4.6复制到/home/hadoop下面

--安装zookeeper

在hqvm-L138上

tar -zxvf    zookeeper-3.4.6.tar.gz

mv zookeeper-3.4.6/ zookeeper

cd zookeeper/conf/

cp zoo_sample.cfg zoo.cfg

vi zoo.cfg

修改dataDir=/home/hadoop/zookeeper/zkData

最后添加

server.1=hqvm-L138:2888:3888

server.2=hqvm-L144:2888:3888

server.3=hqvm-L174:2888:3888

保存退出

mkdir /home/hadoop/zookeeper/zkData

touch /home/hadoop/zookeeper/zkData/myid

echo 1 > /home/hadoop/zookeeper/zkData/myid

scp -r /home/hadoop/zookeeper/ hqvm-L144:/home/hadoop/

scp -r /home/hadoop/zookeeper/ hqvm-L174:/home/hadoop/

144中:echo 2 > /home/hadoop/zookeeper/zkData/myid

174中:echo 3 > /home/hadoop/zookeeper/zkData/myid

--安装hadoop

118上

tar -zxvf hadoop-2.6.0.tar.gz

vi .bash_profile

添加

HADOOP_HOME=/home/hadoop/hadoop-2.6.0

PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH:$HOME/bin

export HADOOP_HOME

修改hadoop配置文件

cd hadoop-2.6.0/etc/hadoop/

vi hadoop-env.sh

JAVA_HOME=/opt/appl/wildfly/jdk1.7.0_72

vi core-site.xml

添加

<configuration>

<!-- 指定hdfs的nameservice为masters -->

<property>

<name>fs.defaultFS</name>

<value>hdfs://masters</value>

</property>

<!-- 指定hadoop临时目录 -->

<property>

<name>hadoop.tmp.dir</name>

<value>/home/hadoop/hadoop-2.6.0/tmp</value>

</property>

<!-- 指定zookeeper地址 -->

<property>

<name>ha.zookeeper.quorum</name>

<value>hqvm-L138:2181,hqvm-L144:2181,hqvm-L174:2181</value>

</property>

</configuration>

vi hdfs-site.xml

<configuration>

<!--指定hdfs的nameservice为masters,需要和core-site.xml中的保持一致 -->

<property>

<name>dfs.nameservices</name>

<value>masters</value>

</property>

<!-- Masters下面有两个NameNode,分别是hqvm-L118,hqvm-L138 -->

<property>

<name>dfs.ha.namenodes.masters</name>

<value>hqvm-L118,hqvm-L138</value>

</property>

<!-- hqvm-L118的RPC通信地址 -->

<property>

<name>dfs.namenode.rpc-address.masters.hqvm-L118</name>

<value>hqvm-L118:9000</value>

</property>

<!-- hqvm-L118的http通信地址 -->

<property>

<name>dfs.namenode.http-address.masters.hqvm-L118</name>

<value>hqvm-L118:50070</value>

</property>

<!-- hqvm-L138的RPC通信地址 -->

<property>

<name>dfs.namenode.rpc-address.masters.hqvm-L138</name>

<value>hqvm-L138:9000</value>

</property>

<!-- hqvm-L138的http通信地址 -->

<property>

<name>dfs.namenode.http-address.masters.hqvm-L138</name>

<value>hqvm-L138:50070</value>

</property>

<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->

<property>

<name>dfs.namenode.shared.edits.dir</name>

<value>qjournal://hqvm-L138:8485;hqvm-L144:8485;hqvm-L174:8485/masters</value>

</property>

<!-- 指定JournalNode在本地磁盘存放数据的位置 -->

<property>

<name>dfs.journalnode.edits.dir</name>

<value>/home/hadoop/hadoop-2.6.0/journal</value>

</property>

<!-- 开启NameNode失败自动切换 -->

<property>

<name>dfs.ha.automatic-failover.enabled</name>

<value>true</value>

</property>

<!-- 配置失败自动切换实现方式 -->

<property>

<name>dfs.client.failover.proxy.provider.masters</name>

<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

</property>

<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->

<property>

<name>dfs.ha.fencing.methods</name>

<value>

sshfence

shell(/bin/true)

</value>

</property>

<!-- 使用sshfence隔离机制时需要ssh免登陆 -->

<property>

<name>dfs.ha.fencing.ssh.private-key-files</name>

<value>/home/hadoop/.ssh/id_rsa</value>

</property>

<!-- 配置sshfence隔离机制超时时间 -->

<property>

<name>dfs.ha.fencing.ssh.connect-timeout</name>

<value>30000</value>

</property>

</configuration>

cp mapred-site.xml.template mapred-site.xml

vi mapred-site.xml

<configuration>

<!-- 指定mr框架为yarn方式 -->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

vi yarn-site.xml

<configuration>

<!-- 开启RM高可靠 -->

<property>

<name>yarn.resourcemanager.ha.enabled</name>

<value>true</value>

</property>

<!-- 指定RM的cluster id -->

<property>

<name>yarn.resourcemanager.cluster-id</name>

<value>RM_HA_ID</value>

</property>

<!-- 指定RM的名字 -->

<property>

<name>yarn.resourcemanager.ha.rm-ids</name>

<value>rm1,rm2</value>

</property>

<!-- 分别指定RM的地址 -->

<property>

<name>yarn.resourcemanager.hostname.rm1</name>

<value>hqvm-L144</value>

</property>

<property>

<name>yarn.resourcemanager.hostname.rm2</name>

<value>hqvm-L174</value>

</property>

<property>

<name>yarn.resourcemanager.recovery.enabled</name>

<value>true</value>

</property>

<property>

<name>yarn.resourcemanager.store.class</name>

<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>

</property>

<!-- 指定zk集群地址 -->

<property>

<name>yarn.resourcemanager.zk-address</name>

<value>hqvm-L138:2181,hqvm-L144:2181,hqvm-L174:2181</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>

vi slaves

hqvm-L138

hqvm-L144

hqvm-L174

scp -r /home/hadoop/hadoop-2.6.0/ hqvm-L138:/home/hadoop/

scp -r /home/hadoop/hadoop-2.6.0/ hqvm-L144:/home/hadoop/

scp -r /home/hadoop/hadoop-2.6.0/ hqvm-L174:/home/hadoop/

--启动zookeeper集群,分别在hqvm-L138,hqvm-L144,hqvm-L174上

cd /home/hadoop/zookeeper/bin

./zkServer.sh start

./zkServer.sh status查看状态

--启动journalnode,分别在hqvm-L138,hqvm-L144,hqvm-L174上

cd /home/hadoop/hadoop-2.6.0/

sbin/hadoop-daemon.sh start journalnode

运行jps命令检验,hqvm-L138,hqvm-L144,hqvm-L174上上多了JournalNode进程

--格式化hdfs

在118上

hdfs namenode -format

scp -r /home/hadoop/hadoop-2.6.0/tmp/ hqvm-L138:/home/hadoop/hadoop-2.6.0/

--格式化ZK,在118上

hdfs zkfc -formatZK

--启动hdfs,在118上

sbin/start-dfs.sh

用jps查看各个节点是否都已启动

--启动yarn

在hqvm-L144上,namenode和resourcemanager分开是因为性能问题,因为他们都要占用大量资源,就分开在不同机器上

/home/hadoop/hadoop-2.6.0/sbin/start-yarn.sh

在hqvm-L174上,启动resourcemanager,/home/hadoop/hadoop-2.6.0/sbin/yarn-daemon.sh start resourcemanager

到此配置完毕,可以用浏览器访问

主namenode

http://172.30.0.118:50070

备namenode

http://172.30.0.138:50070

--验证HDFS HA

首先向hdfs上传一个文件

hadoop fs -put /etc/profile /profile

然后再kill掉active的NameNode,用jps查看pid或者ps -ef|grep hadoop

发现http://172.30.0.118:50070/不能访问,http://172.30.0.138:50070/变成active

发现hadoop fs -ls /还是可以用的

手动启动那个挂掉的namenode118

/home/hadoop/hadoop-2.6.0/sbin/hadoop-daemon.sh start namenode

发现这时候http://172.30.0.118:50070/可以访问了,为standby

--验证YARN:

运行hadoop提供的demo中的wordCount程序:

hadoop jar /home/hadoop/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /profile /out

hadoop HA集群搭建完成

http://172.30.0.144:8088

http://172.30.0.174:8088

时间: 2024-11-05 11:52:21

ZooKeeper+Hadoop2.6.0的ResourceManager HA搭建的相关文章

Ubuntu 14.10 下ZooKeeper+Hadoop2.6.0+HBase1.0.0 的HA机群高可用配置

1 硬件环境 Ubuntu 14.10 64位 2 软件环境 openjdk-7-jdk hadoop 2.6.0 zookeeper-3.4.6 hbase-1.0.0 3 机群规划 3.1 zookeeper配置-机器结点 192.168.1.100 1421-0000192.168.1.106 1421-0003192.168.1.107 1421-0004192.168.1.108 1421-0005192.168.1.109 1421-0006 3.2 hadoop配置-机器结点 19

基于Hadoop2.5.0的集群搭建

http://download.csdn.net/download/yameing/8011891 一. 规划 1.  准备安装包 JDK:http://download.oracle.com/otn-pub/java/jdk/7u67-b01/jdk-7u67-linux-x64.tar.gz Hadoop:http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.5.0/hadoop-2.5.0.tar.gz Hive:http://apac

Hadoop2.6.0伪分布环境搭建

用到的软件: 一.安装jdk: 1.要安装的jdk,我把它拷在了共享文件夹里面.   (用优盘拷也可以) 2.我把jdk拷在了用户文件夹下面. (其他地方也可以,不过路径要相应改变) 3.执行复制安装解压命令: 解压完毕: 查看解压的文件夹: 4.配置 环境变量: 写入如下5行代码: 使配置生效: 5.查看安装的jdk: java -version java javac 二.SSH免密码登陆: 1.安装SSH: 2.是否生成 .ssh 目录: 3.如果没有生成,自己手动创建一个 .ssh 目录:

Hadoop2.2.0 手动切换HA环境搭建

ssh-copy-id -i hadoop5含义: 节点hadoop4上执行ssh-copy-id -i hadoop5的含义是把hadoop4上的公钥id_rsa.pub的内容追加到hadoop5的授权文件authorized_keys中. zookeeper在hadoop2中实现的一个作用是HA的自动切换. journalnode是实现active和standby两个数据节点的数据同步. 搭建手工切换的HA (比hadoop1集群搭建多了一个journalnode) 机器分配: nameno

Hadoop-2.6.0分布式单机环境搭建HDFS讲解Mapreduce示例

Hadoop安装使用 1.1 Hadoop简介 1.2 HDFS分布式存储系统 1.3 单机安装 1.4 Mapreduce 案例 1.5 伪分布式安装 1.6 课后作业 1.1 Hadoop简介 在文章的时候已经讲解了Hadoop的简介以及生态圈,有什么不懂的可以"出门右转" http://dwz.cn/4rdSdU 1.2 HDFS分布式存储系统(Hadoop Distributed File System) HDFS优点 高容错性 数据自动保存多个副本 副本都时候会自动恢复 适合

hadoop2.x hdfs完全分布式 HA 搭建

官网链接 hadoop配置文件主页:http://hadoop.apache.org/docs/r2.5.2/ HDFS hapdoop HA全分布配置:http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html 总结步骤: 准备工作: 1. 配置java环境变量 可以在/etc/profile 或者在/root/.bash_profile中进行配置 2

_00014 hadoop-2.2.0 伪分布式环境搭建

http://passport.baidu.com/?business&un=%E5%B0%8F%E5%A7%90%5F%E6%B5%B7%E5%AE%81%5F%E6%89%BE%5F#0 http://passport.baidu.com/?business&un=%E5%B0%8F%E5%A7%90%E6%B5%B7%E5%AE%81%E6%8C%89%E6%91%A9%E6%89%BE#0 http://passport.baidu.com/?business&un=%E5

搭建hadoop2.6.0 HDFS HA及YARN HA

最终结果:[[email protected] ~]$ jps12723 ResourceManager12995 Jps12513 NameNode12605 DFSZKFailoverController [[email protected] ~]$ jps12137 ResourceManager12233 Jps12009 DFSZKFailoverController11930 NameNode [[email protected] ~]$ jps12196 DataNode12322

搭建hadoop2.6.0 HA及YARN HA

以前用hadoop2.2.0只搭建了hadoop的高可用,但在hadoop2.2.0中始终没有完成YARN HA的搭建,直接下载了hadoop最新稳定版本2.6.0完成了YARN HA及HADOOP HA的搭建流程,没有仔细看hadoop的官方文档,貌似hadoop2.2.0不支持YARN HA,如果说错了谢谢指正呀,下面总结一下我的搭建流程: 首先完成虚拟机的搭建: 机器名 IP 安装软件 运行进程 namenode1 192.168.3.161 hadoop NameNode.DFSZKFa