简介:Hadoop的数据库,依赖HDFS和zookeeper,需要分布式应用,支持实时查询数据。
组成架构:
- Client:
- 包含访问Hbase的接口,并维护cache来加快对Hbase的访问,比如region的位置信息。
- HMaster:
- 是hbase集群的主节点,可以配置多个,用来实现HA
- 为RegionServer分配region
- 负责RegionServer的负载均衡
- 发现失效的RegionServer并重新分配其上的region
- RegionServer:
- Regionserver维护region,处理对这些region的IO请求
- Regionserver负责切分在运行过程中变得过大的region
- Region:
- 分布式存储的最小单元。
- Hbase集群组:Zookeeper:
- 选举HMaster
- 维护Region的寻址入口信息
- 实时监控Region server的上线和下线信息。并实时通知给HMaster
- 存储HBase的schema和table元数据
HBase依赖关系
- 利用Hadoop HDFS作为其文件存储系统,
- 利用Hadoop MapReduce来处理HBase中的海量数据,
- 利用Zookeeper作为协调工具
HBase集群搭建
1.上传并解压hbase1.0版本tar包
2.把hadoop的hdfs-site.xml和core-site.xml 复制到hbase/conf下。
3.修改hbase-env.sh
-
export JAVA_HOME=/export/servers/jdk1.8.0_141 //禁用自带,使用外部zookeeper export HBASE_MANAGES_ZK=false
4.修改 hbase-site.xml
- hbase.rootdir:hbase的数在hdfs的存放位置
- hbase.cluster.distributed:是否开启集群模式,默认是false,集群需要修改成true
- hbase.zookeeper.quorum:外置关联zookeeper
-
<configuration> <!-- 指定hbase在HDFS上存储的路径 --> <property> <name>hbase.rootdir</name> <value>hdfs://node1:8020/hbase</value> </property> <!-- 指定hbase是分布式的 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- 指定zk的地址,多个用“,”分割 --> <property> <name>hbase.zookeeper.quorum</name> <value>node1:2181,node2:2181,node3:2181</value> </property> </configuration>
5.修改 regionservers文件
-
node2 node3
6.修改core-site.xml
-
<!-- 指定jobtracker地址 hadoop1.0版本--> <property> <name>mapred.job.tracker</name> <value>node1:9001</value> </property>
7.验证:
- hbase依赖zookeeper协调,必须先将zookeeper启动成功
- zookeeper逐个启动,hbase只需启动master所在主机