日期:2014-05-16  浏览次数:20808 次

分分钟搞定Hadoop-1.2.1集群--Linux下搭建HBase集群

????????? 分分钟搞定Hadoop集群

??????????????????????????? --Linux下搭建HBase集群

10分钟搞定Hadoop-1.2.1集群系列(1) http://chwshuang.iteye.com/blog/2037102

10分钟搞定Hadoop-1.2.1集群系列(2) http://chwshuang.iteye.com/blog/2037530

HBase在Hadoop集群下搭建过程:

??????? 在安装HBase集群前,必须先安装zookeeper。

??????? ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。Zookeeper是Google的Chubby一个开源的实现,是高有效和可靠的协同工作系统,Zookeeper能够用来leader选举,配置信息维护等,在一个分布式的环境中,需要一个Master实例或存储一些配置信息,确保文件写入的一致性等.ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,包含一个简单的原语集,是Hadoop和Hbase的重要组件。HBase需要Zookeeper来协调HBase集群,Zookeeper Quorum中除了存储了 HBase的-ROOT-表的地址和HMaster的地址,HRegionServer也会把自己以Ephemeral方式注册到Zookeeper中,使得 HMaster可以随时感知到各个HRegionServer的健康状态。此外,Zookeeper也避免了HBase中HMaster的单点问题。

一、安装zookeeper

????????????? (1)配置

??????????????????????? 解压完zookeeper-3.4.6后,进入/home/myhadoop/zookeeper-3.4.6/conf/目录,拷贝zoo_sample.cfg生成一个新文件zoo.cfg。然后修改zoo.cfg中dataDir目录地址,增加访问地址和端口

??????????????????????

[myhadoop@myhadoop1 .ssh]$ cd /home/myhadoop/zookeeper-3.4.6/conf/
[myhadoop@myhadoop1 conf]$ ls
configuration.xsl  log4j.properties  zoo_sample.cfg
[myhadoop@myhadoop1 conf]$ cp zoo_sample.cfg zoo.cfg
[myhadoop@myhadoop1 conf]$ ls
configuration.xsl  log4j.properties  zoo.cfg  zoo_sample.cfg
[myhadoop@myhadoop1 conf]$ vim zoo.cfg 
# example sakes.
dataDir=/home/myhadoop/zookeeper-3.4.6/data    ----修改此目录

#-------添加如下内容
server.1=192.168.1.111:2887:3887  
server.2=192.168.1.112:2888:3888  
server.3=192.168.1.113:2889:3889

?

?

?????? 进入zookeeper-3.4.6目录,创建刚才配置中增加的data目录, 然后进入data目录,创建myid文件,输入服务器编号,比如在192.168.1.111上,myid文件就存储数字1,192.168.1.112上就存储数字2

[myhadoop@myhadoop1 conf]$ cd ..
[myhadoop@myhadoop1 zookeeper-3.4.6]$ ls
bin        CHANGES.txt  contrib     docs             ivy.xml  LICENSE.txt  README_packaging.txt  recipes  zookeeper-3.4.6.jar      zookeeper-3.4.6.jar.md5
build.xml  conf         dist-maven  ivysettings.xml  lib      NOTICE.txt   README.txt            src      zookeeper-3.4.6.jar.asc  zookeeper-3.4.6.jar.sha1
[myhadoop@myhadoop1 zookeeper-3.4.6]$ mkdir data
[myhadoop@myhadoop1 zookeeper-3.4.6]$ cd data
[myhadoop@myhadoop1 data]$ vim myid

1

?

?

??? (2)拷贝数据到其他服务器

???? 复制zookeeper-3.4.6目录到其他从服务器

?????????

[myhadoop@myhadoop1 ~]$ cd ~
[myhadoop@myhadoop1 ~]$ scp zookeeper-3.4.6 myhadoop@myhadoop2:~

???? (3)修改myid编号

?

?????? 复制完成,以myhadoop用户登录到其他服务器,修改zookeeper-3.4.6/data/myid 文件的内容,myhadoop2服务器就改成2,myhadoop3服务器就改成3

????????

?

[myhadoop@myhadoop2 ~]$ cd ~
[myhadoop@myhadoop2 ~]$ vim zookeeper-3.4.6/data/myid 

2

?

?

?

[myhadoop@myhadoop3 ~]$ cd ~
[myhadoop@myhadoop3 ~]$ vim zookeeper-3.4.6/data/myid 

3

????? (4)启动验证

?

?????????????? 在从myhadoop3、myhadoop2,myhadoop1,依次执行zkServer.sh start 来启动 zookeeper,所有服务器启动完成后,就可以通过zkServer.sh status来查看服务器状态。没有报错说明都正常了。输入jps可以看到服务器中多了一个QuorumPeerMain服务。

?

[myhadoop@myhadoop1 ~]$ zkServer.sh start
JMX enabled by default
Using conf