转:http://www.aboutyun.com/thread-10961-1-1.html
http://blog.csdn.net/michaelzhou224/article/details/10579123
HMaster的作用:
为Region server分配region负责Region server的负载均衡
发现失效的Region server并重新分配其上的region
HDFS上的垃圾文件回收
处理schema更新请求
HRegionServer作用:
维护master分配给他的region,处理对这些region的io请求
负责切分正在运行过程中变的过大的region
可以看到,client访问hbase上的数据并不需要master参与(寻址访问zookeeper和region server,数据读写访问region server),master仅仅维护table和region的元数据信息(table的元数据信息保存在zookeeper上),负载很低。
HRegionServer存取一个子表时,会创建一个HRegion对象,然后对表的每个列族创建一个Store实例,每个Store都会有一个MemStore和0个或多个StoreFile与之对应,每个StoreFile都会对应一个HFile, HFile就是实际的存储文件。因此,一个HRegion有多少个列族就有多少个Store。
一个HRegionServer会有多个HRegion和一个HLog。
配置hbase集群
先要配置hadoop集群:http://blog.csdn.net/u014695188/article/details/54616458
在hadoop04主机上配置
1 。修改conf目录下hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_55
//告诉hbase使用外部的zk
export HBASE_MANAGES_ZK=false
修改conf目录下hbase-site.xml
<configuration>
<!-- 指定hbase在HDFS上存储的路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://ns1/hbase</value>
</property>
<!-- 指定hbase是分布式的 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定zk的地址,多个用“,”分割 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
</configuration>
vim regionservers(配置
HRegionServer节点)
hadoop01
hadoop02
hadoop03
拷贝hbase到其他节点
scp -r hbase-1.3.0/ hadoop01:/home/hadoop/cloud/
scp -r hbase-1.3.0/ hadoop02:/home/hadoop/cloud/
scp -r hbase-1.3.0/ hadoop03:/home/hadoop/cloud/
scp -r hbase-1.3.0/ hadoop05:/home/hadoop/cloud/
这步主要做个说明:Hbase安装在所有节点,包括NameNode,因为NameNode我主要是让其来管理HMaster的。
安装是基于Hadoop的HA,我有两个NameNode,准备让这两个NameNode都运行HMaster。
上面regionservers里配置的3个主机名是的DataNode节点。
现在开始启动:在hadoop4上hbase目录的bin下执行:./start-hbase.sh
starting master, logging to /home/hadoop/cloud/hbase-1.3.0/bin/../logs/hbase-hadoop-master-master.hadoop.out
hadoop01: starting regionserver, logging to /home/hadoop/cloud/hbase-1.3.0/bin/../logs/hbase-hadoop-regionserver-master.hadoop.out
hadoop02: starting regionserver, logging to /home/hadoop/cloud/hbase-1.3.0/bin/../logs/hbase-hadoop-regionserver-master.hadoop.out
hadoop03: starting regionserver, logging to /home/hadoop/cloud/hbase-1.3.0/bin/../logs/hbase-hadoop-regionserver-master.hadoop.out
在hadoop5上hbase目录的bin下执行:./hbase-daemon.sh start master
starting master, logging to /home/hadoop/cloud/hbase-1.3.0/bin/../logs/hbase-hadoop-master-master.hadoop.out
hadoop01, hadoop02 ,hadoop03
$ jps
2336 DataNode
2242 JournalNode
2163 QuorumPeerMain
2534 HRegionServer
2566 Jps
hadoop04,hadoop05
$ jps
3138 Jps
2564 DFSZKFailoverController
3028 HMaster
2297 NameNode