可以访问9问社区 共同学习!
首先,对hbase做一个简要简介。
hbase是bigtable的开源山寨版本。是建立在hdfs之上,提供高可靠性、高性能、列存储、客伸缩、实时读写的数据库系统。
它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表jion等复杂操作)。主要用来存储非结构化和半结构化的松散数据。
与hadoop一样,hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。
hbase中的表一般有这样的特点: 大:一个表可有有上一行,上百万列。
面向列:面向列(族)的存储和权限控制,列(族)独立检索。
稀疏:对于为空(null)的列,并不占用空间,因此,表可以设计的非常稀疏。
做了简单的介绍后,下面进行hbase的安装 。
新建hbase账户
此步骤是可选择的。新建账户在某种程度上是为了隔离,方便运维,提高安全性。
新建hbase组
sudo groupadd hbase
新建hbase用户,并将其加入hbase组中
sudo useradd -g hbase hbase
给新用户设置密码
sudo passwd hbase
单机模式安装
1.下载,解压
wget http://mirrors.hust.edu.cn/apa ... ar.gz
sudo tar zxf hbase-1.0.1.1-bin.tar.gz -C /var/local/hbase/
2.修改hbase-env.sh,指明jdk安装路径
如果我们在/etc/profile中配置过环境变量,我们可以通过echo $JAVA_HOME获取jdk的安装路径。如果是默认则一般安装在/usr/lib/jvm下
echo $JAVA_HOME
找到hbase-env.sh中JAVA_HOME那行。此处我们可以在此行下面新增一行,或者去掉这行注释,设置JAVA_HOME为你的JAVA_HOME。我的配置如下:
# export JAVA_HOME=/usr/java/jdk1.6.0/
export JAVA_HOME=/usr/local/java/jdk1.8.0_45
3.修改conf/hbase-site.xml
我的配置如下。
hbase.rootdir目录是用来存放HBase的相关信息的,默认值是/tmp/hbase-${user.name}/hbase。
hbase.zookeeper.property.dataDir目录是用来存放zookeeper(HBase内置了zookeeper)的相关信息的,默认值是/tmp/hbase-${user.name}/zookeeper。
<configuration>
<property>
<name>hbase.rootdir</name>
<value>/var/local/hbase/rootdir</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/var/local/hbase/zookeeper</value>
</property>
</configuration>
4.启动
执行./bin/start-base.sh命令启动。
./bin/start-hbase.sh
5.试用一下
通过如下命令进入hbase shell界面。
./bin/hbase shell
创建一个名称为user,列为name的表。然后通过list命令查询 user表。再通过put命令向user表中插入三行。是不是很easy。
hbase(main):001:0> create 'user','name'
0 row(s) in 0.5080 seconds
=> Hbase::Table - user
hbase(main):002:0> list 'user'
TABLE
user
1 row(s) in 0.0310 seconds
=> [ "user"]
hbase(main):003:0> put 'user','row1','name:a','wujinsong'
0 row(s) in 0.0920 seconds
hbase(main):004:0> put 'user','row2','name:b','zhaohu'
0 row(s) in 0.0290 seconds
hbase(main):005:0> put 'user','row3','name:c','shiming'
0 row(s) in 0.0070 seconds
hbase(main):006:0>
怎么判断自己插入是否成功了呢?通过scan命令扫描刚创建的表就可以了。
hbase(main):006:0> scan 'user'
ROW COLUMN+CELL
row1 column=name:a, timestamp=1435655320080, value=wujinsong
row2 column=name:b, timestamp=1435655335053, value=zhaohu
row3 column=name:c, timestamp=1435655347402, value=shiming
3 row(s) in 0.0490 seconds
hbase(main):007:0>
至此,一个hbase环境的搭建和基本操作就完成了。
退出shell,在shell控制台输入exit就行了。
hbase(main):007:0> exit
[ root@localhost hbase-1.0.1.1]#
6.停止
[ root@localhost hbase-1.0.1.1]# ./bin/stop-hbase.sh
stopping hbase................
[ root@localhost hbase-1.0.1.1]#