hbase
2015-10-15 16:23
387 查看
环境:
操作系统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
#hbase-env.sh
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
export JAVA_HOME=/usr/java/jdk1.7.0_05
export HBASE_HOME=/opt/hbase-0.94.0
export HADOOP_HOME=/opt/hadoop-1.0.3
export PATH=$PATH:/opt/hbase-0.94.0/bin
export HBASE_MANAGES_ZK=true
需要注意的地方是 ZooKeeper的配置。这与 hbase-env.sh 文件相关,文件中 HBASE_MANAGES_ZK 环境变量用来设置是使用hbase默认自带的 Zookeeper还是使用独立的ZooKeeper。HBASE_MANAGES_ZK=false 时使用独立的,为true时使用默认自带的。
[plain] view
plaincopy
#hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>r
<value>hdfs://sg201:9000/hbase</value> //必须与你的hadoop主机名,端口号一致;Hbase该项并不识别机器IP,只能使用机器hostname才行
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>sg201,sg202,sg203</value> //hbase.zookeeper.quorum 的个数必须是奇数
</property>
<property>
<name>hbase.master</name>
<value>192.16.48.201:60000</value>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>60000</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2222</value> //必须与zookeeper的配置文件zoo.cfg里的配置项clientport一致
</property>
</configuration>
[plain] view
plaincopy
#regionservers
sg202
sg203
3.将文件分发到集群其它节点上,启动hbase并检查是否成功
在HMaster即Namenode (sg201)启动HBase数据库(Hadoop集群必须已经启动)。
启动命令:
bin/start-hbase.sh
启动信息如下图
[plain] view
plaincopy
[root@sg201 hbase-0.94.0]# bin/start-hbase.sh
root@sg201's password: sg203: starting zookeeper, logging to /opt/hbase-0.94.0/logs/hbase-root-zookeeper-sg203.out
sg202: starting zookeeper, logging to /opt/hbase-0.94.0/logs/hbase-root-zookeeper-sg202.out
sg201: Permission denied, please try again.
root@sg201's password:
sg201: starting zookeeper, logging to /opt/hbase-0.94.0/logs/hbase-root-zookeeper-sg201.out
starting master, logging to /opt/hbase-0.94.0/logs/hbase-root-master-sg201.out
sg202: starting regionserver, logging to /opt/hbase-0.94.0/logs/hbase-root-regionserver-sg202.out
sg203: starting regionserver, logging to /opt/hbase-0.94.0/logs/hbase-root-regionserver-sg203.out
在HMaster上用jps命令查看
[plain] view
plaincopy
[root@sg201 conf]# jps
12560 NameNode
30611 Jps
12861 JobTracker
26302 HQuorumPeer
28715 HMaster
12755 SecondaryNameNode
在datanode上用jps命令查看
[plain] view
plaincopy
[root@sg202 logs]# jps
8194 Jps
1020 DataNode
1147 TaskTracker
7376 HQuorumPeer
7583 HRegionServer
然后输入如下命令进入hbase的命令行管理界面:?
在hbase shell下 输入list,如下所示,列举你当前数据库的名称,如下图所示。如果你的Hbase没配置成功会抛出java错误。
[plain] view
plaincopy
[root@sg201 hbase-0.94.0]# bin/hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.94.0, r1332822, Tue May 1 21:43:54 UTC 2012
hbase(main):001:0> list
TABLE
member
people
2 row(s) in 0.3980 seconds
我们也可以通过WEB页面来管理查看HBase数据库。
HMaster:http://172.16.48.201:60010/master.jsp
4.安装过程中碰到的问题及解决方法
问题1: 启动hbase时报错
[plain] view
plaincopy
[root@sg201 hbase-0.94.0]# bin/start-hbase.sh
root@sg201's password: sg203: starting zookeeper, logging to /opt/hbase-0.94.0/logs/hbase-root-zookeeper-sg203.out
sg202: starting zookeeper, logging to /opt/hbase-0.94.0/logs/hbase-root-zookeeper-sg202.out
sg203: SLF4J: Class path contains multiple SLF4J bindings.
sg203: SLF4J: Found binding in [jar:file:/opt/hbase-0.94.0/lib/slf4j-log4j12-
1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]
sg203: SLF4J: Found binding in [jar:file:/opt/hadoop-1.0.3/lib/slf4j-log4j12-
1.4.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
sg203: SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
sg202: SLF4J: Class path contains multiple SLF4J bindings.
sg202: SLF4J: Found binding in [jar:file:/opt/hbase-0.94.0/lib/slf4j-log4j12-
1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]
sg202: SLF4J: Found binding in [jar:file:/opt/hadoop-1.0.3/lib/slf4j-log4j12-
1.4.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
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
参考:/article/7931318.html
一、环境
Hbase 0.90.6 (集成了zookeeper,可匹配Hadoop0.20.2)
[align=left]hadoop0.20.2[/align]
[align=left]ubuntu-1 192.168.1.10 (HMaster)[/align]
[align=left]ubuntu-2 192.168.1.11 (Slave)[/align]
[align=left]ubuntu-3 192.168.1.12 (Slave)[/align]
将/hadoop0.20.2/lib/hadoop-core-0.20.0-append-l056497.jar覆盖到/hbase-0.90.6/lib/下面
[align=left]二、配置[/align]
[align=left]grid用户登录[/align]
[align=left]1、下载hbase-0.90.6.tar.gz[/align]
[align=left]2、解压hbase-0.90.6.tar.gz最终目录结构为/home/grid/hbase-0.90.6[/align]
[align=left] tar zxvf hbase-0.90.6.tar.gz[/align]
[align=left]3、配置/home/grid/hbase-0.90.6/conf下文件hbase-env.sh[/align]
[align=left] 文件未尾加:[/align]
[align=left] export JAVA_HOME=/usr/java/jdk1.7.0_17[/align]
[align=left]4、配置/home/grid/hbase-0.90.6/conf下文件hbase-site.xml[/align]
[align=left]<configuration>[/align]
[align=left]<property>[/align]
[align=left] <name>hbase.rootdir</name>[/align]
[align=left] <value>hdfs://ubuntu-1:9000/hbase/data</value>[/align]
[align=left]</property>[/align]
[align=left]<property>[/align]
[align=left] <name>hbase.cluster.distributed</name>[/align]
[align=left] <value>true</value>[/align]
[align=left]</property>[/align]
[align=left]<property>[/align]
[align=left] <name>hbase.master.port</name>[/align]
[align=left] <value>60000</value>[/align]
[align=left] </property>[/align]
[align=left]<property>[/align]
[align=left] <name>hbase.zookeeper.quorum</name>[/align]
[align=left] <value>ubuntu-1</value>[/align]
[align=left]</property>[/align]
[align=left]</configuration>[/align]
[align=left]hbase.rootdir设置hbase在hdfs上的目录,主机名为hdfs的namenode节点所在的主机[/align]
[align=left]hbase.cluster.distributed设置为true,表明是完全分布式的hbase集群[/align]
[align=left]hbase.master设置hbase的master主机名和端口[/align]
[align=left]hbase.zookeeper.quorum设置zookeeper的主机[/align]
[align=left]5、配置/home/coole/hbase-0.20.6/conf下文件regionservers[/align]
[align=left]ubuntu-2[/align]
[align=left]ubuntu-3[/align]
[align=left]6、etc/profile文件在文件未尾添加:[/align]
[align=left]export HBASE_HOME=/home/grid/ hbase-0.90.6[/align]
[align=left]export PATH=$PATH:$HBASE_HOME/bin[/align]
[align=left]7、 在完成以上修改之后,把ubuntu-1上的hbase-0.20.6原样复制到ubuntu-2和ubuntu-3上,保证目录结构一致,可使用如下命令:[/align]
[align=left]scp –r /home/grid/ hbase-0.90.6 ubuntu-2:/home/grid/[/align]
[align=left]scp –r /home/grid/ hbase-0.90.6 ubuntu-3:/home/grid/[/align]
[align=left]8、启动和关闭Hbase[/align]
[align=left]bin/start-hbase.sh[/align]
[align=left]bin/stop-hbase.sh[/align]
[align=left]9 查看进程[/align]
[align=left]cd $JAVA_HOME[/align]
[align=left]bin/jps[/align]
[align=left]10 配置zookeeper[/align]
[align=left]/conf/hbase-env.sh文件[/align]
[align=left]去掉# export HBASE_MANAGES_ZK=true注释[/align]
[align=left]11 permission denied的解决方法[/align]
[align=left]chmod a+x bin/*[/align]
之前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不对的关系
操作系统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
#hbase-env.sh
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
export JAVA_HOME=/usr/java/jdk1.7.0_05
export HBASE_HOME=/opt/hbase-0.94.0
export HADOOP_HOME=/opt/hadoop-1.0.3
export PATH=$PATH:/opt/hbase-0.94.0/bin
export HBASE_MANAGES_ZK=true
需要注意的地方是 ZooKeeper的配置。这与 hbase-env.sh 文件相关,文件中 HBASE_MANAGES_ZK 环境变量用来设置是使用hbase默认自带的 Zookeeper还是使用独立的ZooKeeper。HBASE_MANAGES_ZK=false 时使用独立的,为true时使用默认自带的。
[plain] view
plaincopy
#hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>r
<value>hdfs://sg201:9000/hbase</value> //必须与你的hadoop主机名,端口号一致;Hbase该项并不识别机器IP,只能使用机器hostname才行
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>sg201,sg202,sg203</value> //hbase.zookeeper.quorum 的个数必须是奇数
</property>
<property>
<name>hbase.master</name>
<value>192.16.48.201:60000</value>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>60000</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2222</value> //必须与zookeeper的配置文件zoo.cfg里的配置项clientport一致
</property>
</configuration>
[plain] view
plaincopy
#regionservers
sg202
sg203
3.将文件分发到集群其它节点上,启动hbase并检查是否成功
在HMaster即Namenode (sg201)启动HBase数据库(Hadoop集群必须已经启动)。
启动命令:
bin/start-hbase.sh
启动信息如下图
[plain] view
plaincopy
[root@sg201 hbase-0.94.0]# bin/start-hbase.sh
root@sg201's password: sg203: starting zookeeper, logging to /opt/hbase-0.94.0/logs/hbase-root-zookeeper-sg203.out
sg202: starting zookeeper, logging to /opt/hbase-0.94.0/logs/hbase-root-zookeeper-sg202.out
sg201: Permission denied, please try again.
root@sg201's password:
sg201: starting zookeeper, logging to /opt/hbase-0.94.0/logs/hbase-root-zookeeper-sg201.out
starting master, logging to /opt/hbase-0.94.0/logs/hbase-root-master-sg201.out
sg202: starting regionserver, logging to /opt/hbase-0.94.0/logs/hbase-root-regionserver-sg202.out
sg203: starting regionserver, logging to /opt/hbase-0.94.0/logs/hbase-root-regionserver-sg203.out
在HMaster上用jps命令查看
[plain] view
plaincopy
[root@sg201 conf]# jps
12560 NameNode
30611 Jps
12861 JobTracker
26302 HQuorumPeer
28715 HMaster
12755 SecondaryNameNode
在datanode上用jps命令查看
[plain] view
plaincopy
[root@sg202 logs]# jps
8194 Jps
1020 DataNode
1147 TaskTracker
7376 HQuorumPeer
7583 HRegionServer
然后输入如下命令进入hbase的命令行管理界面:?
bin/hbase shell |
[plain] view
plaincopy
[root@sg201 hbase-0.94.0]# bin/hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.94.0, r1332822, Tue May 1 21:43:54 UTC 2012
hbase(main):001:0> list
TABLE
member
people
2 row(s) in 0.3980 seconds
我们也可以通过WEB页面来管理查看HBase数据库。
HMaster:http://172.16.48.201:60010/master.jsp
4.安装过程中碰到的问题及解决方法
问题1: 启动hbase时报错
[plain] view
plaincopy
[root@sg201 hbase-0.94.0]# bin/start-hbase.sh
root@sg201's password: sg203: starting zookeeper, logging to /opt/hbase-0.94.0/logs/hbase-root-zookeeper-sg203.out
sg202: starting zookeeper, logging to /opt/hbase-0.94.0/logs/hbase-root-zookeeper-sg202.out
sg203: SLF4J: Class path contains multiple SLF4J bindings.
sg203: SLF4J: Found binding in [jar:file:/opt/hbase-0.94.0/lib/slf4j-log4j12-
1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]
sg203: SLF4J: Found binding in [jar:file:/opt/hadoop-1.0.3/lib/slf4j-log4j12-
1.4.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
sg203: SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
sg202: SLF4J: Class path contains multiple SLF4J bindings.
sg202: SLF4J: Found binding in [jar:file:/opt/hbase-0.94.0/lib/slf4j-log4j12-
1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]
sg202: SLF4J: Found binding in [jar:file:/opt/hadoop-1.0.3/lib/slf4j-log4j12-
1.4.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
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
参考:/article/7931318.html
一、环境
Hbase 0.90.6 (集成了zookeeper,可匹配Hadoop0.20.2)
[align=left]hadoop0.20.2[/align]
[align=left]ubuntu-1 192.168.1.10 (HMaster)[/align]
[align=left]ubuntu-2 192.168.1.11 (Slave)[/align]
[align=left]ubuntu-3 192.168.1.12 (Slave)[/align]
将/hadoop0.20.2/lib/hadoop-core-0.20.0-append-l056497.jar覆盖到/hbase-0.90.6/lib/下面
[align=left]二、配置[/align]
[align=left]grid用户登录[/align]
[align=left]1、下载hbase-0.90.6.tar.gz[/align]
[align=left]2、解压hbase-0.90.6.tar.gz最终目录结构为/home/grid/hbase-0.90.6[/align]
[align=left] tar zxvf hbase-0.90.6.tar.gz[/align]
[align=left]3、配置/home/grid/hbase-0.90.6/conf下文件hbase-env.sh[/align]
[align=left] 文件未尾加:[/align]
[align=left] export JAVA_HOME=/usr/java/jdk1.7.0_17[/align]
[align=left]4、配置/home/grid/hbase-0.90.6/conf下文件hbase-site.xml[/align]
[align=left]<configuration>[/align]
[align=left]<property>[/align]
[align=left] <name>hbase.rootdir</name>[/align]
[align=left] <value>hdfs://ubuntu-1:9000/hbase/data</value>[/align]
[align=left]</property>[/align]
[align=left]<property>[/align]
[align=left] <name>hbase.cluster.distributed</name>[/align]
[align=left] <value>true</value>[/align]
[align=left]</property>[/align]
[align=left]<property>[/align]
[align=left] <name>hbase.master.port</name>[/align]
[align=left] <value>60000</value>[/align]
[align=left] </property>[/align]
[align=left]<property>[/align]
[align=left] <name>hbase.zookeeper.quorum</name>[/align]
[align=left] <value>ubuntu-1</value>[/align]
[align=left]</property>[/align]
[align=left]</configuration>[/align]
[align=left]hbase.rootdir设置hbase在hdfs上的目录,主机名为hdfs的namenode节点所在的主机[/align]
[align=left]hbase.cluster.distributed设置为true,表明是完全分布式的hbase集群[/align]
[align=left]hbase.master设置hbase的master主机名和端口[/align]
[align=left]hbase.zookeeper.quorum设置zookeeper的主机[/align]
[align=left]5、配置/home/coole/hbase-0.20.6/conf下文件regionservers[/align]
[align=left]ubuntu-2[/align]
[align=left]ubuntu-3[/align]
[align=left]6、etc/profile文件在文件未尾添加:[/align]
[align=left]export HBASE_HOME=/home/grid/ hbase-0.90.6[/align]
[align=left]export PATH=$PATH:$HBASE_HOME/bin[/align]
[align=left]7、 在完成以上修改之后,把ubuntu-1上的hbase-0.20.6原样复制到ubuntu-2和ubuntu-3上,保证目录结构一致,可使用如下命令:[/align]
[align=left]scp –r /home/grid/ hbase-0.90.6 ubuntu-2:/home/grid/[/align]
[align=left]scp –r /home/grid/ hbase-0.90.6 ubuntu-3:/home/grid/[/align]
[align=left]8、启动和关闭Hbase[/align]
[align=left]bin/start-hbase.sh[/align]
[align=left]bin/stop-hbase.sh[/align]
[align=left]9 查看进程[/align]
[align=left]cd $JAVA_HOME[/align]
[align=left]bin/jps[/align]
[align=left]10 配置zookeeper[/align]
[align=left]/conf/hbase-env.sh文件[/align]
[align=left]去掉# export HBASE_MANAGES_ZK=true注释[/align]
[align=left]11 permission denied的解决方法[/align]
[align=left]chmod a+x bin/*[/align]
之前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不对的关系
相关文章推荐
- Timescale
- Linux的Sort命令
- FineReport——JS二次开发(CSS改变控件样式)
- [Linux] - Linux下安装jdk,tar方式
- 关于cookie
- mybatis批量插入数据到oracle
- 关于js with语句的一些理解
- Android 中Activity,Window和View之间的关系
- jQuery获取Select选择的Text和 Value(转)
- springmvc参数的传递
- springmvc参数的传递
- CSS3过渡
- adnroid 获取系统时间
- 如何计算NSAttributeString和NSString的label高度
- 如何让ViewPager页面不滑动
- Can't open a connection to site 'SYB_BACKUP'. See the error log file in the ASE boot directory. Msg
- java定时器的几种用法
- Install Maven
- linux系统修改系统时间与时区
- CSS3文本效果