hadoop笔记7--HBase伪分布式安装与基本运用
在这里,与前面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.xmlhbase.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.xmlhbase.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 Shell3.hbase的基本操作
接下来看看在shell中,hbase的基本操作吧。
3.1.查看HBase状态
status
不过我一运行就很尴尬的报错了。。。
报错了。。在网上搜了下,可能是hadoop 集群在安全模式的原因,于是关闭试试看:
hadoop dfsadmin -safemode leave
关闭安全模式
然后重新启动hbase运行,这时候就有输出了:
status3.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中的编程操作。