博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HBase基础教程 1 HBase之单机模式与伪分布式模式安装
阅读量:6077 次
发布时间:2019-06-20

本文共 8586 字,大约阅读时间需要 28 分钟。

hot3.png

HBase基础教程 1 HBase之单机模式与伪分布式模式安装 博客分类: hbase

在这篇blog中,我们将介绍Hbase的单机模式安装与伪分布式的安装方式,以及通过浏览器查看Hbase的用户界面。搭建hbase伪分布式环 境的前提是我们已经搭建好了hadoop完全分布式环境,搭建hadoop环境请参考:【Hadoop基础教程】4、Hadoop之完全分布式环境搭建

开发环境


硬件环境:Centos 6.5 服务器4台(一台为Master节点,三台为Slave节点)

软件环境:Java 1.7.0_45、Eclipse Juno Service Release 2、hadoop-1.2.1、hbase-0.94.20。

1、 HBase 安装


1) 下载安装包

hbase-090.3.tar.gz版本与hadoop-1.2.1良好兼容,从官网下载hbase-090.3.tar.gz安装包,并将下载 的hbase-090.3.tar.gz拷贝到/home/hadoop目录下。hbase官网下载地址:http: //archive.apache.org/dist/hbase/

选择HBase-0.94.20版本,下载 HBase Releases.

2) 解压安装包

1.
[hadoop -Master ~]$ cd /usr
2.
[hadoop -Master usr]$ sudo tar -xvf /home/hadoop/hbase-090.3.tar.gz   #解压安装源码包
3.
[hadoop -Master usr]$ mv hbase-090.3 hbase    #重命名
4.
[hadoop -Master usr]$ cd hbase
5.
[hadoop -Master hbase]$ sudo chown -R hadoop:hadoop hbase #赋予hbase安装目录下所有文件hadoop权限

3) 配置安装路径

1.
#将hbase下的bin目录添加到系统的path中,在/etc/profile文件尾行添加如下的内容
2.
[hadoop@K-Master usr]$ sudo vim /etc/profile
3.
export  PATH=$PATH:/usr/hbase/bin
4.
#执行source命令使上述配置在当前终端立即生效
5.
[hadoop@K-Master usr]$ source /etc/profile

4) 验证是否安装成功

1.
[hadoop@K-Master usr]$ hbase version
2.
14/07/21 18:01:57 INFO util.VersionInfo: HBase 0.94.20
3.
14/07/21 18:01:57 INFO util.VersionInfo: Subversion git://newbunny/home/lars/dev/hbase-0.94 -r 09c60d770f2869ca315910ba0f9a5ee9797b1edc
4.
14/07/21 18:01:57 INFO util.VersionInfo: Compiled by lars on Fri May 23 22:00:41 PDT 2014

看到以上打印消息表示Hbase已经安装成功,接下来将分别进行Hbase单机模式和伪分布式模式的配置。

2、 HBase单机模式


1) 配置/conf/hbase-env.sh

将JAVA_HOME变量设置为Java安装的根目录,配置如下所示:

1.
[hadoop@K-Master hbase]$ vim conf/hbase-env.sh
2.
#对hbase-env.sh文件做如下修改:
3.
export JAVA_HOME=/usr/java/jdk1.7.0_65  #配置本机的java安装根目录
4.
export HBASE_MANAGES_ZK=true        #配置由hbase自己管理zookeeper,不需要单独的zookeeper。

2) 配置/conf/hbase-site.xml

在启动Hbase前需要设置属性hbase.rootdir,用于指定Hbase数据的存储位置,此处设置为HBase安装目录下的hbase-tmp文件夹即(file:///usr/hbase/hbase-tmp),配置如下:

1.
[hadoop@K-Master hbase]$ vim conf/hbase-site.sh
2.
<configuration>
3.
<property>
4.
<name>hbase.rootdir</name>
5.
<value>file:///usr/hbase/hbase-tmp</value>
6.
</property>
7.
</configuration>

特别注意:hbase.rootdir默认为/tmp/hbase-${user.name},这意味着每次重启系统都会丢失数据。

3) 启动Hbase

1.
[hadoop@K-Master hbase]$ start-hbase.sh
2.
starting master, logging to /usr/hbase/bin/../logs/hbase-hadoop-master-K-Master.localdomain.out

4) 进入shell模式

进入shell模式之后,通过status命令查看Hbase的运行状态,通过exit命令退出shell。

01.
[hadoop@K-Master hbase]$ hbase shell
02.
 
03.
HBase Shell; enter 'help<RETURN>' for list of supported commands.
04.
Type 'exit<RETURN>' to leave the HBase Shell
05.
Version 0.94.20, r09c60d770f2869ca315910ba0f9a5ee9797b1edc, Fri May 23 22:00:41 PDT 2014
06.
 
07.
hbase(main):001:0> status
08.
1 servers, 0 dead, 2.0000 average load
09.
hbase(main):002:0> exit

5) 停止HBase

1.
[hadoop@K-Master hbase]$ stop-hbase.sh
2.
stopping hbase.....................

特别注意:如果在操作Hbase的过程中发生错误,可以通过{HBASE_HOME}目录(/usr/hbase)下的logs子目录中的日志文件查看错误原因。

3、 HBase伪分布式模式


1) 配置/conf/hbase-env.sh

添加变量HBASE_CLASSPATH,并将路径设置为本机Hadoop安装目录下的conf目录(即{HADOOP_HOME}/conf)。修改完成后,hbase-env.sh的配置如下:

1.
[hadoop@K-Master hbase]$ vim conf/hbase-env.sh
2.
export JAVA_HOME=/usr/java/jdk1.7.0_65
3.
export HBASE_CLASSPATH=/usr/hadoop/conf
4.
export HBASE_MANAGES_ZK=true

2) 配置/conf/hbase-site.xml

修改hbase.rootdir,将其指向K-Master(与hdfs的端口保持一致),并指定HBase在HDFS上的存储路径。将属性 hbase.cluter.distributed设置为true。假设当前Hadoop集群运行在伪分布式模式下,且NameNode运行在9000端 口;

01.
[hadoop@K-Master hbase]$ vim hbase-site.xml
02.
<configuration>
03.
<property>
04.
<name>hbase.rootdir</name>
05.
<value>hdfs://K-Master:9000/hbase</value>
06.
</property>
07.
<property>
08.
<name>hbase.cluster.distributed</name>
09.
<value>true</value>
10.
</property>
11.
</configuration>

3) 启动HBase

完成以上操作后启动HBase,启动顺序:先启动Hadoop–>再启动HBase,关闭顺序:先关闭HBase–>再关闭Hadoop。

第一步:启动hadoop集群

1.
[hadoop@K-Master hbase]$ start-all.sh          #启动hadoop
2.
[hadoop@K-Master hbase]$ jps               #查看进程
3.
9040 DataNode
4.
18205 Jps
5.
9196 SecondaryNameNode
6.
10485 JobTracker
7.
10620 TaskTracker
8.
8902 NameNode

特别注意:读者可先通过jps命令查看Hadoop集群是否启动,如果Hadoop集群已经启动,则不需要执行Hadoop集群启动操作。

第二步:启动HBase

01.
[hadoop@K-Master lib]$ start-hbase.sh          #启动Hbase
02.
K-Master: starting zookeeper, logging to /usr/hbase/bin/../logs/hbase-hadoop-zookeeper-K-Master.localdomain.out
03.
starting master, logging to /usr/hbase/bin/../logs/hbase-hadoop-master-K-Master.localdomain.out
04.
K-Master: starting regionserver, logging to /usr/hbase/bin/../logs/hbase-hadoop-regionserver-K-Master.localdomain.out
05.
[hadoop@K-Master lib]$ jps                 #查看进程
06.
9040 DataNode
07.
18889 HMaster
08.
19201 Jps
09.
9196 SecondaryNameNode
10.
19073 HRegionServer
11.
10485 JobTracker
12.
10620 TaskTracker
13.
18818 HQuorumPeer
14.
8902 NameNode

4) 进入shell模式

进入shell模式之后,通过list命令查看当前数据库所有表信息,通过create命令创建一个member表,其拥有 member_id,address,info三个列族,通过describe命令查看member表结构,通过exit命令退出HBase shell模式。

01.
[hadoop@K-Master hadoop]$ hbase shell
02.
HBase Shell; enter 'help<RETURN>' for list of supported commands.
03.
Type 'exit<RETURN>' to leave the HBase Shell
04.
Version 0.94.20, r09c60d770f2869ca315910ba0f9a5ee9797b1edc, Fri May 23 22:00:41 PDT 2014
05.
 
06.
hbase(main):001:0> create 'member','member_id','address','info'
07.
0 row(s) in 2.7170 seconds
08.
 
09.
hbase(main):002:0> list
10.
TABLE  
11.
member 
12.
1 row(s) in 0.0550 seconds
13.
 
14.
hbase(main):003:0> describe 'member'
15.
DESCRIPTION  ENABLED
16.
'member', {NAME => 'address', DATA_BLOCK_ENCODING = true  
17.
> 'NONE', BLOOMFILTER => 'NONE', REPLICATION_SCOPE
18.
=> '0', VERSIONS => '3', COMPRESSION => 'NONE', MIN
19.
_VERSIONS => '0', TTL => '2147483647', KEEP_DELETED
20.
_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY
21.
=> 'false', ENCODE_ON_DISK => 'true', BLOCKCACHE =>
22.
'true'}, {NAME => 'info', DATA_BLOCK_ENCODING => '
23.
NONE', BLOOMFILTER => 'NONE', REPLICATION_SCOPE =>
24.
'0', VERSIONS => '3', COMPRESSION => 'NONE', MIN_VE
25.
RSIONS => '0', TTL => '2147483647', KEEP_DELETED_CE
26.
LLS => 'false', BLOCKSIZE => '65536', IN_MEMORY =>
27.
'false', ENCODE_ON_DISK => 'true', BLOCKCACHE => 't
28.
rue'}, {NAME => 'member_id', DATA_BLOCK_ENCODING =>
29.
'NONE', BLOOMFILTER => 'NONE', REPLICATION_SCOPE =
30.
> '0', VERSIONS => '3', COMPRESSION => 'NONE', MIN_
31.
VERSIONS => '0', TTL => '2147483647', KEEP_DELETED_
32.
CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY =
33.
> 'false', ENCODE_ON_DISK => 'true', BLOCKCACHE =>
34.
'true'}
35.
1 row(s) in 0.1040 seconds
36.
 
37.
hbase(main):004:0> exit

5) 查看HDFS的HBase数据库文件

通过hadoop fs –ls /hbase命令查看HBase分布式数据库在HDFS上是否成功创建,/hbase/member文件夹即为上一步我们所建立的member数据库在HDFS上的存储位置。

01.
[hadoop@K-Master conf]$ hadoop fs -ls /hbase
02.
Found 8 items
03.
drwxr-xr-x   - hadoop supergroup  0 2014-07-21 19:46 /hbase/-ROOT-
04.
drwxr-xr-x   - hadoop supergroup  0 2014-07-21 19:46 /hbase/.META.
05.
drwxr-xr-x   - hadoop supergroup  0 2014-07-22 11:38 /hbase/.logs
06.
drwxr-xr-x   - hadoop supergroup  0 2014-07-22 11:39 /hbase/.oldlogs
07.
drwxr-xr-x   - hadoop supergroup  0 2014-07-22 11:40 /hbase/.tmp
08.
-rw-r--r--   1 hadoop supergroup 38 2014-07-21 19:46 /hbase/hbase.id
09.
-rw-r--r--   1 hadoop supergroup  3 2014-07-21 19:46 /hbase/hbase.version
10.
drwxr-xr-x   - hadoop supergroup  0 2014-07-22 11:40 /hbase/member

6) HBase用户界面:

通过下面的链接可以访问Hbase的一些相关信息,链接说明如下表格所示:

链接说明

7) 停止HBase

完成上述操作后,执行关闭HBase操作,关闭顺序:先关闭HBase —>再关闭Hadoop。

01.
[hadoop@K-Master hadoop]$ stop-hbase.sh    #停止Hbase
02.
stopping hbase..................
03.
K-Master: stopping zookeeper.
04.
 
05.
[hadoop@K-Master hadoop]$ stop-all.sh  #停止Hadoop
06.
stopping jobtracker
07.
K-Master: stopping tasktracker
08.
stopping namenode
09.
K-Master: stopping datanode
10.
K-Master: stopping secondarynamenode

4、 HBase的用户界面


1) HDFS主页

输入http://{主机名}:50070/dfshealth. 进入HDFS主页,在该主页点击“Browse the filesystem”超链接,选择hbase目录,可以查看HBase在HDFS上生成的/hbase目录结构,该目录用于存放Hbase数据,如下图所示;

HDFS下的Hbase目录

2) Master页面

通过地址http://{主机名}:60010/master.jsp 可以查看HBase的相关信皂,如下图所示。

Hbase Master页面

主要包含的信息如下:

Attributes信息

Master属性信息包含了当前集群的详细信息,从上往下依次为HBase的版本及编译信息、Hadoop的版本及编译信息、HBase根目录的路径、Region服务器的平均负载以及ZooKeeper Quorums的地址。

Hbase Master页面Attributes属性

Tables信息

用户表信息给出了HBase中的表信息及相关属性,目录表信息包含两个目录表:-ROOT-和.META.;

Hbase Master页面Tables信息

点击上图[Details]链接,跳转到Tables Details界面,如下图所示:

Hbase Tables Details信息

Region Servers信息

Region服务器信息给出了所有Region服务器的地址,如下图所示;

Region Servers信息

3) ZooKeeper页面

通过Master页面中Master属性提供的链接,可以进入ZooKeeper页面,该页面显示了HBase的根目录、省前的主Master地 址、保存-ROOT-表的Region服务器的地址、其他Region服务器的地址及ZooKeeper的一些内部信息,如下图所示。

ZooKeeper页面

4) 用户表页面

通过Master页面中用户表信息提供的链接http://{主机名}:60010/table.jsp?name=user ,可以进入用户表页面,如下图所示。该页面给出了表当前是否可用以及表在Region服务器上的信息。同时提供了根据行键合并及拆分表的操作。

User表详细信息

5) Region服务器页面

通过Master页面中Region服务器信息提供的链接,可以进入Region服务器页面,该页面显示了Region服务器的基本属性和其上所有Regions的信息,如下图所示。

Region服务器页面

参考

http://hbase.apache.org/book.html#_getting_started

 

http://www.it165.net/admin/html/201503/5067.html

转载于:https://my.oschina.net/xiaominmin/blog/1599389

你可能感兴趣的文章
java基础---->正则表达式
查看>>
2.2013/06/13_log(n)+1
查看>>
关于加载iframe时进度条不消失的问题
查看>>
poj 3984迷宫问题【广搜】
查看>>
oracle ORA-01840:输入值对于日期格式不够长
查看>>
python基础知识~logger模块
查看>>
SIP入门(二):建立SIPserver
查看>>
Servlet3.0的异步
查看>>
WebService连接postgresql( 失败尝试)
查看>>
从头认识java-13.11 对照数组与泛型容器,观察类型擦除给泛型容器带来什么问题?...
查看>>
Python-MacOSX下SIP引起的pip权限问题解决方案(非取消SIP机制)
查看>>
从MFQ方法到需求分析
查看>>
android.view.WindowManager$BadTokenException: Unable to add window
查看>>
HDU5012:Dice(bfs模板)
查看>>
iphone openssh
查看>>
Linux下MEncoder的编译
查看>>
Xamarin使用ListView开启分组视图Cell数据展示bug处理
查看>>
Javascript中闭包(Closure)的探索(一)-基本概念
查看>>
spark高级排序彻底解秘
查看>>
ylbtech-LanguageSamples-PartialTypes(部分类型)
查看>>