后端世界首页投稿(暂停使用,暂停投稿)程序员

hadoop笔记7--HBase伪分布式安装与基本运用

2016-12-22  本文已影响405人  七号萝卜

在这里,与前面Hadoop相同,由于设备受限,HBase我还是进行的伪分布式的安装。虽然是伪分布式的,但在使用上还是差不多。先学习在伪分布式上的使用,后面有条件搭建完全分布式时,再进行基于集群的HBase操作。

1.单机模式

和hadoop一样,HBase也有单机模式。我们就来先看看单机模式。

单机模式很简单,就是到官网去下一个HBase压缩包:http://www.apache.org/dyn/closer.cgi/hbase/
选择自己想要安装的一个版本,我选的是1.1.7那个版本:

下载路径

然后在centOS下移动到/usr/local目录下,和hadoop放在一起,接着进行解压:

tar -xvf hbase-1.1.7-bin.tar.gz

解压完毕后,出现hbase-1.1.7目录,进入那个目录看看吧:

hbase目录

其中conf目录是放配置文件的地方,我们要修改的配置文件就在这个目录下。

对了,我刚才是用root用户进行的解压,结果导致hbase目录的权限是root了。。

root用户组才拥有权限

但我在运行hadoop的时候,一般在hadoop用户下进行的。这时怎么办呢?我们可以通过修改用户组的权限,让hadoop用户拥有这个目录的权限:

# 让hadoop用户组队hbase目录有权限
chown -R hadoop ./hbase-1.1.7

这时候就可以了,因为hadoop用户我加入了hadoop组:

hadoop组里的用户有权限了

如要指定用户就:

chown -R hadoop:hadoop ./hbase-1.1.7

这时,用户列也变了:

变了

接下来回到正题,解压完后,修改conf中的hbase-site.xml文件,发现和hadoop的配置文件很像:

hbase-site.xml

hbase.rootdir是指定HReion服务器的位置,即数据存放的位置。

这时候,执行bin目录下的start-hbase.sh就可以启动hbase了:

启动hbase

用jps查看,可以看到有HMaster程序。

这时,再运行bin目录下的hbase shell可进入HBase Shell:

bin/hbase shell
HBase Shell

可以在这里面练习HBase的命令行操作了。

要停止hbase,就是:

bin/stop-hbase.sh
关闭hbase

这就是单机模式。

2.伪分布式

不过我们常用的不是单机模式,做练习一般还是用的伪分布式的。因此下面来看看伪分布式的安装。

伪分布式的安装,同样,先改conf里面的hbase-site.xml配置文件:

conf/hbase-site.xml

hbase.rootdir上面说了是数据存放的位置,这里换成hadoop中hdfs上的位置;
hbase.cluster.distributed是设置HBase的运行模式,false是单机模式,true是分布式模式,默认为false。如果是false, HBase和Zookeeper会运行在同一个JVM里面。

接下来设置一下hbase依赖的环境变量,在conf/hbase-env.sh中设置,添加:

export JAVA_HOME=/usr/java/jdk1.7.0_79
export HBASE_MANAGES_ZK=true

其实这些文件中都有,搜一下就会出来,只是前面加了#注释了,去掉#修改为自己的就行了:

注释里说了,HBASE_MANAGES_ZK=true是让hbase自己管理自带的zookeeper,不需要单独的zookeeper。

最后可以往系统的环境变量里添加hbase程序的地址:

export PATH=$PATH:/usr/local/hbase-1.1.7/bin

如此,伪分布式的hbase就可以启动了。在启动之前,要先运行hadoop。

启动hadoop 启动hbase

这时候,可以向前面一样,运行hbase shell试试(前面配置了系统的环境变量,这时可以直接用hbase shell命令):

HBase Shell

3.hbase的基本操作

接下来看看在shell中,hbase的基本操作吧。

3.1.查看HBase状态
status

不过我一运行就很尴尬的报错了。。。

报错了。。

在网上搜了下,可能是hadoop 集群在安全模式的原因,于是关闭试试看:

hadoop dfsadmin -safemode leave
关闭安全模式

然后重新启动hbase运行,这时候就有输出了:

status
3.2.创建新表
create 'test', 'cf'

第一个参数是表的名字,第二个是列族的名字。不需要定义列,因为列是可以动态增加的。

3.3列举表的信息:
list 'test'
3.4.获取表描述
describe 'test'
3.5.插入数据
put 'test','row1','cf:a','value1'
3.6.读出数据

要选出表中的所有数据:

scan 'test'

获取一个行数据:

get 'test','row1'
3.7.更新数据

和插入数据一样:

put 'test','row1','cf:a','value5'
3.8.删除数据
disable 'test'
drop 'test'

另外,我们可以在web端看到hbase的相关信息,我的是在单机上,因此输入网址:http://localhost:16010 即可看到,注意端口号默认为16010了。

web

下一篇来看看HBase在eclipse中的编程操作。

上一篇下一篇

猜你喜欢

热点阅读