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

Posted 健哥说编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBase快速入门之单一节点安装相关的知识,希望对你有一定的参考价值。

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

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

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


单节点安装hbase

    HBase DataModel

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


JDKHbase版本支持

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、准备环境

1ssh免密码登录。

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目录结构如下:

 

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


通过上面的目录结构,就可以知道以下几点问题:

1bin目录下,包含启动和停止hbase的脚本程序。

2conf目录下,包含配置Hadoop的配置文件。

3hbase-webapps目录下,包含hbaseweb服务及restthrift客户端程序。

4lib目录下,包含hbasejar包及依赖的其他jar包。重点是,通过上面的可以看出hbase1.2.6.1依赖还依然是hadoop-2.5.x版本。到了hbase2.0以后,依赖hadoop版本为 2.7.4。所以,如果是用hadoop2.7.x的朋友,完全可以使用hbase2.0版本。

 

4:配置hbase

1hbase-env.sh

export JAVA_HOME=/usr/jdk1.8.0_171

 

2hbase-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

 

查看hbaseshell帮助:

[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语句,这儿所说的DMLDDL是针对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进阶

大数据技术之HBaseHBase简介HBase快速入门HBase进阶

HBase 快速入门

gulp系列之快速入门篇