HBase快速入门之单一节点安装

来来来,先参与一下世界杯,我选埃及胜,好像我选错了:

不知不觉,《hadoop权威指南》精要分析,已经写了233页了,等待与《hadoop快速入门与实践》第二版共同发布:

单节点安装hbase

HBase DataModel

JDK与Hbase版本支持

步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

hbase.rootdir

file:///app/hbase/data

/app/hbase/zookeeperdata

false

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:

--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' for list of supported commands.

Type "exit" 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

stud1 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

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180615G0TTVJ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券