欢迎投稿

今日深度:

hbase,

hbase,


环境:

操作系统Centos 5.5 64-bit

三台节点

 ip                       主机名   

172.16.48.201 sg201

172.16.48.202 sg202
172.16.48.203   sg203     

三点节点上已经布署好hadoop集群并正常启动

1.下载并解压hbase-0.94.0.tar.gz到/opt下

2.修改 hbase-env.sh ,hbase-site.xml,regionservers 这三个配置文件如下:

[plain] view plaincopy
  1. #hbase-env.sh  
  2. export HBASE_OPTS="-XX:+UseConcMarkSweepGC"  
  3. export JAVA_HOME=/usr/java/jdk1.7.0_05  
  4. export HBASE_HOME=/opt/hbase-0.94.0  
  5. export HADOOP_HOME=/opt/hadoop-1.0.3  
  6. export PATH=$PATH:/opt/hbase-0.94.0/bin  
  7. export HBASE_MANAGES_ZK=true  
需要注意的地方是 ZooKeeper的配置。这与 hbase-env.sh 文件相关,文件中 HBASE_MANAGES_ZK 环境变量用来设置是使用hbase默认自带的 Zookeeper还是使用独立的ZooKeeper。HBASE_MANAGES_ZK=false 时使用独立的,为true时使用默认自带的。

[plain] view plaincopy
  1. #hbase-site.xml  
  2.   
  3. <configuration>  
  4.     <property>  
  5.         <name>hbase.rootdir</name>r  
  6.         <value>hdfs://sg201:9000/hbase</value>    //必须与你的hadoop主机名,端口号一致;Hbase该项并不识别机器IP,只能使用机器hostname才行  
  7.     </property>  
  8.     <property>  
  9.         <name>hbase.cluster.distributed</name>  
  10.         <value>true</value>  
  11.     </property>  
  12.     <property>  
  13.         <name>hbase.zookeeper.quorum</name>  
  14.         <value>sg201,sg202,sg203</value>          //hbase.zookeeper.quorum 的个数必须是奇数  
  15.     </property>  
  16.   
  17.     <property>  
  18.         <name>hbase.master</name>  
  19.         <value>192.16.48.201:60000</value>  
  20.     </property>  
  21.   
  22.     <property>  
  23.         <name>zookeeper.session.timeout</name>  
  24.         <value>60000</value>  
  25.     </property>  
  26.     <property>  
  27.         <name>hbase.zookeeper.property.clientPort</name>  
  28.         <value>2222</value>                      //必须与zookeeper的配置文件zoo.cfg里的配置项clientport一致  
  29.     </property>  
  30. </configuration>  


[plain] view plaincopy
  1. #regionservers  
  2.   
  3. sg202  
  4. sg203  
3.将文件分发到集群其它节点上,启动hbase并检查是否成功

在HMaster即Namenode (sg201)启动HBase数据库(Hadoop集群必须已经启动)。 启动命令:

bin/start-hbase.sh

启动信息如下图

[plain] view plaincopy
  1. [root@sg201 hbase-0.94.0]# bin/start-hbase.sh  
  2. root@sg201's password: sg203: starting zookeeper, logging to /opt/hbase-0.94.0/logs/hbase-root-zookeeper-sg203.out  
  3. sg202: starting zookeeper, logging to /opt/hbase-0.94.0/logs/hbase-root-zookeeper-sg202.out  
  4.   
  5. sg201: Permission denied, please try again.  
  6. root@sg201's password:   
  7. sg201: starting zookeeper, logging to /opt/hbase-0.94.0/logs/hbase-root-zookeeper-sg201.out  
  8. starting master, logging to /opt/hbase-0.94.0/logs/hbase-root-master-sg201.out  
  9. sg202: starting regionserver, logging to /opt/hbase-0.94.0/logs/hbase-root-regionserver-sg202.out  
  10. sg203: starting regionserver, logging to /opt/hbase-0.94.0/logs/hbase-root-regionserver-sg203.out  
在HMaster上用jps命令查看

[plain] view plaincopy
  1. [root@sg201 conf]# jps  
  2. 12560 NameNode  
  3. 30611 Jps  
  4. 12861 JobTracker  
  5. 26302 HQuorumPeer  
  6. 28715 HMaster  
  7. 12755 SecondaryNameNode  
在datanode上用jps命令查看

[plain] view plaincopy
  1. [root@sg202 logs]# jps  
  2. 8194 Jps  
  3. 1020 DataNode  
  4. 1147 TaskTracker  
  5. 7376 HQuorumPeer  
  6. 7583 HRegionServer  

然后输入如下命令进入hbase的命令行管理界面:?

1 bin/hbase shell

   在hbase shell下 输入list,如下所示,列举你当前数据库的名称,如下图所示。如果你的Hbase没配置成功会抛出java错误。


[plain] view plaincopy
  1. [root@sg201 hbase-0.94.0]# bin/hbase shell  
  2. HBase Shell; enter 'help<RETURN>' for list of supported commands.  
  3. Type "exit<RETURN>" to leave the HBase Shell  
  4. Version 0.94.0, r1332822, Tue May  1 21:43:54 UTC 2012  
  5.   
  6. hbase(main):001:0> list  
  7. TABLE                                                                                                               
  8. member                                                                                                              
  9. people                                                                                                              
  10. 2 row(s) in 0.3980 seconds  

我们也可以通过WEB页面来管理查看HBase数据库。

  HMaster:http://172.16.48.201:60010/master.jsp


4.安装过程中碰到的问题及解决方法

问题1: 启动hbase时报错

[plain] view plaincopy
  1. [root@sg201 hbase-0.94.0]# bin/start-hbase.sh  
  2. root@sg201's password: sg203: starting zookeeper, logging to /opt/hbase-0.94.0/logs/hbase-root-zookeeper-sg203.out  
  3. sg202: starting zookeeper, logging to /opt/hbase-0.94.0/logs/hbase-root-zookeeper-sg202.out  
  4. sg203: SLF4J: Class path contains multiple SLF4J bindings.  
  5. sg203: SLF4J: Found binding in [jar:file:/opt/hbase-0.94.0/lib/slf4j-log4j12-  
  6.   
  7. 1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]  
  8. sg203: SLF4J: Found binding in [jar:file:/opt/hadoop-1.0.3/lib/slf4j-log4j12-  
  9.   
  10. 1.4.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]  
  11. sg203: SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.  
  12. sg202: SLF4J: Class path contains multiple SLF4J bindings.  
  13. sg202: SLF4J: Found binding in [jar:file:/opt/hbase-0.94.0/lib/slf4j-log4j12-  
  14.   
  15. 1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]  
  16. sg202: SLF4J: Found binding in [jar:file:/opt/hadoop-1.0.3/lib/slf4j-log4j12-  
  17.   
  18. 1.4.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]  
  19. sg202: SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.  

解决方法:移除三台节点/opt/hbase-0.94.0/lib目录下的slf4j-log4j12-1.5.8.jar文件

参考:http://blog.csdn.net/yangxiaofei616/article/details/7381921


问题2: sg202的HRegionServer启动失败

解决方法:是由于这三点节点的系统时间不一致相差超过集群的检查时间30s

参考:http://blog.csdn.net/dajuezhao/article/details/6881631

 

一、环境

Hbase 0.90.6 (集成了zookeeper,可匹配Hadoop0.20.2

hadoop0.20.2 ubuntu-1 192.168.1.10  HMaster) ubuntu-2 192.168.1.11   (Slave) ubuntu-3 192.168.1.12  (Slave)


将/hadoop0.20.2/lib/hadoop-core-0.20.0-append-l056497.jar覆盖到/hbase-0.90.6/lib/下面

二、配置 grid用户登录 1、下载hbase-0.90.6.tar.gz


 

2、解压hbase-0.90.6.tar.gz最终目录结构为/home/grid/hbase-0.90.6    tar zxvf hbase-0.90.6.tar.gz


 

3、配置/home/grid/hbase-0.90.6/conf下文件hbase-env.sh    文件未尾加:    export JAVA_HOME=/usr/java/jdk1.7.0_17


 

4、配置/home/grid/hbase-0.90.6/conf下文件hbase-site.xml <configuration> <property>     <name>hbase.rootdir</name>     <value>hdfs://ubuntu-1:9000/hbase/data</value> </property> <property>     <name>hbase.cluster.distributed</name>     <value>true</value> </property> <property>     <name>hbase.master.port</name>     <value>60000</value>   </property> <property>       <name>hbase.zookeeper.quorum</name>       <value>ubuntu-1</value> </property> </configuration> hbase.rootdir设置hbasehdfs上的目录,主机名为hdfsnamenode节点所在的主机 hbase.cluster.distributed设置为true,表明是完全分布式的hbase集群 hbase.master设置hbasemaster主机名和端口 hbase.zookeeper.quorum设置zookeeper的主机


 

5、配置/home/coole/hbase-0.20.6/conf下文件regionservers ubuntu-2 ubuntu-3


 

6etc/profile文件在文件未尾添加: export HBASE_HOME=/home/grid/ hbase-0.90.6 export PATH=$PATH:$HBASE_HOME/bin


 

7、 在完成以上修改之后,把ubuntu-1上的hbase-0.20.6原样复制到ubuntu-2和ubuntu-3上,保证目录结构一致,可使用如下命令: scp –r /home/grid/ hbase-0.90.6 ubuntu-2:/home/grid/ scp –r /home/grid/ hbase-0.90.6 ubuntu-3:/home/grid/


 

8启动和关闭Hbase bin/start-hbase.sh bin/stop-hbase.sh


 

9 查看进程 cd $JAVA_HOME bin/jps


 

10 配置zookeeper /conf/hbase-env.sh文件 去掉# export HBASE_MANAGES_ZK=true注释


 

11 permission denied的解决方法 chmod a+x bin/*

 

 

 

之前Hadoop等环境已经有了,所以想了解Hadoop的安装可以google一下

最主要的就是系统环境参数都配好,比如

HADOOP_HOME

ZOOKEEPER_HOME

HBASE_HOME

在HBASE_HOME/conf/hbase-site.xml中加入配置hadoop namenode的参数

  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:9000/hbase</value>
    <description>The directory shared by RegionServers.</description>
  </property>

hdfs://localhost:9000是namenode的地址和端口

/hbase是hdfs上的一个文件夹,注意不要自己建,hbase会帮你建的,你只要提供一个文件名就可以了

然后其他的都不用配置,运行HBASE_HOME/bin/start-hbase.sh

顺利启动,用命令行试一下,运行一下建表

create 'table_name', 'cf'

结果报错:ERROR: org.apache.hadoop.hbase.NotAllMetaRegionsOnlineException: org.apache.hadoop.hbase.NotAllMetaRegionsOnlineException: Timed out (10000ms)

google搜了一下,有好几个都说修改/etc/hosts文件,把原来127.0.0.1的修改成内网地址

想了半天127.0.0.1和内网地址好像没啥区别啊,最后找到了参考资料上的这段话:

Loopback IP
HBase expects the loopback IP address to be 127.0.0.1. Ubuntu and some other distributions, for example, will
default to 127.0.1.1 and this will cause problems for you.
/etc/hosts should look something like this:
127.0.0.1 localhost
127.0.0.1 ubuntu.ubuntu-domain ubuntu

关键在于第二句,原来ubuntu的hosts文件默认把机器名对应的ip设为了127.0.1.1,把这个改为127.0.0.1然后再试试

运行stop-hbase.sh结果等了半天还是没关闭stopping hbase...................................................................................................

肯定是什么地方出错了,直接kill掉进程,重启hbase,然后再创建表,这下对了

再找stop-hbase的问题吧,结果关闭也对了

原来stop出错也是因为这个hosts不对的关系

 

www.htsjk.Com true http://www.htsjk.com/hbase/37354.html NewsArticle hbase, 环境: 操作系统Centos 5.5 64-bit 三台节点  ip                       主机名    172.16.48.201 sg201 172.16.48.202 sg202 172.16.48.203   sg203      三点节点上已经布署好hadoop集群并正常启动...
相关文章
    暂无相关文章
评论暂时关闭