最近忽然要把大数据跟我们对接的项目接回来我们自己维护,不得不自己搭建一个大数据的集群环境,用来运行该项目。因此记录一下集群环境的搭建,免得以后需要再搭建。
一、架构说明
本次基于hbase-2.2.0-bin.tar版本进行分布式配置。在此设置一个主节点和两个从节点。
准备3台虚拟机,分别为:
主机名 | IP地址 |
master | 192.168.0.41 |
slave1 | 192.168.0.42 |
slave2 | 192.168.0.75 |
本章节是记录Hbase的搭建,后续会记录Zookeeper、Scala、Kafka、Spark、Hadoop、Hive等的搭建,都是基于该环境的,一主两从模式的。
已经在/home下创建了hadoop文件夹,用来存放各种安装的软件。
下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/,这是我找的一个镜像服务器地址
二、搭建步骤
1、上传hbase-2.2.0-bin.tar到/home/hadoop下并解压:tar -zxvf hbase-2.2.0-bin.tar.gz
2、配置环境变量,vim /etc/profile
export HBASE_HOME=/home/hadoop/hbase-2.2.0
export PATH=$PATH:$JAVA_HOME/bin:$HBASE_HOME/bin
修改以后记得source /etc/profile
3、进入hbase-2.2.0/conf文件夹下,修改配置文件hbase-env.sh,vim hbase-env.sh
export JAVA_HOME=/usr/jdk1.8.0_161 #Java的环境
export HBASE_CLASSPATH=/home/hadoop/hbase-2.2.0/conf #hadoop配置文件的地址
export HBASE_MANAGES_ZK=true # hbase自带zookeeper,如果不用自带zk,则设置为fales,使用独立配置的zookeeper
export HBASE_LOG_DIR=${HBASE_HOME}/logs #Hbase日志目录
4、修改配置文件
4.1、进入hbase-2.2.0/conf文件夹下,vim hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
<!--配置为core-site.xml 中的fs.default.name -->
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>60000</value>
<!-- Hbase HA 方式下只需配置端口 -->
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.zoopkeeper.property.dataDir</name>
<value>/home/hadoop/zookeeper-3.4.12/data</value>
</property>
4.2、修改regionservers文件,进入hbase-2.2.0/conf文件夹下,vim regionservers
master
slave1
slave2
5、将hbase-2.2.0文件夹整体拷贝到slave1、slave2上
scp -r /home/hadoop/hbase-2.2.0 root@192.168.0.75:/home/hadoop
scp -r /home/hadoop/hbase-2.2.0 root@192.168.0.42:/home/hadoop
同时将/etc/profile拷贝到slave1、slave2上,或者将配置内容拷贝过去,然后记得source /etc/profile
6、启动hbase,前提是已经启动了hadoop
进入hbase-2.2.0/bin目录下启动 start-hbase.sh
三、hbase-site.xml 参数解释
1、hbase.rootdir
这个目录是 RegionServer 的共享目录,用来持久化 HBase。特别注意的是 hbase.rootdir 里面的 HDFS 地址是要跟 Hadoop 的 core-site.xml 里面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、端口必须一致。(HA环境下,dfs.nameservices 是由zookeeper来决定的)
2、hbase.cluster.distributed
HBase 的运行模式。为 false 表示单机模式,为 true 表示分布式模式。若为 false,HBase 和 ZooKeeper 会运行在同一个 JVM 中
3、hbase.master
如果只设置单个 Hmaster,那么 hbase.master 属性参数需要设置为 master:60000 (主机名:60000)
如果要设置多个 Hmaster,那么我们只需要提供端口 60000,因为选择真正的 master 的事情会有 zookeeper 去处理
4、hbase.tmp.dir
本地文件系统的临时文件夹。可以修改到一个更为持久的目录上。(/tmp会在重启时清除)
hbase.zookeeper.quorum
对于 ZooKeeper 的配置。至少要在 hbase.zookeeper.quorum 参数中列出全部的 ZooKeeper 的主机,用逗号隔开。该属性值的默认值为 localhost,这个值显然不能用于分布式应用中。
5、hbase.zookeeper.property.dataDir
这个参数用户设置 ZooKeeper 快照的存储位置,默认值为 /tmp,显然在重启的时候会清空。因为笔者的 ZooKeeper 是独立安装的,所以这里路径是指向了 $ZOOKEEPER_HOME/conf/zoo.cfg 中 dataDir 所设定的位置。