Zookeeper3.5.7和HBase2.4.8安装教程

364 阅读2分钟

我正在参加「掘金·启航计划」

Zookeeper

前期准备

按照 hadoop 的环境配置准备 可参照 这篇文章 点这里 防火墙要关闭 ssh要配置好

笔者的环境是CentOS7,Hadoop3.3.0

在Ubuntu18.04版本也安装过,Hadoop2.7也能用

Zookeeper 3.5.7 安装包

安装

  • 解压 tar -zxvf apache-zookeeper-3.5.7.bin.tar.gz

  • 重命名 mv apache-zookeeper-3.5.7-bin zookeeer-3.5.7

  • 配置服务器编号

 1. 在安装目录下 创建文件夹 zkData
 mkdir zkData
 2. 创建文件 myid
 vim myid
 3. 在myid 中添加server 对应的编号(上下不能有空行,左右不能有空格)
 例如:2
 4. 分发zookeeper 到其他服务器
 xsync zookeeper-3.5.7 #xsync是个脚本 在上面文章里有讲
  • 配置 zoo.cfg 文件
  1. 进入 /zookeeper-3.5.7/conf 目录下,将zoo_sample.cfg为zoo.cfg mv zoo_sample.cfg zoo.cfg
  2. 编辑 zoo.cfg vim zoo.cfg 修改数据存储路径 根据自己的zookeeper路径修改 在这里插入图片描述 添加以下配置
#########cluster#######
server.2=hadoop1:2888:3888
server.3=hadoop2:2888:3888
server.4=hadoop3:2888:3888

# hadoop1是自己的主机名

配置参数解读

server.A=B:C:D
A是一个数字,表示这个是第几号服务器;
集群模式下配置一个文件 myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server.
B是这个服务器的地址;
C是这个服务器Follower与集群中的Leader服务器交换信息的端口;
D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
  • 同步zoo.cfg 文件 xsync zoo.cfg

启动停止脚本

在 /zookeeper-3.5.7 的目录下 启动 bin/zkServer.sh start 停止 bin/zkServer.sh stop 查看状态 bin/zkServer.sh status

集群控制脚本 在 bin 目录下创建文件 zk.sh,写入以下内容

#!/bin/bash
case $1 in 
"start") {##hadoop1是主机名,根据自己的修改
    for i in hadoop1 hadoop2 hadoop3
    do 
        echo ------------ zookeeper $i 启动 ----------------
        ssh  $i  "/export/server/zookeeper-3.5.7/bin/zkServer.sh start"##这里是目录 根据自己修改
    done
};;
"stop"){
    for i in hadoop1 hadoop2 hadoop3
    do 
        echo ------------ zookeeper $i 停止 ----------------
        ssh  $i  "/export/server/zookeeper-3.5.7/bin/zkServer.sh stop"
    done
};;
"status"){
    for i in hadoop1 hadoop2 hadoop3
    do 
        echo ------------ zookeeper $i 状态 ----------------
        ssh  $i  "/export/server/zookeeper-3.5.7/bin/zkServer.sh status"
    done
};;
esac

赋予权限 chmod u+x zk.sh

之后可以在一台第一台机器上启动所有zookeeper zk.sh start 群起 zk.sh stop 群停 zk.sh status 查看集群状态 如图

在这里插入图片描述

HBase

前言

环境要求:已配置完Hadoop+Zookeeper并且可以正常启动 我的环境是:CentOS7+Hadoop3.3+zookeeper3.5.7+HBase2.4.8

放一些下载链接和其他组件教程

安装

启动hadoop和zookeeper

要保证Hadoop和Zookeeper的正常运行

Hadoop:start-dfs.sh Zookeeper:zk.sh start(脚本,点这里看配置

解压

tar -zxvf xxx -C xxx(指定目录)

配置环境变量

  1. 进入环境变量文件加 cd /etc/profile.d
  2. 新建文件并写入 vim hbase.sh 写入以下内容,路径根据hbase写
export HBASE_HOME=/export/server/hbase-2.4.8
export PATH=$PATH:$HBASE_HOME/bin
  1. 分发环境变量 xsync /etc/profile.d/hbase.sh
  2. 更新环境变量 每台机器都要更新,可以群发命令(Tabby 是 Alt + q) source /etc/profile

修改配置文件

两个文件,env和site

hbase-env.sh

vim hbase-env.sh 进入文件后,在文件的最低端,如图,取消其前面的注释,并改为false 告诉hbase用自己配置的Zookeeper而不是hbase自带的

在这里插入图片描述

hbase-site.xml

vim hbase-site.xml 写入以下内容

    <property>
        <name>hbase.rootdir</name>
        <!-- 设置Hadoop master-->
        <value>hdfs://hadoop1:8020/hbase</value>
    </property>
    <!-- 设置hbase集群为分布式集群 -->
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <!-- 设置zookeeper集群,用英文逗号分隔 -->
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>
    </property>
    <!-- hbase备份的副本数,不能超过datanode的节点数。
     hbase的数据备份数需要再hbase-site.xml配置文件中单独设置,否则hbase写入的数据regionServer只会保存一份! -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <!-- Zookeeper元数据的存储目录,需要和Zookeeper的zoo.cfg 配置的一致 -->
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/zk_data/data</value>
    </property>
    <!-- 指定HBase Master Web页面访问端口,默认端口号16010 -->
    <property>
        <name>hbase.master.info.port</name>
        <value>16010</value>
    </property>
     </property>
    <!-- 指定HBase RegionServer Web页面访问端口,默认端口号16030 -->
        <property>
                <name>hbase.regionserver.info.port</name>
                <value>16030</value>
        </property>
    <!-- 解决启动HMaster无法初始化WAL的问题 -->
    <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>
    <property>
      <name>hbase.wal.provider</name>
      <value>filesystem</value>
    </property>

regionservers

进入之后删除默认的localhost 写入自己配置的主机名 在这里插入图片描述

解决log4j兼容性问题

修改HBase的jar包,使用Hadoop的jar包 在/hbase-2.4.8/lib/client-facing-thirdparty 路径下 把slf4j-log4j12-1.7.30.jar 重命名 如:mv slf4j-log4j12-1.7.30.jar slf4j-log4j12-1.7.30.jar.bak

分发HBase

xsync /hbase-2.4.8

启动与停止

群起群停 启动:bin/start-hbase.sh 停止:bin/start-hbase.sh

Web页面

host:16010 我的是http://192.168.154.138:16010 IP+16010 在这里插入图片描述