Tang

不太满意的第二次实验:安装Hbase

虽然安装成功了,但已经出现很多问题了,大概不久就会遇到。网易云课堂应该把大数据基础的“基础”两个字去掉,换成“自学”,课程跟实验没啥关系,老师对实验上各种工具配置安装的作用几乎为0,又没有给出专门的安装配置调试教程,全靠自己摸索。既然这样倒是把版本设定的新一些啊,旧版连官网都没资料了。这钱赚的也太容易了好吗。

0、运行环境

操作系统:Linux raspberrypi 4.1.7+

安装位置:/mnt/study

Hadoop版本:1.0.4

JDK版本:1.7

JDK安装位置:/usr/lib/jvm/jdk-7-oracle-armhf

1、安装Hbase-0.95.2

cd /mnt/study/

sudo sudo wget http://archive.apache.org/dist/hbase/hbase-0.95.2/hbase-0.95.2-hadoop1-bin.tar.gz

sudo tar -vxzf hbase-0.95.2-hadoop1-bin.tar.gz -C /mnt/study

sudo mv hbase-0.95.2-hadoop1 hbase

配置系统变量

sudo nano /hbase/conf/hbase-env.sh

修改其中的JAVA_HOME,去掉注释

export JAVA_HOME=/usr/lib/jvm/jdk-7-oracle-armhf

启动Hbase

cd /mnt/study/hbase/bin

sudo bash start-hbase.sh

bash hbase shell

2、在Hbase上操作数据

2.1创建表格

create 'test', 'cf'

2.2插入数据

put 'test', 'row1', 'cf:a', 'value1'

put 'test', 'row2', 'cf:b', 'value2'

put 'test', 'row3', 'cf:c', 'value3'

2.3读取数据

scan 'test'

get 'test', 'row1'

2.4批量插入数据

使用HBase的API中的Put方法; 使用HBase 的bulk load 工具;使用定制的MapReduce Job方式。

2.5删除表格

drop 'test'

 

四、实验结果

1、Hbase安装结果

pi@raspberrypi /mnt/study/hbase/bin $ bash hbase shell

HBase Shell; enter 'help<RETURN>' for list of supported commands.

Type "exit<RETURN>" to leave the HBase Shell

Version 0.95.2-hadoop1, rUnknown, Thu Aug 15 13:07:52 PDT 2013

 

hbase(main):001:0>

2、在Hbase上操作数据

创建test

hbase(main):001:0> create 'test', 'cf'

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/mnt/study/hbase/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/mnt/study/hadoop/lib/slf4j-log4j12-1.4.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.


=> Hbase::Table - test

查看test

hbase(main):002:0> list 'test'

TABLE

test

1 row(s) in 0.3450 seconds

 

=> #<#<Class:0xddc7ac>:0x1507edd>

 

插入数据

hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'

0 row(s) in 0.6230 seconds

 

hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2'

0 row(s) in 0.0400 seconds

 

hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3'

0 row(s) in 0.0540 seconds

 

读取test表内容

hbase(main):006:0> scan 'test'

ROW                        COLUMN+CELL

row1                      column=cf:a, timestamp=1451734395206, value=value1

row2                      column=cf:b, timestamp=1451734430289, value=value2

row3                      column=cf:c, timestamp=1451734438721, value=value3

3 row(s) in 0.4460 seconds

 

读取单行

hbase(main):007:0> get 'test', 'row1'

COLUMN                     CELL

cf:a                      timestamp=1451734395206, value=value1

1 row(s) in 0.1490 seconds

 

禁用表

hbase(main):008:0> disable 'test'

0 row(s) in 4.4650 seconds

 

hbase(main):009:0> get 'test', 'row1'

COLUMN                     CELL

 

ERROR: org.apache.hadoop.hbase.DoNotRetryIOException: test is disabled.

 

启用表

hbase(main):010:0> enable 'test'

0 row(s) in 1.7030 seconds

 

hbase(main):011:0> get 'test', 'row1'

COLUMN                     CELL

cf:a                      timestamp=1451734395206, value=value1

1 row(s) in 0.6670 seconds

 

删除表

hbase(main):013:0> drop 'test'

0 row(s) in 1.0720 seconds

 

hbase(main):014:0> list 'test'

TABLE

0 row(s) in 0.0910 seconds

 

=> #<#<Class:0xddc7ac>:0x15edbdf>

 

五、总结反思

对Hbase的结构和用法有了初步的了解。对test表的结构及插入结果如下图,并且value们附带一个时间戳。

test

cf:a

cf:b

cf:c

row1

value1

row2

value2

row3

value3

由于版本过旧,Apache官网目前已经没有对实验版本Hbase和Hadoop版本的对照列表,但在参考文献1里找到了。

批量导入不成功,可能和之前Hadoop和Hive配置不完全有关。

 

参考文献:

hadoop版本与支持的hbase版本对照表

手把手教你安装Hbase,一次成功!

debian 系统安装 hadoop 跟hbase 环境

Apache HBase ™ Reference Guide

HBaseIntegration-ColumnMapping

slf4j提示Class path contains multiple SLF4J bindings

数据导入HBase最常用的三种方式及实践分析

码字很辛苦,转载请注明来自空间中的空间《不太满意的第二次实验:安装Hbase》

评论