我用的hbase是2.2.2版的,下载地址可以从我的网盘中下载。
链接:https://pan.xunlei.com/s/VO5ao8SwNl67SPRnqjpFZk33A1#
提取码:rnfk
不同版本的hbase对hadoop环境的要求版本也不同,如我用的hbase2.2.2就要求hadoop版本不低于3.1.3,安装时需要注意一下。
关于hadopp3.1.3伪分布系统的安装配置见前段时间的文章
https://blog.csdn.net/hnkkfan/article/details/142201745
【1、安装hbase】
把下载文件下中的hbase文件解压到/usr/local,并把解压后的文件夹从hbase-2.2.2改名了hbase。最后把这个文件夹中所有文件的所才者改为hadoop
sudo tar -zxf ~/下载/hbase-2.2.2-bin.tar.gz -C /usr/local
cd /usr/local
sudo mv ./hbase-2.2.2 ./hbase
sudo chown -R hadoop ./hbase
配置环境变量~/.bashrc
sudo gedit ~/.bashrc
把以下内容添加上:
export PATH=$PATH:/usr/local/hbase/bin
让修改后的配置文件重新生效。
source ~/.bashrc
运行以下命令,查看HBase版本
/usr/local/hbase/bin/hbase version
如出现以下效果,说明hbase安装成功。
【2、伪分布式模式配置】
(1)配置/usr/local/hbase/conf/hbase-env.sh。命令如下
sudo gedit /usr/local/hbase/conf/hbase-env.sh
在配置文件中添加以下内容:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_191
export HBASE_CLASSPATH=/usr/local/hbase/conf
export HBASE_MANAGES_ZK=true
保存后退出
(2)配置/usr/local/hbase/conf/hbase-site.xml
sudo gedit /usr/local/hbase/conf/hbase-site.xml
把以下代替配置文件中的部分。
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
保存退出。
OK,配置好了,我们测试一下。
【3、运行测试】
以ssh方式登录,启动hadoop
ssh localhost
cd /usr/local/hadoop
./sbin/start-dfs.sh
启动hadoop后,再进入usr/local/hbase运行hbase。
cd /usr/local/hbase
bin/start-hbase.sh
这时运行jps,要看到以下以个进程
NameNode、DataNode、SecondaryNameNode、HQuorumPeer、HRegionServer、HMaster
如下图所示:
进入hbase的shell界面:
bin/hbase shell
看到以下代码就能进行hbase的数据操作啦!
【4、hbase的数据基本操作测试】
(1)创建表:
创建一个员工表,表名为employee,两个列族,基本信息(baseinfo)和扩展信息(expinfo)
create 'employee','baseinfo','expinfo'
(2)查看表的属性:通过 describe ‘表名’ 命令可以查看表的属性。
(3)、列出表:也可以用通过list列出有哪些表:
(4)、添加数据:
格式为:put ‘表名’,‘rowKey’,‘列族:列’,‘值’
如:
put 'employee','00001','baseinfo:name','zhangsan'
put 'employee','00001','baseinfo:sex','nan'
put 'employee','00001','baseinfo:age','22'
用于给表中的行键000001中baseinfo列族中添加姓名、性别和年龄值。
(5)读取数据:
通过get ‘表名’,'rowKey’可以取得指定行键的值。如:
get 'employee','00001'
也可以只取得指定列族的值或指定列的值,如:
get 'employee','00001','baseinfo'
get 'employee','00001','baseinfo:name'
分别取得结果如下:
(6)、删除数据:
a、删除指定列:
delete ‘表名’,‘行名’,‘列族:列’
如:
delete 'employee',000001','baseinfo:age'
b、删除指定行键:
deleteall ‘表名’,‘rowKey’
如:
deleteall 'employee','000001'
c、清除表中所有记录
truncate ‘表名’
如:
truncate 'employee'
会清除表中的所有记录
d、删除整个表
删除整个表和清除所有记录不同,清除表中所有记录还会保持表的结构,删除表个表还表的结构也不再保留。
删除整个表需要两步,一是禁用表,二是删除表
如:
disable 'employee'
drop 'employee'
其实我们创建的表,还可以通过访问http://localhost:16010来查看其相关信息。
具体hbase数据的其它操作我们在后面再介绍。
【关于退出】
在shell中输入exit命令可以退出hbase的shell。
然后输入命令可以停止hbase。
bin/stop-hbase.sh
然后停止hadoop的运行
cd /usr/local/hadoop
./sbin/stop-dfs.sh
最后输入命令exit退出ssh。
【总结一下】开始运行时,要先运行ssh,然后是hadoop,然后是hbase,最后是hbase的shell。退出时刚好相反:先退出hbase的shell,然后是hbase,然后是hadoop,最后是通用exit退出ssh。