前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop连载系列之三:HBase分布式安装

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

作者头像
星哥玩云
发布2022-06-30 18:54:31
5040
发布2022-06-30 18:54:31
举报
文章被收录于专栏:开源部署

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 pathexport HBASE_HOME=/usr/hbaseexport 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等。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
TDSQL MySQL 版
TDSQL MySQL 版(TDSQL for MySQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为客户提供完整的分布式数据库解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档