hbase全分布式集群的搭建

1. 简介

Apache HBase™是Hadoop数据库,这是一个分布式,可扩展的大数据存储。
当你需要随机、实时读取/写入海量数据时使用Apache HBase™。hbase的目标是托管非常大的表(数十亿行 × 百万列)在商业硬件集群上。 Apache HBase是一个开源的,分布式的,版本化的非关系数据库模型,它是在Chang等人的Google Bigtable:结构化数据分布式存储系统之后建立的。就像Bigtable利用Google文件系统提供的分布式数据存储一样,Apache HBase在Hadoop和HDFS之上提供了类似Bigtable的功能。

2. HBase特性

  • 没有真正的索引:行是顺序存储的,每行中的列也是,所以不存在索引膨胀的问题,而且插入性能和表的大小无关。
  • 自动分区:在表增长的时候,表会自动分裂成区域,并分布到可用的节点上。
  • 线性扩展和对于新节点的自动处理:增加一个节点,把它指向现有集群并运行regionserver。区域自动重新进行平衡,负载均匀分布。
  • 普通商用硬件支持
  • 容错:大量节点意味着每个节点的重要性并不突出。并不担心单个节点失效。
  • 批处理:MapReduce集成功能使我们可以用全并行的分布式作业根据"数据的位置"来处理他们。

3. 下载安装

前提条件:安装hbase前需要先安装jdk,hadoop,zookeeper。

cd /opt
#大家在官网上下载一个稳定版本的就行了,我这里是1.2.6版本的。
wget http://mirrors.hust.edu.cn/apache/hbase/stable/hbase-1.2.6-bin.tar.gz
#解压
tar -zxvf hbase-1.2.6-bin.tar.ge

4. 集群配置

#我们需要配置三个文件:hbase-env.sh,hbase-site.xml,regionservers

cd hbase-1.2.6
#打开hbase-env.sh文件,修改如下两项,保存退出就OK了
vim conf/hbase-env.sh
export JAVA_HOME=/opt/jdk1.8.0_131 # jdk的路径
export HBASE_MANAGES_ZK=false # 不使用hbase自带的zookeeper

#打开文件hbase-site.xml,在文件的最后添加以下内容,之后保存退出。
#hbase.zookeeper.quorum的值是zookeeper集群的主机名
#hbase.zookeeper.property.dataDir的值是zookeeper 数据保存的目录 
#hbase.rootdir 的值是在HDFS的NameNode的位置上存储数据的目录
#hbase.cluster.distributed设为true表示启用集群模式
vim conf/hbase-site.xml
<configuration>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>example1,example2,example3</value>
    <description>The directory shared by RegionServers.
    </description>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/zookeeper</value>
    <description>Property from ZooKeeper's config zoo.cfg.
    The directory where the snapshot is stored.
    </description>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://example1:9000/hbase</value>
    <description>The directory shared by RegionServers.
    </description>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    <description>The mode the cluster will be in. Possible values are
      false: standalone and pseudo-distributed setups with managed Zookeeper
      true: fully-distributed with unmanaged Zookeeper Quorum (see hbase-env.sh)
    </description>
  </property>
</configuration>

#打开文件regionservers,在里面填上slaves节点的主机名,每行一个
#example1是master,example2,example3是slaves。
vim conf/regionservers
example2
example3

#这样就全部配置完了

最后我们可以设置一下环境变量

vim /etc/profile
export NBASE_HOME=/opt/hbase-1.2.6
export PATH=$PATH:$HBASE_HOME/bin

保存退出之后别忘了执行source /etc/profile命令
之后,我们可以把这个hbase-1.2.6文件夹复制到集群中的其他机器上去。

scp -r hbase-1.2.6 root@example2:/opt
scp -r hbase-1.2.6 root@example3:/opt

5. 启动集群

我们在example1上执行命令:bin/start-hbase.sh,停止集群的话请使用bin/stop-hbase.sh命令。
使用jps命令看一下example1是否有HMaster,example2和example3是否有HRegionServer,有的话就表示集群搭建成功了。
在地址栏上输入网址http://example1:60010就可以进入hbase的UI界面看到更详细的信息了。

6. hbase基础命令

 #进入到hbase的交互模式下,使用help命令可以看到所有的帮助信息,使用exit命令退出交互模式。
bin/hbase shell
#如果不小心敲错字符了,我们需要按Ctri+Backspace来进行回退。
status #查看当前运行服务器状态
version #版本查询
create 'test','info' #创建一张表test,该表有一个列簇为info
exits '表名字' #判断表存在
list #列出所有的表
scan 'test '#查看表内容
describe 'test' #查看表结构
put 'test','0001','info:username','henry' #插入一条数据,rowkey为0001,在info列簇中的username列的值为henry
get 'test','0001','info:username' #查询rowkey为0001,在info列簇中的username列的值
delete 'test','0001','info:username' #删除rowkey为0001,在info列簇中的username列的数据
count 'test' #查看总共有多少条记录
is_enabled 'test' #查看表状态,是否是active状态
truncate 'test' #清空表中的数据
disable 'test' #把表标记为失活状态
drop 'test' #删除表,删除之前需执行disable命令

END

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容