hbase分布式安装

来源:互联网 发布:软件项目管理模式 编辑:程序博客网 时间:2024/05/18 02:39

hbase分布式安装(转)

(2012-12-04 15:06:36)
转载
标签:

hadoop

环境

it

分类:hadoop
下面介绍一下HBase完全分布式安装的步骤:
1.使用Hadoop 0.20.2+ZooKeeper3.3.3+HBase 0.90.3,
2.下载HBase0.90.3,解压至/usr/local/hbase
3.先检测zookeeper是否安装正确
HBase需要zookeeper,所以在配置HBase前务必确定zookeeper可以正常运行.
HBase有两种方式使用zookeeper服务,第一种是使用已经存在的独立zookeeper服务,另外一种是由HBase自己管理zookeeper服务,这里我们让HBase来管理zookeeper,可以少打一些命令:)
4.配置hbase/conf/hbase-site.xml
增加如下行:
  1. hbase.zookeeper.quorum
  2. hadoop1.ahau.edu.cn,hadoop2.ahau.edu.cn,hadoop3.ahau.edu.cn,hadoop4.ahau.edu.cn
  3. Comma separated list of servers in the ZooKeeper Quorum.
  4. For example,"host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
  5. By default this is set to localhost for local andpseudo-distributed modes
  6. of operation. For a fully-distributed setup, this should be set toa full
  7. list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set inhbase-env.sh
  8. this is the list of servers which we will start/stop ZooKeeperon.
  9. hbase.zookeeper.property.dataDir
  10. /home/grid/zookeeper/
  11. Property from ZooKeeper's config zoo.cfg.
  12. The directory where the snapshot is stored.
  13. hbase.rootdir
  14. hdfs://hadoop1.ahau.edu.cn:9100/hbase
  15. hbase.cluster.distributed
  16. true
hbase.zookeeper.quorum指定所有zookeeper的节点
hbase.zookeeper.property.dataDir指定zookeeper的数据目录
hbase.rootdir指定hdfs的路径
hbase.cluster.distributed为true表示完全分布式部署

5.修改hbase/conf/hbase-evn.sh
  1. exportJAVA_HOME=/usr/local/jdk1.6.0_25 #JAVA的目录
  2. exportHBASE_CLASSPATH=/home/grid/hadoop/conf #Hadoop配置所在目录
  3. export HBASE_OPTS="-ea-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
  4. exportHBASE_MANAGES_ZK=true #HBase是否管理zookeeper
6.将zookeeper的配置文件zoo.cfg复制到HBASE_CLASSPATH指定的目录
7.复制hadoop/conf/hdfs-site.xml到hbase/conf目录
8.把所有节点加入hbase/conf/regionservers,每行一个主机名
9.所有主机名都要做好反向解析,否则启动HBase会报错
10.检测一下HBase是否能够启动zookeeper
hbase$bin/hbase-daemon.shstart zookeeper
hbase#bin/hbase-daemon.shstop zookeeper
11.把hbase目录同步到所有的节点服务器
12.启动时,先启动Hadoop,然后是HBase,关闭时,先停止HBase,再停止Hadoop
13.启动Hadoop
hadoop$bin/start-all.sh
  启动HBase
hbase$bin/start-hbase.sh
14.启动以后可能会遇到问题,具体的问题日志里都会有写,本文最后有一些常见的问题的解决办法
15.打开页面http://hadoop1.ahau.edu.cn:60010/master.jsp
查看hbase的状态,此时会有一个提醒框
hbase分布式安装(转)
分布式系统有个这么个提示,不是很蛋疼,所以一定要解决掉

16.按照wiki的提示,在hadoop/conf/hdfs-site.xml和hbase/conf/hdfs-site.xml里增加dfs.support.append的支持
  1. dfs.support.append
  2. true
17.无果,仍旧有上面的提示,开始漫长的google
18.HBase的官网上有写,hbase不支持官方的0.20.2的dfs.support.append,需要自己编译分支hadoop
hbase分布式安装(转)
19.编译安装可以参考 北飞孤雁大神的博客
http://blog.csdn.net/lansine2005/article/details/6595294
   或者 
http://www.michael-noll.com/blog/2011/04/14/building-an-hadoop-0-20-x-version-for-hbase-0-90-2/
第二个地址是英文的
20.编译需要git和ant,ant的版本最好在1.8.0以上,我用1.7.6时报错
21.编译出来的jar包,需要替换原来hadoop里的包,也就是说要把原来的包删掉,否则hadoop还是会启动老的jar包
22.把新编译出来的jar包同步到所有节点
23.再次启动hadoop和hbase,那个红色的提示消失了

常见问题汇总:
1.使用官方的hadoop0.20.2时,启动hbase报错:
  1. FATAL master.HMaster:Unhandled exception. Startingshutdown.org.apache.hadoop.ipc.RPC$VersionMismatch: Protocolorg.apache.hadoop.hdfs.protocol.ClientProtocol version mismatch.(client = 42, server = 41)
原因是hbase/lib里的包与hadoop的不一致,把hadoop目录里的hadoop-0.20.2-core.jar复制到hbase的lib里就可以解决
2.启动hbase,报:
  1. novalid quorum servers found in zoo.cfg
zoo.cfg一定要复制到hadoop/conf目录下,否则就会报这个错
3.hbase报错
  1. Could not find myaddress
有两种情况会导致这个错误,1主要是因为没有做反向解析,2是因为没有复制zoo.cfg,导致hbase读不到zookeeper的配置

整合后期感想,后期
1.好像在 hbase_env.sh文件中加入了:
exportHBASE_HOME=/usr/local/hbase      hbase的home路径
exportPATH=$PATH:/usr/local/hbase/bin   hbase的homebin路径
exportHADOOP_HOME=/usr/local/hadoop    hadoop的home路径
(测试发现,无关系)
2.修改了hbase_site.xml中的hbase.rootdir 中的端口号,hdfs://xukangde-01:9100改成 hdfs://xukangde-01:9000,变成统一的了(测试发现,有关系)

3.将每个子机hadoopconf文件夹下 master slaver 中都加入了主机名(后测试,发现无关)
原创粉丝点击