HBase快速入门之单一节点安装
Posted 健哥说编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBase快速入门之单一节点安装相关的知识,希望对你有一定的参考价值。
来来来,先参与一下世界杯,我选埃及胜,好像我选错了:
不知不觉,《hadoop权威指南》精要分析,已经写了233页了,等待与《hadoop快速入门与实践》第二版共同发布:
单节点安装hbase
HBase DataModel
JDK与Hbase版本支持
HBase Version |
JDK 7 |
JDK 8 |
JDK 9 |
JDK 10 |
2.0 |
Not Supported |
yes |
Not Supported |
Not Supported |
1.3 |
yes |
yes |
Not Supported |
Not Supported |
1.2 |
yes |
yes |
Not Supported |
Not Supported |
步1、准备环境
1:ssh免密码登录。
2:安装JDK并正确配置环境变量。
步2、下载hbase
注意,以下下载的是hbase1.x版本。
http://mirrors.hust.edu.cn/apache/hbase/stable/hbase-1.2.6.1-bin.tar.gz
步3、解压
我将hbase解压到了/app/hbase-1.2.6目录下:
[wangjian@hadoop91 app]$ tar -zxvf ~/hbase-1.2.6.1-bin.tar.gz -C .
解压后,查看hbase-1.2.6.1目录结构如下:
通过上面的目录结构,就可以知道以下几点问题:
1:bin目录下,包含启动和停止hbase的脚本程序。
2:conf目录下,包含配置Hadoop的配置文件。
3:hbase-webapps目录下,包含hbase的web服务及rest和thrift客户端程序。
4:lib目录下,包含hbase的jar包及依赖的其他jar包。重点是,通过上面的可以看出hbase1.2.6.1依赖还依然是hadoop-2.5.x版本。到了hbase2.0以后,依赖hadoop版本为 2.7.4。所以,如果是用hadoop2.7.x的朋友,完全可以使用hbase2.0版本。
步4:配置hbase
1:hbase-env.sh
export JAVA_HOME=/usr/jdk1.8.0_171
2:hbase-site.xml
<configuration>
<!--配置hbase数据存储的目录,将它设置到本地,如果保存在hdfs上请指定hdfs://server:8020/hbase即可-->
<property>
<name>hbase.rootdir</name>
<value>file:///app/hbase/data</value>
</property>
<!--配置内置zookeeper数据保存的目录-->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/app/hbase/zookeeperdata</value>
</property>
<!--检查输入输出流的能力临时关闭-->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
3:为了操作上的方便,建议将hbase_home/bin配置到PATH环境变量
export HBASE_HOME=/app/hbase-1.2.6.1
export PATH=$PATH:$HBASE_HOME/bin
配置完成以后查看hbase的版本:
[wangjian@hadoop91 profile.d]$ hbase version
HBase 1.2.6.1
Source code repository file:///home/busbey/projects/hbase/hbase-release-staging/hbase-1.2.6.1
revision=Unknown
Compiled by busbey on Sun Jun 3 23:19:26 CDT 2018
From source with checksum 8bbad3724e1501dbe32107e20b780499
查看hbase的shell帮助:
[wangjian@hadoop91 profile.d]$ hbase
Usage: hbase [<options>] <command> [<args>]
Options:
--config DIR Configuration direction to use. Default: ./conf
--hosts HOSTS Override the list in 'regionservers' file
--auth-as-server Authenticate to ZooKeeper using servers configuration
Commands:
Some commands take arguments. Pass no args or -h for usage.
shell Run the HBase shell
hbck Run the hbase 'fsck' tool
snapshot Create a new snapshot of a table
snapshotinfo Tool for dumping snapshot information
wal Write-ahead-log analyzer
hfile Store file analyzer
zkcli Run the ZooKeeper shell
upgrade Upgrade hbase
master Run an HBase HMaster node
regionserver Run an HBase HRegionServer node
zookeeper Run a Zookeeper server
rest Run an HBase REST server
thrift Run the HBase Thrift server
thrift2 Run the HBase Thrift2 server
clean Run the HBase clean up script
classpath Dump hbase CLASSPATH
mapredcp Dump CLASSPATH entries required by mapreduce
pe Run PerformanceEvaluation
ltt Run LoadTestTool
version Print the version
CLASSNAME Run the class named CLASSNAME
步5、启动hbase
使用bin目录下的start-hbase.sh脚本,就可以启动hbase:
[wangjian@hadoop91 app]$ /app/hbase-1.2.6.1/bin/start-hbase.sh
starting master, logging to /app/hbase-1.2.6.1/bin/../logs/hbase-wangjian-master-hadoop91.out
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
使用jps检查hbase的守护进程,也只有一个名称为HMaster的进程:
[wangjian@hadoop91 app]$ jps
1443 Jps
1406 HMaster
注意:在standalone模式下,即在单一节点模式下,HMaster这一个进程里面即包含:HRegionServer也包含Zookeeper进程。以下是英文官方说明:
In standalone mode HBase runs all daemons within this single JVM, i.e. the HMaster, a single HRegionServer, and the ZooKeeper daemon.
步6、访问webui
步7、登录hbase shell
使用hbase shell就可以登录hbase shell的客户端:
[wangjian@hadoop91 app]$ hbase shell
2018-06-14 23:11:38,637 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for
your platform... using builtin-java classes where applicable
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.6.1, rUnknown, Sun Jun 3 23:19:26 CDT 2018
hbase(main):001:0>
在hbase shell的命令行里面,输入help就可以显示所有可以执行的命令,类似于DML,DDL的语句都是hbase特有的(前面讲过,HBase不是关系型数据库,不支持SQL语句,这儿所说的DML,DDL是针对HBase而言的,不是指的SQL中的DDL,DML等)。
步8、简单示例
以下是通过最简单的示例,展示基本hbase的操作
创建一个表,表名为stud,列族为info:
hbase(main):013:0> create 'stud','info'
0 row(s) in 1.3370 seconds
=> Hbase::Table - stud
hbase(main):014:0> list
TABLE
stud 1 row(s) in 0.0390 seconds
=> ["stud"]
写入数据:
hbase(main):016:0> put 'stud','S001','info:name','Jack'
0 row(s) in 0.3890 seconds
hbase(main):017:0> put 'stud','S001','info:age',30
0 row(s) in 0.0280 seconds
查看数据:
hbase(main):019:0> get 'stud','S001'
COLUMN CELL
info:age timestamp=1528990009272, value=30
info:name timestamp=1528989990294, value=Jack
2 row(s) in 0.0530 seconds
再保存一些数据,不同的row key:
hbase(main):022:0> put 'stud','S002','info:name','Mike'
0 row(s) in 0.0560 seconds
再查询这个数据:
hbase(main):025:0> get "stud",'S002'
COLUMN CELL
info:name timestamp=1528990139124, value=Mike
1 row(s) in 0.0200 seconds
遍历数据:
hbase(main):027:0> scan 'stud'
ROW COLUMN+CELL
S001 column=info:age, timestamp=1528990009272, value=30
S001 column=info:name, timestamp=1528989990294, value=Jack
S002 column=info:name, timestamp=1528990139124, value=Mike
2 row(s) in 0.0790 seconds
删除表,先禁用表,再删除表:
hbase(main):029:0> disable 'stud'
0 row(s) in 2.3100 seconds
hbase(main):030:0> list
TABLE
stud
1 row(s) in 0.0310 seconds
=> ["stud"]
hbase(main):031:0> drop 'stud'
0 row(s) in 1.2720 seconds
hbase(main):032:0> list
TABLE
0 row(s) in 0.0230 seconds
=> []
步9、停止hbase
脚本 stop-hbase.sh 用于停止hbase:
[wangjian@hadoop91 app]$ /app/hbase-1.2.6.1/bin/stop-hbase.sh
以上是关于HBase快速入门之单一节点安装的主要内容,如果未能解决你的问题,请参考以下文章
大数据技术之HBaseHBase简介HBase快速入门HBase进阶
大数据技术之HBaseHBase简介HBase快速入门HBase进阶
大数据技术之HBaseHBase简介HBase快速入门HBase进阶