阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop连载系列之三:HBase分布式安装

138次阅读
没有评论

共计 5409 个字符,预计需要花费 14 分钟才能阅读完成。

1 概述


HBase 是基于 Hadoop 的分布式的、面向列的、可拓展的开源数据库。当需要对大数据进行随机的、实时的读写时使用 HBase。属于 NoSQL。HBase 利用 Hadoop/HDFS 作为其文件存储系统,利用 Hadoop/MapReduce 来处理 HBase 中的海量数据,利用 Zookeeper 提供分布式协作、分布式同步、配置管理等。

HBase 的架构:

LSM – 解决磁盘随机写问题 (顺序写才是王道);

HFile – 解决数据索引问题 (只有索引才能高效读);

WAL – 解决数据持久化 (面对故障的持久化解决方案);

zooKeeper – 解决核心数据的一致性和集群恢复;

Replication – 引入类似 MySQL 的数据复制方案,解决可用性;

此外还有:自动分拆 Split、自动压缩 (compaction,LSM 的伴生技术)、自动负载均衡、自动 region 迁移。

HBase 集群需要依赖于一个 Zookeeper ensemble。HBase 集群中的所有节点以及要访问 HBase

的客户端都需要能够访问到该 Zookeeper ensemble。HBase 自带了 Zookeeper,但为了方便

其他应用程序使用 Zookeeper,最好使用单独安装的 Zookeeper ensemble。此外,Zookeeper ensemble 一般配置为奇数个节点,并且 Hadoop 集群、Zookeeper ensemble、

HBase 集群是三个互相独立的集群,并不需要部署在相同的物理节点上,他们之间是通过网

络通信的。

 

2 安装和配置


2.1 下载安装 HBase


下载 hbase-0.96.1.1-hadoop1-bin.tar.gz,并解压到 /usr 下,重命名为 hbase 目录。hbase 的版本需要与 hadoop 对应,查看是否对应只需要看 hbase/lib/hadoop-core 后面的版本号是否与 hadoop 的版本对应,如果不对应,可以将 hadoop 下 hadoop-core 文件复制过来,但是不能保证不会有问题。

 

2.2 设置环境变量


vim /etc/profile:

# set hbase path
export HBASE_HOME=/usr/hbase
export PATH=$PATH:$HBASE_HOME/bin

 

2.3 配置 HBase


编辑配置文件 hbase-site.xml:vim /usr/hbase/conf/hbase-site.xml

单机:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///tmp/hbase-${user.name}/hbase</value>
</property>
</configuration>

伪分布:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

完全分布:
1)配置 hbase-site.xml

<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.56.1:9000/hbase</value>
<description>HBase 数据存储目录 </description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description> 指定 HBase 运行的模式:false:单机 / 伪分布;true:完全分布 </description>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://192.168.56.1:60000</value>
<description> 指定 Master 位置 </description>
</property>

<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/var/lib/zookeeper</value>
</property><property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.56.1,192.168.56.101,192.168.56.102,192.168.56.103,192.168.56.104</value>
<description> 指定 ZooKeeper 集群 </description>
</property>

<property>
<name>hbase.master.info.bindAddress</name>
<value>192.168.56.1</value>
<description>The bind address for the HBase Master web UI
</description>
</property></configuration>

 

2) 编辑配置文件 regionservers:

192.168.56.101
192.168.56.102
192.168.56.103
192.168.56.104

 

3) 设置环境变量 hbase-env.sh:

export JAVA_HOME=/usr/java/jdk1.7.0_45/

export HBASE_CLASSPATH=/usr/hadoop/conf

export HBASE_HEAPSIZE=2048

export HBASE_MANAGES_ZK=false

注解:

其中,JAVA_HOME 表示 java 安装目录,HBASE_CLASSPATH 指向存放有 Hadoop 配置文件的目录,这样 HBase 可以找到 HDFS 的配置信息,由于本文 Hadoop 和 HBase 部署在相同的物理节点,所以就指向了 Hadoop 安装路径下的 conf 目录。HBASE_HEAPSIZE 单位为 MB,可以根据需要和实际剩余内存设置,默认为 1000。HBASE_MANAGES_ZK=false 指示 HBase 使用已有的 Zookeeper 而不是自带的。

 

2.4 向各个节点复制,然后配置各个节点的环境变量


scp -r /usr/hbase 节点 ip:/usr

 

3 启动和停止 HBase


启动 HBase:需事先启动 HDFS 和 Zookeeper,启动顺序为 HDFS-》Zookeeper-》HBase

在 server1 上启动所有的节点:start-hbase.sh

停止 HBase:stop-hbase.sh

连接 HBase 创建表:hbase shell

HBase Shell; enter ‘help<RETURN>’ for list of supported commands.
Type “exit<RETURN>” to leave the HBase Shell
Version 0.96.1.1-hadoop1, rUnknown, Tue Dec 17 11:52:14 PST 2013

hbase(main):001:0>

查看状态:hbase(main):001:0> status

4 servers, 0 dead, 2.2500 average load

 

4 测试和 Web 查看


4.1 创建表测试


创建一个名为 small 的表,这个表只有一个 column family 为 cf。可以列出所有的表来检查创建情况,然后插入些值。

hbase(main):003:0> create ‘small’, ‘cf’
0 row(s) in 1.2200 seconds
hbase(main):003:0> list
small
1 row(s) in 0.0550 seconds
hbase(main):004:0> put ‘small’, ‘row1’, ‘cf:a’, ‘value1’
0 row(s) in 0.0560 seconds
hbase(main):005:0> put ‘small’, ‘row2’, ‘cf:b’, ‘value2’
0 row(s) in 0.0370 seconds
hbase(main):006:0> put ‘small’, ‘row3’, ‘cf:c’, ‘value3’
0 row(s) in 0.0450 seconds

 

检查插入情况:Scan 这个表

hbase(main):005:0> scan ‘small’

Get 一行,操作如下

hbase(main):008:0> get ‘small’, ‘row1’

disable 再 drop 这张表,可以清除你刚刚的操作

hbase(main):012:0> disable ‘small’
0 row(s) in 1.0930 seconds
hbase(main):013:0> drop ‘small’
0 row(s) in 0.0770 seconds

 

导出与导入

hbase org.apache.hadoop.hbase.mapreduce.Driver export small small

导出的表,在 hadoop 文件系统的当前用户目录下,small 文件夹中。例如,导出后在 hadoop 文件系统中的目录结构:

hadoop dfs -ls

Found 1 items

drwxr-xr-x – hadoop supergroup 0 2013-10-22 10:44 /user/hadoop/small

hadoop dfs -ls ./small

Found 3 items

-rw-r–r– 2 hadoop supergroup 0 2013-10-22 10:44 /user/hadoop/small/_SUCCESS

drwxr-xr-x – hadoop supergroup 0 2013-10-22 10:44 /user/hadoop/small/_logs

-rw-r–r– 2 hadoop supergroup 285 2013-10-22 10:44 /user/hadoop/small/part-m-00000

 

把这个表导入到另外一台集群中 hbase 中时,需要把 part-m-00000 先 put 到另外 hadoop 中,假设 put 的路径也是:

/user/hadoop/small/

而且,这个要导入的 hbase 要已经建有相同第表格。

那么从 hadoop 中导入数据到 hbase:

hbase org.apache.hadoop.hbase.mapreduce.Driver import small part-m-00000

这样,没有意外的话就能正常把 hbase 数据导入到另外一个 hbase 数据库。

 

4.2 Web 查看


 

用于访问和监控 Hadoop 系统运行状态

 

Daemon

缺省端口

配置参数

HDFS

Namenode

50070

dfs.http.address

Datanodes

50075

dfs.datanode.http.address

Secondarynamenode

50090

dfs.secondary.http.address

Backup/Checkpoint node*

50105

dfs.backup.http.address

MR

Jobracker

50030

mapred.job.tracker.http.address

Tasktrackers

50060

mapred.task.tracker.http.address

HBase

HMaster

60010

hbase.master.info.port

HRegionServer

60030

hbase.regionserver.info.port

http://192.168.56.1:60010/master-status

 

5 总结


本文介绍了 HBase 安装和配置,包括单机、伪分布、完全分布三种模式的配置,重点在于 HBase 分布式集群的安装和配置。后续将会介绍 Chukwa 集群、Pig 等。

相关阅读

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计5409字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中