在这开始之前,相信你已经配置好hadoop集群的一切,以此为前提写的以下内容。
一、快速开始的简单单机版配置:
1、去hbase镜像站下载一个推荐的stable版本,此篇下的是hbase-0.92.1.tar.gz 。解压缩到喜欢的目录下。
2、配置onf/hbase-site.xml,写入如下属性:
<property>
<name>hbase.rootdir</name>
<value>file:///DIRECTORY/hbase</value>
</property>
3、然后启动即可:$ ./bin/start-hbase.sh
二、伪集群的配置步骤:
1、依然是程序的安装,然后配置系统最大文件打开数:
1 2 3 4 |
$ vim /etc/security/limits.conf #文件最后写入如下信息: hadoop - nofile 32768 hadoop soft/hard nproc 32000 |
因为hbase会保持打开的文件的打开状态,调一下打开文件的数目上限,预防未来可能出现的错误。这里hadoop是启动hbase的linux用户,我把hbase和hadoop放在同一个用户下了。
2、配置ssh(hadoop集群已经配置好就跳过)、java环境变量(hadoop已配置好)。这里新配hbase的环境变量:
# set hbase environment
export HBASE_HOME=/usr/hbase-0.92.1
export PATH=${HBASE_HOME}/bin:$PATH
3、配置hbase文件:
hbase-env.sh:
export JAVA_HOME=/usr/java/default
export HBASE_HEAPSIZE=1024
hbase-site.xml:
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
根据情况修改hbase.rootdir。
去hadoop的配置目录下给hdfs-site.xml添加如下属性:
<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>
增加同时处理文件数目上限。
3、启动hbase即完成配置。
三、配置一个真正的hbase集群:
1、在上一步配置伪集群的基础上配置hbase-site.xml:
<property>
<name>hbase.rootdir</name>
<value>hdfs://10.210.70.82:9000/hbase</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>10.210.70.57,10.210.70.62,10.210.70.64</value>
</property>
根据情况填写hbase.rootdir,dfs.replication设置复本数。hbase.cluster.distributed默认false即非集群,这里设置为true开启集群。hbase.zookeeper.quorum是必须的zookeeper的设置,填写需要开启zookeeper服务的节点,越多可靠性越好(具体多少看情况),但是只能是奇数个。
2、然后配置conf/regionservers:
一行添加一个节点,类似hadoop的datanode的节点,就是hbase的工作节点。
3、然后使用scp或rsync分发到所有的regionseryer节点上,使用上面相同步骤进行配置环境变量。启动集群即可,至此配置完成。hbase主节点启动的是HMaster进程,子节点启动的是HRegionServer,zookeeper启动的是HQuorumPeer。
四、hbase入门使用:
1、用shell连接你的Hbase
$ hbase shell
HBase Shell; enter ‘help’ for list of supported commands.
Type “exit” to leave the HBase Shell
Version: 0.90.0, r1001068, Fri Sep 24 13:55:42 PDT 2010hbase(main):001:0>
输入 help 然后可以看到一列shell命令。这里的帮助很详细,要注意的是表名,行和列需要加引号。
2、创建一个名为 test 的表,这个表只有一个 column family 为 cf。可以列出所有的表来检查创建情况,然后插入些值。
hbase(main):003:0> create ‘test’, ‘cf’
0 row(s) in 1.2200 seconds
hbase(main):003:0> list
test
1 row(s) in 0.0550 seconds
hbase(main):004:0> put ‘test’, ‘row1′, ‘cf:a’, ‘value1′
0 row(s) in 0.0560 seconds
hbase(main):005:0> put ‘test’, ‘row2′, ‘cf:b’, ‘value2′
0 row(s) in 0.0370 seconds
hbase(main):006:0> put ‘test’, ‘row3′, ‘cf:c’, ‘value3′
0 row(s) in 0.0450 seconds
以上我们分别插入了3行。第一个行key为row1, 列为 cf:a, 值是 value1。Hbase中的列是由 column family前缀和列的名字组成的,以冒号间隔。例如这一行的列名就是a.
3、检查插入情况.Scan这个表,操作如下
hbase(main):007:0> scan ‘test’
ROW COLUMN+CELL
row1 column=cf:a, timestamp=1288380727188, value=value1
row2 column=cf:b, timestamp=1288380738440, value=value2
row3 column=cf:c, timestamp=1288380747365, value=value3
3 row(s) in 0.0590 seconds
4、Get一行,操作如下
hbase(main):008:0> get ‘test’, ‘row1′
COLUMN CELL
cf:a timestamp=1288380727188, value=value1
1 row(s) in 0.0400 seconds
5、disable 再 drop 这张表,可以清除你刚刚的操作
hbase(main):012:0> disable ‘test’
0 row(s) in 1.0930 seconds
hbase(main):013:0> drop ‘test’
0 row(s) in 0.0770 seconds
6、关闭shell
hbase(main):014:0> exit
入门练习完成,nosql的数据库,详细的请另行了解学习。