hbase集群搭建

来源:互联网 发布:导航网源码 搜索引擎 编辑:程序博客网 时间:2024/06/05 18:48

1.1 hbase集群结构

这里写图片描述
REGION:是HBASE中对表进行切割的单元

HMASTER: HBASE的主节点,负责整个集群的状态感知,负载分配、负责用户表的元数据管理
(可以配置多个用来实现HA)
为regionserver分配region,负责regionserver负载均衡
用户对表的增删改查
如果当前的regionserver宕机,会把region迁移

REGION-SERVER: HBASE中真正负责管理region的服务器,也就是负责为客户端进行表数据读写的服务器
维护master给它的region
当这个region过大的情况下,他还负责切分这个过大的region
(负责客户端的IO请求,去hdfs上进行读写数据)

ZOOKEEPER: 整个HBASE中的主从节点协调,主节点之间的选举,集群节点之间的
上下线感知……都是通过zookeeper来实现
Region 存储寻址入口
监控:REGION SERVER 上下线 把这个状态告诉master
存储hbase的schema(当前哪些表,表里有哪些列族)

1.2 hbase集群搭建

(1)上传hbase安装包(上传到hadoop1,hadoop2,hadoop3这三台服务器上),上传后的位置如下:

[root@hadoop1 software]# cd /home/tuzq/software[root@hadoop1 software]# pwd/home/tuzq/software[root@hadoop1 software]# lshbase-1.3.1-bin.tar.gz

(2)解压,并配置环境变量

[root@hadoop1 software]# tar -zxvf  hbase-1.3.1-bin.tar.gz[root@hadoop1 software]# cd hbase-1.3.1[root@hadoop1 hbase-1.3.1]# ll总用量 348drwxr-xr-x.  4 root root   4096 45 11:02 bin-rw-r--r--.  1 root root 148959 47 09:45 CHANGES.txtdrwxr-xr-x.  2 root root   4096 45 11:02 confdrwxr-xr-x. 12 root root   4096 47 10:35 docsdrwxr-xr-x.  7 root root   4096 47 10:26 hbase-webapps-rw-r--r--.  1 root root    261 47 10:37 LEGALdrwxr-xr-x.  3 root root   4096 622 11:25 lib-rw-r--r--.  1 root root 130696 47 10:37 LICENSE.txt-rw-r--r--.  1 root root  43258 47 10:37 NOTICE.txt-rw-r--r--.  1 root root   1477 921 2016 README.txt[root@hadoop1 hbase-1.3.1]# [root@hadoop1 hbase-1.3.1]# vim /etc/profile#set hbase envexport HBASE_HOME=/home/tuzq/software/hbase-1.3.1export PATH=$PATH:$HBASE_HOME/bin[root@hadoop1 hbase-1.3.1]# source /etc/profile

(3)配置hbase集群,要修改3个文件
注意: 要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下

[root@hadoop1 hadoop]# pwd/home/tuzq/software/hadoop-2.8.0/etc/hadoop[root@hadoop1 hadoop]# cp hdfs-site.xml /home/tuzq/software/hbase-1.3.1/conf[root@hadoop1 hadoop]# cp core-site.xml /home/tuzq/software/hbase-1.3.1/conf[root@hadoop1 hadoop]# cd $HBASE_HOME[root@hadoop1 conf]# ll总用量 52-rw-r--r--. 1 root root 1376 6月  22 11:48 core-site.xml-rw-r--r--. 1 root root 1811 9月  21 2016 hadoop-metrics2-hbase.properties-rw-r--r--. 1 root root 4537 11月  7 2016 hbase-env.cmd-rw-r--r--. 1 root root 7468 11月  7 2016 hbase-env.sh-rw-r--r--. 1 root root 2257 9月  21 2016 hbase-policy.xml-rw-r--r--. 1 root root  934 9月  21 2016 hbase-site.xml-rw-r--r--. 1 root root 5203 6月  22 11:48 hdfs-site.xml-rw-r--r--. 1 root root 4722 4月   5 11:02 log4j.properties-rw-r--r--. 1 root root   10 12月  1 2015 regionservers[root@hadoop1 conf]#

(3.1)修改hbase-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_73#告诉hbase使用外部的zk,HBASE不管理zookeeper集群export HBASE_MANAGES_ZK=false#配置hadoop的环境变量export HADOOP_HOME=/home/tuzq/software/hadoop-2.8.0

(3.2)修改 hbase-site.xml

<configuration>    <!-- 指定hbase在HDFS上存储的路径,让hdfs统一管理HBASE产生的数据文件,说明不是单机的hbase,是一个集群的hbase,注意这里的hdfs://mycluster是hadoop的core-site-xml里的fs.defaultFS的值,hadoopHA配置是没有端口的-->    <property>        <name>hbase.rootdir</name>        <value>hdfs://mycluster/hbase</value>    </property>    <!--指定hbase是否分布式的-->    <property>        <name>hbase.cluster.distributed</name>        <value>true</value>    </property>    <!--指定zk的地址,多个用","分割-->    <property>        <name>hbase.zookeeper.quorum</name>        <value>hadoop11:2181,hadoop12:2181,hadoop13:2181</value>    </property></configuration>

(3.3)修改 regionservers
通过这个告诉slave有那些台(hadoop1(Master),hadoop2,hadoop3,hadoop4,hadoop5为slave)

[root@hadoop1 conf]# vim regionservershadoop2hadoop3hadoop4hadoop5

(3.3) 修改 backup-masters来指定备用的主节点

[root@mini1 conf]# vi backup-mastershadoop2

(3.4) 拷贝hbase到其他节点

[root@hadoop1 software]# pwd/home/tuzq/software[root@hadoop1 software]# scp -r hbase-1.3.1 root@hadoop2:$PWD[root@hadoop1 software]# scp -r hbase-1.3.1 root@hadoop3:$PWD[root@hadoop1 software]# scp -r hbase-1.3.1 root@hadoop4:$PWD[root@hadoop1 software]# scp -r hbase-1.3.1 root@hadoop5:$PWD

注意:修改这些机器上的storm的环境变量

(4) 将配置好的HBase拷贝到每一个节点并同步时间。
(可以用 ntpdate time.nist.gov 进行同步)

(5) 启动所有的hbase进程
首先要同步集群的时间

首先启动zk集群    ./zkServer.sh start启动hdfs集群    start-dfs.sh检验dfs是否启动了的命令是:    hdfs dfsadmin -report    或者访问:    http://hadoop2:50070/explorer.html#/    http://hadoop1:8088/cluster启动hbase,在主节点上运行:[root@hadoop1 bin]# pwd/home/tuzq/software/hbase-1.3.1/bin[root@hadoop1 bin]#./start-hbase.sh    (这里不用在其它机器上执行命令)

停止hbase的方式是:

[root@hadoop1 bin]# ./stop-hbase.sh stopping hbase.....................[root@hadoop1 bin]# jps10864 ConsoleConsumer4624 DataNode112387 Jps109748 DFSZKFailoverController10680 ConsoleConsumer108618 ResourceManager3981 JournalNode108735 NodeManager4095 NameNode[root@hadoop1 bin]# 

(6) 通过浏览器访问hbase管理页面
192.168.1.201:60010
http://hadoop1:16010/
Ip:16010
这里写图片描述

进入hadoop-ha集群中,查看数据发现已经多出了一个hbase的文件夹
这里写图片描述

(7) 为保证集群的可靠性,要启动多个HMaster
[root@hadoop1 software]# cd $HBASE_HOME/bin
[root@hadoop1 software]# ./hbase-daemon.sh start master (这个可以到hadoop2上启动)

原创粉丝点击