一、配置linux环境(由于权限等,未进行此修改)
在使用HBase的时候,通常需要访问很多文件和开很多进程,因此需要在linux中提高相应用户的访问上限值,通过如下方式配置:
在/etc/security/limits.conf文件中增加以下配置:
hdadmin - nofile 32768
hdadmin hard nproc 32000
hdadmin soft nproc 32000
其中hdadmin为用户名
在/etc/pam.d/common-session文件中增加下面配置,否则上面的配置不启作用:
session required pam_limits.so
重启机器确保生效
二、下载、解压
从http://hbase.apache.org/上下载当前的稳定版hbase-0.92.1;
解压到家目录下,得到hbase-0.92.1目录
三、配置
在hbase-0.92.1/conf/路径下
(1)修改hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_33
export HBASE_MANAGES_ZK=false
export HBASE_CLASSPATH=/home/hdadmin/hadoop-1.0.3/conf
说明:
export HBASE_MANAGES_ZK=true ,表示zookeeper由hbase集成方式部署(hbase-0.92.1集成了zookeeper-3.4.3),如果想要独立部署(如用之前配置的zookeeper-3.3.5),需要将HBASE_MANAGES_ZK设置成false。
export HBASE_CLASSPATH指向hadoop的conf目录。
(2)hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://172.17.238.152:9000/hbase</value>
</property>
<property>
<name>hbase.master</name>
<value>172.17.238.151:60000</value>
</property>
<property>
<name>hbase.master.port</name>
<value>60000</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>172.17.238.154,172.17.238.157,172.17.238.161,172.17.238.162</value>
</property>
</configuration>
说明:
hbase.rootdir设置hbase在hdfs上的目录,主机名为hdfs的namenode节点所在的主机 (hadoop的core-site.xml文件中的一致)
hbase.cluster.distributed设置为true,表明是完全分布式的hbase集群
hbase.master设置hbase的master主机名和端口
hbase.zookeeper.quorum设置zookeeper的主机,建议使用单数
(3)regionservers 文件
修改为:
172.17.238.154
172.17.238.157
172.17.238.161
172.17.238.162
(4)修改hadoop的目录下的conf/hdfs-site.xml
<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>
(5)复制hadoop的jar到hbase的lib目录下,删除原来的lib下的hadoop.jar
原来的hadoop-core-1.0.0-append-r1056497.jar
新的hadoop-1.0.3-core.jar添加到lib/
(6)把hbase-0.92.1目录通过scp -r 命令 传送到 ip结尾为154,157,161,162的家目录下
三、启动、关闭
至此 hadoop+zookeeper+hbase安装完成
启动顺序
1.hadoop
2.zookeeper
3.hbase
停止顺序
1.hbase
2.zookeeper
3.hadoop
注意 一定要按顺序停止,如果先停zookeeper再停hbase的话,基本停不下来(自己测试结果)
启动命令:hbase-0.92.1/bin/start.sh
关闭命令:hbase-0.92.1/bin/stop.sh
172.17.238.151上的所有java进程:
hdadmin@2012051816305190-7f:~> jps
25928 Jps
22975 HMaster
18571 JobTracker
18210 SecondaryNameNode
30987 QuorumPeerMain
172.17.238.154、157、161、162上的所有java进程均为:
hdadmin@2012051816305190-384:~> jps
30387 QuorumPeerMain
18804 TaskTracker
25996 Jps
23128 HRegionServer
18408 DataNode
四、测试
hdadmin@2012051816305190-7f:~> hbase-0.92.1/bin/start.shhbase-0.92.1/bin/hbase shell
hbase(main):003:0> create 'test', 'cf'
0 row(s) in 1.2200 seconds
mainhbase(main):012:0> list
TABLE
test
1 row(s) in 0.0520 seconds
hbase(main):006:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.1390 seconds
hbase(main):007:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0270 seconds
hbase(main):008:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0230 seconds
mainhbase(main):012:0> list
TABLE
test
1 row(s) in 0.0520 seconds
hbase(main):009:0> scan 'test'
ROW COLUMN+CELL
row1 column=cf:a, timestamp=1342030836612, value=value1
row2 column=cf:b, timestamp=1342030861127, value=value2
row3 column=cf:c, timestamp=1342030878148, value=value3
3 row(s) in 0.0730 seconds
hbase(main):010:0> get 'test', 'row1'
COLUMN CELL
cf:a timestamp=1342030836612, value=value1
hbase(main):013:0> disable 'test'
0 row(s) in 2.1160 seconds
hbase(main):015:0> drop 'test'
0 row(s) in 1.4320 seconds
hbase(main):016:0> list
TABLE
0 row(s) in 0.0220 seconds
hbase(main):017:0> exit