hadoop生态系统之hbase的部署

hbase的一些设计机制

zookeeper与hbase

hbase依赖zookeeper来管理它的HRegionServers,zookeeper存储的数据结构类似于文件系统的目录节点树模型,主要通过维护和监控你存储的数据的状态变化,触发事件,
从而进行基于数据的集群管理,zookeeper的用法,就类似如目录节点树的操作,首先创建一个目录节点,给某个目录节点设置数据,获取某个目录节点的所有子目录节点,
给某个目录节点设置权限和监控这个目录节点的状态变化,通知目录节点的拥有者。
zookeeper作为一个集群系统的管理系统,它对所管理的集群是无耦和的,它提供一个存储和管理数据场所,集群系统将它的管理模块入驻其中,
一旦数据的状态发生变化,Zookeeper就将负责通知相应的住户们作出反应,从而实现管理Master/Slave集群。
此外,zookeeper也适合用于集群的配置管理,共享琐,队列管理等。作为一个独立的集群管理系统它是很优秀的,值得一试。
zookeeper可以分布式部署,也可以只有一个。

hbase的存储系统

hbase有一套自己的完整的数据存储系统HStore,包括自己的存储格式(封装自HFile),内存存储缓冲MemStore,最终存储StoreFiles实体,小StoreFiles合并Compact系统,
大StoreFiles的Region Split系统。记录写操作的HLog等。

时钟同步

habse对时钟一致性有较高的要求。realserver建议装上ntp时钟同步服务。

Thrift Gateway

跟大多数nosql一样支持Thrift接口。 称为 hbase-thrift-server你需要启动这个服务。bin/hbase.sh thrift

文件打开数目限制

hbase运行时会大量的打开文件,一般默认的限制1024是不够的。使用ulimit打开habse的文件限制。设置为最大值把。

安装部署hbase集群

选用cloudera的 hbase0.94.6-cdh4.3.0
选用理由:依据cloudera的特色,cloudera知名,有实力,商用性强,生态系统组件完善,且各个组件版本对应正确,文档维护好。

申请的机器:

192.168.2.21
192.168.2.22

假设你已经安装好了。

配置过程:

配置hbase是比较简单的,只需要配置 conf/hbase-site.xml 跟文件就行 conf/hbase-env.sh

下面是我们用的一些:(注意我这里是用ip来代替的,在你的环境中请使用hostname来替换)

核心配置conf/hbase-site.xml

hbase.rootdir hdfs://192.168.2.21:9000/hbase hbase的根目录
hbase.cluster.distributed true 以分布式方式运行
hbase.zookeeper.property.quorum 192.168.2.21 zookeeper监管列表
hbase.regionserver.dns.interface 选中一个网卡,所有机器需要一样。无必要,不设置
hbase.regionserver.dns.nameserver 设置dns解析地址 用于解析hostname,生产环境有必要

运行是环境变量配置conf/hbase-env.sh :
HBASE_MANAGES_ZK true 使用内置的zookeeper服务在下面的文章中会介绍集群部署zookeeper

regionserver列表 conf/regionserver:
192.168.2.21 HMaster zookeeper regionserver
192.168.2.22 regionserver

启动hbase
*启动前确保你的主机们都是ssh无密码互通的,而且时间是一致的
bin/start-hbase.sh
启动后使用jps命令,你应该可以看到相关的服务,其中QuorumPeerMain为zookeeper服务

测试使用hbase

bin/hbase shell

进入shell界面

create ‘t1′,{NAME=>’cf1′},{NAME=>’cf2′},{NAME=>’cf3′}

创建表t1 columnfamily 是cf1,cf2,cf3

使用命令 list

列出你创建的表信息。

posted @ 2013-09-29 15:12  nosqlcn  阅读(436)  评论(0编辑  收藏  举报