操做系统:Centos6.5 Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
jdk版本:java version "1.7.0_79"
hadoop版本:Apache hadoop-2.5.2java
zookeeper:3.4.6node
本文实现hadoop分布式环境搭建,启用YARN,利用zookeeper实现HA。apache
zookeeper:node2\node3\node4vim
namenode:node1\node5浏览器
journalnode:node2\node3\node4bash
datanode:node2\node3\node4服务器
ResourceManager:node1\node5ssh
一、实现各个节点之间的免密码登陆设置。分布式
二、在/etc/hosts文件中对各个节点进行配置。个人配置以下:ide
192.168.103.101 node1 192.168.103.102 node2 192.168.103.103 node3 192.168.103.104 node4 192.168.103.105 node5
一、安装zookeeper。
二、配置hadoop相关文件。
三、启动hadoop系统,浏览器界面验证。
首先在node2节点上进行如下操做。
一、首先从官网下载,本文使用的版本为3.4.6。
二、解压安装包,并复制到指定目录下。
tar zxvf zookeeper-3.4.6.tar.gz mv zookeeper-3.4.6/ /home/install/
三、进入到zookeeper安装目录,修改配置文件zoo.cfg,若该文件不存在,将zoo_sample.cfg重命名为zoo.cfg:
cd /home/install/zookeeper-3.4.6/ vim conf/zoo.cfg
添加或修改如下代码:
dataDir=/opt/tem/zookeeper #修改此处为/tmp目录之外的其余目录 server.2=node2:2888:3888 server.3=node3:2888:3888 server.4=node4:2888:3888
上面的代码定义了3台zookeeper服务器。数量必须为奇数。
三、切换到上面定义的/opt/tem/zookeeper/目录下,提供一个叫myid的文件。
cd /opt/tem/zookeeper/
vim myid
在myid文件中输入一个2,保存退出便可。
四、上面相同的操做在node3和node4上重复进行(或者也能够将node2上的安装目录以及/opt/tem/zookeeper/拷贝到node3和node4上)
注意将node3上的myid文件的内容修改成3,将node4上的myid文件的内容修改成4。
五、将zookeeper安装目录/bin添加到~/.bash_profile中(可选操做,仅是为了命令行操做方便)
export PATH=$PATH:/home/install/zookeeper-3.4.6/bin
六、在node2\node3\node4上分别启动zookeeper:
zkServer.sh start
七、用如下命令测试一下是否正确启动:
zkCli.sh
效果以下图便可:
至此,zookeeper安装完毕。
6、配置hadoop相关脚本:
如下操做在node1上进行。
配置内容皆参考hadoop官方网站。本文中hadoop安装目录为/home/install/hadoop-2.5.1
一、修改hadoop-env.sh文件,添加如下内容:
export JAVA_HOME=/usr/java/jdk1.7.0_79 export HADOOP_PREFIX=/home/install/hadoop-2.5.1
二、修改core-site.xml文件:
<configuration> <property> <name>hadoop.tmp.dir</name> <value>/opt/tep/hadoop-2.5.1</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property> <property> <name>ha.zookeeper.quorum</name> <value>node2:2181,node3:2181,node4:2181</value> </property> </configuration>
说明:
三、修改hdfs-site.xml文件:
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>node1:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>node5:8020</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>node1:50070</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>node5:50070</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://node2:8485;node3:8485;node4:8485/mycluster</value> </property> <property> <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value> </property> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_dsa</value> </property> <property> <name>dfs.journalnode.edits.dir</name> <value>/opt/tem/journalnode</value> </property> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> </configuration>
四、修改yarn-site.xml中的内容:
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> </property> <property> <name>yarn.resourcemanager.cluster-id</name> <value>cluster1</value> </property> <property> <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> </property> <property> <name>yarn.resourcemanager.hostname.rm1</name> <value>node1</value> </property> <property> <name>yarn.resourcemanager.hostname.rm2</name> <value>node5</value> </property> <property> <name>yarn.resourcemanager.zk-address</name> <value>node2:2181,node3:2181,node4:2181</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
五、修改mapred-site.xml文件:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
六、保证conf目录下不要有masters文件。
七、修改slaves文件:
node2
node3
node4
八、将$HADOOP_HOME/etc/hadoop/下的配置文件分别拷贝到node2\node3\node4\node5节点上。
scp etc/hadoop/* root@node2:/home/install/hadoop-2.5.1/etc/hadoop/ scp etc/hadoop/* root@node3:/home/install/hadoop-2.5.1/etc/hadoop/ scp etc/hadoop/* root@node4:/home/install/hadoop-2.5.1/etc/hadoop/ scp etc/hadoop/* root@node5:/home/install/hadoop-2.5.1/etc/hadoop/
九、执行下述命令:
hdfs zkfc -formatZK
其做用是在zookeeper中建立一个属于当前集群的目录:
十、启动zk:
hadoop-daemon.sh start zkfc
十一、启动hdfs:
start-dfs.sh
九、在node1上启动yarn:
start-yarn.sh
十、在node5上执行下述命令:
yarn-daemon.sh start resourcemanager
十一、浏览器中查看界面:http://node1:8088