hadoop2.2.0+hbase0.96+zookeeper3.4.5全分布式安装
hadoop2.2.0+hbase0.96+zookeeper3.4.5 都是采用了到目前为止的最新版本,可用于充分体验其新特性
本文非详细指南,主要记录主要步骤及问题解决思路,重点在于在hadoop2.2.0的基础上部署hbase0.96需要解决的问题
所以期望读者对hadoop相关组件有一定了解,当然,如有任何需要,请联系作者
一、安装基本环境
1、jdk安装
2、ssh无密码登陆设置
二、安装zookeeper3.4.5
1、解压
作者部署了5个zookeeper的节点,安装路径都为:
/home/hadoop/app/zookeeper-3.4.5
2、配置zoo.cfg
5个节点的zoo.cfg配置相同,如下
[hadoop@master1 conf]$ vizoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/app/zkdata
clientPort=2181
server.1=master1:2888:3888
server.2=master2:2888:3888
server.3=slave1:2888:3888
server.4=slave2:2888:3888
server.5=slave3:2888:3888
3、在5台zookeeper节点的dataDir (即/home/hadoop/app/zkdata)下分别建立相应的myid文件,展示master1的细节如下:
[hadoop@master1 zkdata]$ pwd
/home/hadoop/app/zkdata
[hadoop@master1 zkdata]$ ls
myid version-2 zookeeper_server.pid
[hadoop@master1 zkdata]$ catmyid
1
[hadoop@master1 zkdata]$
4、启动并测试
三、hadoop2.2.0下载、解压、配置(请参阅hadoop2.2.0安装配置及HA配置)
此部分内容较多,网上相关资料也很多
此处略
四、hbase0.96的安装
1、下载解压
2、本文案例部署了master1(1台Hmaster)、slave1、slave2、slave3(3台HRegionServer),安装路径如下:
/home/hadoop/app/hbase-0.96.0-hadoop2
3、参数配置
?因为要使用已存在的zookeeper实例,需要修改$HBASE_HOME/conf下的hbase-env.sh中的一个参数,如下所示:
# Tell HBase whether it should manage it's own instance of Zookeeper or not. export HBASE_MANAGES_ZK=false
?修改hbase-site.xml,在本文案例中,其内容如下:
(此处重要,“hdfs://blackcoder”这个url要与hadoop中hdfs-site.xml 中的对应配置保持一致,而“/hbase”是hbase在hdfs上数据存放的根路径,可自定义)
修改regionservers ,在本文案例中,其内容如下:
[hadoop@master1 conf]$ catregionservers
slave1
slave2
slave3
5、lib目录下jar包的替换
非常重要,否则hbase将无法访问hdfs,因而一切的CRUD操作都会报错
原因:hbase0.96安装包的lib目录下所用的hadoop相关jar包都是hadoop2.1.0 beta 版的,如下:
而这部分jar包跟hadoop2.2.0之间不能完全兼容,所以需要将hbase0.96的lib目录中的hadoop相关jar包替换成hadoop2.2.0版的jar包,如下
5、将hadoop的配置文件(最少需要hdfs-site.xml)copy到hbase0.96的conf目录下
6、启动hbase,测试
$HBASE_HOME/bin/start-hbase.sh
在各节点上用jps看一下是否启动成功,或者打开web客户端查看相关信息:
(Hmaster) http://master1:60010
(RegionServer)http://slave1:60030
启动shell 连接,$HBASE_HOME/bin/hbase shell
执行几个基本操作,如list , status, create , put 等进行测试
如顺利通过则安装成功完成
如有任何异常,可通过hmaster的log来进行分析,定位问题所在