hbase-0.98.1-hadoop2整合hadoop-2.2.0分布式集群安装配置

下载hbase-0.98.1-hadoop2-bin.tar.gz

wget http://mirror.bit.edu.cn/apache/hbase/hbase-0.98.1/hbase-0.98.1-hadoop2-bin.tar.gz

解压安装到/opt目录下

tar zxvf hbase-0.98.1-hadoop2-bin.tar.gz -C /opt/hbase-0.98.1

修改配置文件

修改/opt/hbase-0.98.1/conf/hbase-env.sh文件

设定JAVA_HOME

export JAVA_HOME=/opt/jdk1.7.0_51

如果使用hbase自带的zookeeper来管理hbase的话开启这项配置,后面如果自己安装独立的zookeeper的话需要将该项配置注释掉。

export HBASE_MANAGES_ZK=true

由于我目前还没有安装zookeeper所以开启export HBASE_MANAGES_ZK=true

修改/opt/hbase-0.98.1/conf/hbase-site.xml文件

<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
</configuration>

注:

hbase.rootdir 指定hbase在hadoop集群上存放的位置

hbase.cluster.distributed 为true表明是分布式环境

hbase.zookeeper.quorum 指定hbase所在的机器master,slave1,slave2均为安装了hbase的主机名

修改/opt/hbase-0.98.1/conf/regionservers文件

slave1
slave2

拷贝上面配置好的hbase目录到slave1、slave2,最好所在目录与master上的一致.

在/etc/profile中设置HBASE_HOME环境变量

export HBASE_HOME=/opt/hbase-0.98.1
export PATH=$HBASE_HOME/bin:$PATH

启动hdfs集群

start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver

启动hbase

start-hbase.sh

此时我们在master机器上使用jps将会看下以下的进程

master主机jps进程列表

4280 SecondaryNameNode
5070 HQuorumPeer
3998 NameNode
5238 Jps
4431 ResourceManager
5123 HMaster
4700 JobHistoryServer

slave1主机jps进程列表

3642 DataNode
3879 NodeManager
4396 Jps
4141 HQuorumPeer
4336 HRegionServer

slave2主机jps进程列表

3642 DataNode
3879 NodeManager
4396 Jps
4141 HQuorumPeer
4336 HRegionServer

地址栏输入:http://master:60010/master-status可以查看hbase集群详细情况。

启动hbase thrift服务

如果我们要将hbase与hue集成的话还需要启动thrift服务,使用下面的命令即可.

hbase-daemon.sh start thrift

上面的操作完成后即可启动 hbase thrift服务,默认端口为9090.

在hue中配置hbase

在hue.ini文件中修改hbase的配置为如下

[hbase]
# Comma-separated list of HBase Thrift servers for
# clusters in the format of '(name|host:port)'.
hbase_clusters=(Cluster|master:9090)

# Hard limit of rows or columns per row fetched before truncating.
## truncate_limit = 500

hbase_clusters=(Cluster|master:9090) Cluster不可以修改,貌似在hue里面固定了似的。master为hbase启动进程HMaster所在主机名。9090为启动hbase thrift服务后的默认端口

hbase shell 进入hbase shell

在命令行窗口输入hbase shell即可进入hbase shell环境中

hbase shell

list 列出表

list 'table'

create 创建表

create 'hbase','hb'

创建一个名为 hbase 的表,这个表只有一个 列族 为 hb

put 插入行

put 'hbase', 'row1', 'hb:a', 'aimeizi.net'
put 'hbase', 'row2', 'hb:b', 'aimeizi.com'
put 'hbase', 'row3', 'hb:c', 'aimeizi.cn'

以上我们分别插入了3行。第一个行key为row1, 列为 hb:a, 值是aimeizi.net。HBase中的列是由列族前缀和列的名字组成的,以冒号间隔。例如这一行的列名就是a.

scan scan表

检查插入情况,scan这个表,操作如下

scan 'hbase'
ROW COLUMN+CELL
row1 column=hb:a, timestamp=1398051417281, value=aimeizi.net
row2 column=hb:b, timestamp=1398051425151, value=aimeizi.com
row3 column=hb:c, timestamp=1398051433108, value=aimeizi.cn
3 row(s) in 0.1230 seconds

get get行

Get一行,操作如下

get 'hbase', 'row1'
COLUMN CELL
hb:a timestamp=1398051417281, value=aimeizi.net
1 row(s) in 0.0870 seconds

disable disable表

disable 再 drop 这张表,可以清除你刚刚的操作

disable 'hbase'
0 row(s) in 6.2470 seconds

drop 表

hbase(main):014:0> drop 'hbase'
0 row(s) in 0.7340 seconds

检查是否已drop掉表hbase

list 'table'
TABLE
0 row(s) in 0.0610 seconds

=> []

停止hbase

stop-hbase.sh