原帖地址: http://blog.csdn.net/nsrainbow/article/details/42013293 最新课程请关注原作者博客
声明
- 本文基于Centos 6.x + CDH 5.x
- 官方英文安装教程 http://www.cloudera.com/content/cloudera/en/documentation/cdh5/v5-0-0/CDH5-Installation-Guide/cdh5ig_cdh5_install.html 本文并不是简单翻译,而是再整理
- 如果没有yum源请参考http://blog.csdn.net/nsrainbow/article/details/36629339#t2
架构图
hadoop各个组件的关系是这样的
- namenode 总数就2个,不能多也不能少,一个是active状态,一个是standby状态,只有active状态的在工作,另一个只是备份,当active状态的挂了之后,standby的会切换为active状态。但是这个动作其实不是天生自动的,配合上zookeeper才能实现自动化切换。
- journalNode 用于存储active状态的namenode所做的所有改变,并同步到standby的namenode,以保证在standby转换为active之后不会漏掉操作
- namenode管理着datanode,namenode负责存储地址空间,datanode负责真正的存储数据
本次部署之后的架构图是这样的
- 为了降低部署的难度,我就虚拟了两台机子,其实真正部署的时候至少要有3台(保持奇数个)
- zookeeper是负责在active的namenode挂掉之后自动把standby状态的namenode切换成active的
这幅图则解释了zookeeper在整个hadoop集群中的作用
- zookeeper是游离于hadoop集群之外的组件
- hadoop利用 zkfc (zookeeperFC) 来跟 zookeeper进行协作,其实目的很简单,就是在一个namenode挂掉的时候,自动切换成另一个namenode为active状态
准备工作
- 用vmware开出两台虚拟机,安装上Centos6。 我弄了两个host,分别是 host1(192.168.199.126) 和host2(192.168.199.128)
- 开始前请按照 Alex 的 Hadoop 菜鸟教程: 第2课 hadoop 安装教程 (CentOS6 CDH分支 yum方式) 里面的方式添加yum源
安装
安装Zookeeper
注意:我这人比较懒,所以基本都是用root在安装,所以以下命令,如果你们无法执行,请再前面加一个 sudo 。或者想我一样直接用root玩
在两台机都执行
yum install zookeeper -y
都安装 zookeeper-server
sudo yum install zookeeper-server -y
在 host1 上启动zookeeper
$ sudo service zookeeper-server init --myid=1
$ sudo service zookeeper-server start
JMX enabled by default
Using config: /etc/zookeeper/conf/zoo.cfg
Starting zookeeper ... STARTED
注意:这个 --myid=1 标定了zookeeper的id,会在 /var/lib/zookeeper 下建立一个 myid 文件
在 host2 上启动zookeeper
$ sudo service zookeeper-server init --myid=2
$ sudo service zookeeper-server start
JMX enabled by default
Using config: /etc/zookeeper/conf/zoo.cfg
Starting zookeeper ... STARTED
检查下是否在2181端口监听
$ netstat -tpnl | grep 2181
tcp 0 0 :::2181 :::* LISTEN 5477/java
用client端测试一下
zookeeper-client -server host1:2181
配置zookeeper
在两台机子上都编辑 /etc/zookeeper/conf/zoo.cfg 文件
tickTime=2000
dataDir=/var/lib/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=host1:2888:3888
server.2=host2:2888:3888
改完记得重启zookeeper
注意:其实zookeeper的服务器最小的安装数量是3台机器,但是现在只有2台,只能凑合了。因为zookeeper是根据超过半数出问题来关停系统的,所以2台就无法正确的判断了,不过我们只是做例子所以没关系。
hadoop在启动的时候会自动去找zookeeper的2181端口,如果没有就启动不起来
安装Resource Manager
你需要在两台机子中挑选一台作为resource manager,在这里我挑选
host1(192.168.199.126) 安装
在 host1 上执行
yum install hadoop-yarn-resourcemanager -y
安装Name Node
在
两台机子上都安装name node
sudo yum install hadoop-hdfs-namenode -y
安装Date Node 等
官方文档说在除了Resource Manager 以外的所有机器上安装以下几个包,不过你要是非在有Resource Manager的机器上装这些也不会出错,只是生产环境肯定不能这么干了。既然我们只有两台机子而且都装datanode,那肯定是只能两台机都要安装了
yum install hadoop-yarn-nodemanager hadoop-hdfs-datanode hadoop-mapreduce -y
<