基于CentOS7 搭建大数据 HBase 集群环境 (可兼容Ubuntu)

安装前说明

  1. 本文档安装教程仅作学习研究用途,请勿做为生产环境配置使用!
  2. 本文档安装方式为 ZooKeeper 最小集群 (3台虚拟机) 安装
  3. 本文档不在赘述虚拟化平台(VMware)的安装过程,你也可以选择你熟悉的虚拟化平台
  4. 本文档仅作参考,考虑到仅上课时使用, 本文档将不创建属于数据库子账户,全部使用最高权限 root 用户,请勿用于生产用途 !
  5. 请务必熟悉配置文件的修改流程,文本中仅进行了一些关键的配置,熟悉配置后你可以对其在后期学习过程中出现的问题进行处理修改
  6. 因只为学习用途所以本教程并未考虑主节点下线后的高可用问题(即 backup master),仅仅只是分布式安装的教程

本教程参考 《HBase入门与实践》第二版 书籍中所描述环境版本搭建,由于 ZooKeeper 在官方源以及相关镜像源中均未能找到 3.7.0版本,因此本教程选择较为接近的3.7.1版本进行使用。
本文档由于笔者水平有限,文档中难免可能存在错误,请各位师傅予以斧正!

安装前宿主机环境要求

  • 运行内存 >= 4GB
  • 逻辑处理器 >= 4

如何查看逻辑处理器数量:打开任务管理器,切换到“性能”视图
image.png

安装前虚拟机环境要求

注意:这里操作系统并不局限在 CentOS 当中,你可以在 Ubuntu 等中进行

  • CentOS7 64位

下载地址: 不在提供,自行寻找

  • **VMware Workstation Pro **虚拟化平台或其他虚拟化平台,例如 Vbox、PVE、ESXI 等

下载地址: 不在提供,自行寻找
激活密钥: 不在提供,自行寻找

请准备好以下文件

  • ZooKeeper 3.7.1环境依赖

下载地址:不在提供,自行寻找

  • Hadoop 2.10.1环境依赖

下载地址:不在提供,自行寻找

  • HBase 2.4.9环境依赖

下载地址:不在提供,自行寻找

  • MobaXtermSSH客户端工具

下载地址: 不在提供,自行寻找

SSH 客户端工具 MobaXterm 安装

使用解压工具将 MobaXterm 便携版压缩包解压出来image.png
将其剪切到你的常用软件安装目录后进入该软件目录
image.png

选择客户端主程序右键->更多->发送到->桌面快捷方式
image.png

回到桌面将单击其图标名称,将其文本全选替换为MobaXterm ,当然你也可以将其改为你想自定义的任意名称,到此处SSH客户端工具安装完成。
image.png

模板虚拟机新建

打开 VMware ,在右侧选择创建虚拟机,默认典型就好
image.png
选择安装程序光盘映像(iso)->浏览,然后选择你之前下载的CentOS7 镜像
image.png

设置虚拟机名称以及安装位置
image.png

设置磁盘大小,因为是课程学习用途,因此默认20GB就足够,直接下一步
image.png
选择自定义硬件
image.png
移除打印机,该步骤可不执行,打印机移除不移除无任何影响,自定义硬件的目的在于确定硬件配置,默认内存1GB,处理器1个即可,完成后点击关闭。
image.png
最后点击完成即可完成虚拟机
image.png
完成后点击该虚拟机如下图所示,因为默认勾选了"创建后开启此虚拟机",因此虚拟机会自动开机。

安装CentOS7 操作系统

Tips:启动后,将鼠标移动至虚拟机后,默认情况下虚拟机会将当前鼠标锁定进虚拟机,如需将鼠标移出虚拟机至宿主机,按下快捷键 Ctrl + Alt 即可释放鼠标。

  1. 将光标移动至“Install CentOS 7”回车并确认

image.png

  1. 等待GUI显示,默认选择英文语言即可,如有需要,使用鼠标滑动选择中文中国即可,本处我默认英语环境,点击 Continue 继续下一步

image.png

  1. 点击安装位置配置

image.png

  1. 如果你对Linux较为熟悉,可以根据界面提示进行更改配置,如若不熟悉,默认配置 Done 即可

image.png

  1. 此时安装配置已检查通过,点击开始安装即可

image.png

  1. 因为不想过多的折腾,这里我默认仅要root用户即可,点击 ROOT PASSWORD 设置 root 用户密码

image.png

  1. 输入你想要设置的虚拟机密码, 点击 Done 完成即可

image.png

  1. 耐心等待虚拟机安装完成,完成后如下图所示,点击 Reboot 重启虚拟机即可

image.png

  1. 重启后看到如下图所示则代表已经安装完成

image.png

登录虚拟机

在界面输入 root 回车后提示让你输入密码,该除输入密码没有任何回显,请输入完成后回车即可
image.png
登录成功后如下图所示
image.png

配置网卡自动链接

输入: nmtui 后回车
image.png
进入终端字符GUI式网络配置界面,如下图所示:
image.png
按动上下左右方向键,将光标移动至编辑链接(Edit a connection) 后回车,如下图所示
image.png
可以在上图中看到有一个ens33接口,再次移动光标到ens33接口上后回车,在 Edit Connection 中选择 自动连接 Automatically connect 按下空格选中,完成后移动至OK回车确认配置,完成后选择 Back 返回至TUI界面
image.png
选择 Quit 回车退出配置
image.png

重启网络服务

在终端中输入如下命令重启网络服务:

service network restart

完成后如下图所示:
image.png
输入命令: ip add 查看发现已获取到 dhcp 服务器分配给虚拟机的 IP 信息,如下图所示
image.png
上图中ens33网卡获取到的IP地址为:192.168.234.129
该IP在不同的电脑上可能不相同,请注意你的设备的IP信息

开启 root 用户远程登录

在 CentOS7 中已默认安装了SSH服务器(sshd),因此此处仅需要开启允许 Root 用户通过ssh登录即可
输入命令:vi /etc/ssh/sshd_config 回车后如下图所示
image.png
使用方向键找到 #PermitRootLogin yes这一行,将光标移动至#号之前,按下 X键删除 #
image.png
完成后在按下shift + :两个按键,使vi进入命令模式,然后输入wq回车即可保存并退出
image.png

重启 sshd 服务

输入命令: service sshd restart后回车重启服务,完成后如下图所示:
image.png

关闭系统防火墙

在虚拟机依次执行如下操作:

systemctl stop firewalld     # 停止 firewall
systemctl disable firewalld  # 禁止 firewall 开机启动
systemctl status firewalld   # 查看 firewall 当前状态

完成后防火墙状态如下图所示即可(观察是否出现inactive)
image.png

MobaXterm 配置 Session 连接模板虚拟机

运行 MobaXterm 后,点击 Session,弹出 Session 设置界面
image.png

在Session界面填写模板虚拟机的IP信息
image.png
然后会弹出连接提示,进行下图操作即可,如若未弹出则不管
image.png
输入虚拟机的密码,如下图所示,不会回显
image.png
提示是否保存密码,勾选不在提示和Yes即可
image.png
提示安全存储密码,设置好你的密码安全后点击Ok即可
image.png

如下图所示则表示已经正确连接到虚拟机
image.png
使用 MobaXterm 连接虚拟机的好处是方便复制粘贴,宿主机与虚拟机之间方便传文件等。

修改 HDFS 最大文件数限制

目标修改文件: /etc/security/limits.conf
在 MobaXterm 连接后左侧文件浏览区域,更改路径为 /etc/security/
image.png
在目标文件上右键,选择使用默认编辑器打开
image.png
在文件末尾粘贴如下内容

# 当前shell该用户能打开的最大文件数
* soft nofile 10240
* hard nofile 10240

# 当前shell该用户所能创建的最大进程数
* soft nproc 10240
* hard nproc 10240

粘贴完根据提示进行操作
image.png

拷贝安装包到模板虚拟机

在 MobaXterm 右侧命令区域粘贴如下命令在根目录创建一个名为 temp_work 的临时工作文件夹

mkdir /temp_work && cd /temp_work

完成后当前位置会来到我们创建的文件夹之中,如下图所示
image.png
在左侧文件浏览区域将路径也切换到 /temp_work 位置
image.png
将之前准备好的文件拖拽进文件浏览区域,复制到虚拟机时会出现如下类似进度条
image.png
等待三个安装包全部拷贝完成后如下图所示在文件浏览区域能看到对应的安装包即可
image.png

安装常用命令工具与 Java8 运行环境

在右侧命令区域以此粘贴如下命令,等待安装完成即可

yum install vim net-tools wget -y
yum install java-1.8.0-openjdk* -y

java 安装完成后默认路径为:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64
在左侧文件浏览区域将路径切换到 /etc路径,寻找目标文件 profile,使用默认编辑器编辑该文件
image.png
在末尾粘贴如下环境变量并保存

# JAVA8 环境变量
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

输入如下命令使环境变量生效并打印 JAVA_HOME 的位置,看到如下回显则代表配置完成

source /etc/profile && echo $JAVA_HOME

image.png

模板虚拟机安装软件包

解压 Zookeeper

tar -zxvf /temp_work/apache-zookeeper-3.7.1-bin.tar.gz -C /opt

创建 zookeeper 软连接

ln -sf /opt/apache-zookeeper-3.7.1-bin/ /opt/zookeeper

添加 zookeeper 环境变量

请注意,如果你为 Ubuntu ,则建议配置为用户环境变量文件 ~/.bashrc 中添加如下配置
修改 /etc/profile 环境配置文件,在文件末尾添加下方两行

# ZooKeeper 环境变量
export ZOOKEEPER_HOME=/opt/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

修改 zookeeper 配置文件

创建 zoo.cfg 配置文件

执行如下命令创建配置文件

cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg

在 MobaXterm 左侧文件浏览区域找到配置文件的路径,清空zoo.cfg内容并粘贴如下配置到 zoo.cfg 配置文件中

tickTime=2000
initLimit=5
syncLimit=2

dataDir=/opt/data/zookeeper
dataLogDir=/opt/datalog/zookeeper
clientPort=2181

autopurge.purgeInterval = 1

server.1=master1:2888:3888
server.2=master2:2888:3888
server.3=slave1:2888:3888

如下图所示
image.png

创建对应数据和日志文件夹

执行如下命令

mkdir -p /opt/data/zookeeper
mkdir -p /opt/datalog/zookeeper

解压 Hadoop

tar -zxvf /temp_work/hadoop-2.10.1.tar.gz -C /opt

创建 Hadoop 软连接

ln -sf /opt/hadoop-2.10.1/ /opt/hadoop

配置 Hadoop 环境变量

请注意,如果你为 Ubuntu ,则建议配置为用户环境变量文件 ~/.bashrc 中添加如下配置
修改 /etc/profile 文件,在文件末尾添加下方两行

# Hadoop 环境变量
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:

修改 Hadoop 配置文件

hadoop-env.sh 配置文件修改

使用 MobaXterm 打开 /opt/hadoop/etc/hadoop/hadoop-env.sh 文件
在第25行下方添加如下配置覆盖

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64

如下图所示
image.png

core-site.xml 配置文件修改

使用 MobaXterm 打开 /opt/hadoop/etc/hadoop/core-site.xml 在****中间,添加以下内容

  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master1:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop/tmp</value>
  </property>

如下图所示
image.png

hdfs-site.xml 配置文件修改

使用 MobaXterm 打开 /opt/hadoop/etc/hadoop/hdfs-site.xml 在****中间,添加以下内容

  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master2:50090</value>
  </property>

如下图所示
image.png

mapred-site.xml 配置文件修改

这里我们首先需要拷贝下 mapred-site.xml.template 文件,命名为 mapred-site.xml
执行如下命令

cp /opt/hadoop/etc/hadoop/mapred-site.xml.template /opt/hadoop/etc/hadoop/mapred-site.xml

完成后使用 MobaXterm 编辑 /opt/hadoop/etc/hadoop/mapred-site.xml文件,在****中间,添加以下内容

  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>

如下图所示
image.png

yarn-site.xml 配置文件修改

使用 MobaXterm 编辑 /opt/hadoop/etc/hadoop/yarn-site.xml文件
在****中间,添加以下内容:

  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master1</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>

如下图所示image.png

slaves 配置文件修改

使用 MobaXterm 编辑 /opt/hadoop/etc/hadoop/slaves 文件
清空文件中的内容,然后配置如下内容:

master1
master2
slave1

如下图所示
image.png

解压 HBase

tar -zxvf /temp_work/hbase-2.4.9-bin.tar.gz -C /opt

创建 HBase 软连接

ln -sf /opt/hbase-2.4.9/ /opt/hbase

配置 HBase 环境变量

请注意,如果你为 Ubuntu ,则建议配置为用户环境变量文件 ~/.bashrc 中添加如下配置
修改 /etc/profile 文件,在文件末尾添加下方两行

# HBase 环境变量
export HBASE_HOME=/opt/hbase
export HBASE_MANAGES_ZK=false
export PATH=$HBASE_HOME/bin:$PATH

修改 HBase 配置文件

复制配置 HDFS 文件到 HBASE

执行如下命令

cp /opt/hadoop/etc/hadoop/hdfs-site.xml /opt/hbase/conf/
修改 hbase-env.sh 配置文件
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64
export HBASE_MANAGES_ZK=flase # true 内部 flase 外部

此处如不想安装zookeeper可以选择hbase内置的,HBASE_MANAGES_ZK 参数设置为 true 即可

修改 hbase-site.xml 配置文件

使用 MobaXterm 编辑 /opt/hbase/conf/hbase-site.xml文件
将将修改为如下配置

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://master1:9000/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
         <name>hbase.zookeeper.quorum</name>
         <value>master1,master2,slave1</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/opt/data/zookeeper</value> 
    </property>
    <property>
        <name>hbase.tmp.dir</name>
        <value>/tmp</value>
    </property>
    <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>
</configuration>
修改 regionservers 配置文件

使用 MobaXterm 编辑 /opt/hbase/conf/regionservers文件
清空并添加如下内容

master1
master2
slave1

环境变量检查

请你确保已在环境变量配置文件中已添加有如下四个环境变量配置
image.png

生效环境变量配置

执行如下命令使环境变量生效

source /etc/profile

关闭虚拟机

输入 poweroff命令关闭虚拟机
image.png

拍摄模板虚拟机快照

在VMware中选择虚拟机右键->快照->拍摄快照
image.png

输入快照名称确定即可
image.png

复制业务虚拟机

image.png
选择基础模板后点击下一页
image.png
默认链接克隆即可,但是此处注意,模板虚拟机不要删除,删除后将会导致其所有链接克隆的虚拟机不可使用
image.png
修改虚拟机的名称及位置
image.png
重复如上步骤,再克隆两台虚拟机,虚拟机名称分别为 master2 和 slave1
完成后如下图所示
image.png
从此刻起 CentOS7_formwork 虚拟机将不再进行启动,仅仅做模板虚拟机使用

配置虚拟机主机名

分别启动三台虚拟机,登录后输入 nmtui 命令选择设置主机名(Set system hostname)回车
image.png
输入虚拟机对应的主机名后回车,完成设置后退出nmtui,输入命令 reboot 命令重启虚拟机
image.png
三台虚拟机重复如上步骤,三台虚拟机的主机名分别是 master1``master2``slave1
重启后我们可以看到主机名已经变成我们设定的内容
image.png

配置三台虚拟机 MobaXterm 连接

因为模板虚拟机中我们已经开启了 root 用户 ssh 登录权限,因此直接在 MobaXterm 中进行session添加操作即可,添加完如下图所示
image.png

配置域名映射

此处请根据你自己的三台虚拟机IP进行修改
编辑三台虚拟机的 /etc/hosts 文件,根据规划的ip在末尾添加如下配置

192.168.234.129 master1
192.168.234.131 master2
192.168.234.132 slave1

如下图所示
image.png

创建 zookeeper 节点ID

在虚拟机1(Master1)中执行

echo '1' > /opt/data/zookeeper/myid

在虚拟机2(Master2)中执行

echo '2' > /opt/data/zookeeper/myid

在虚拟机3(Slave1)中执行

echo '3' > /opt/data/zookeeper/myid

配置三台虚拟机直接先相互免密证书登录

创建证书文件

三台虚拟机均执行如下命令,不输入任何内容,一路回车即可

ssh-keygen -t rsa

完成后如下图所示
image.png

拷贝公钥到主节点master1

三台虚拟机均需执行,请不要擅作主张的将 master1 替换 master2 或 slave1, 复制粘贴执行就好

ssh-copy-id master1

分发认证key到其他节点

请在master1节点执行如下命令

scp /root/.ssh/authorized_keys master2:/root/.ssh
scp /root/.ssh/authorized_keys slave1:/root/.ssh

完成后请在三台主机分别依次执行如下命令验证是否能登录, 注释内容请勿复制执行

ssh master1 # 验证可以登录后请执行 exit 命令退回到当前用户
ssh master2 # 验证可以登录后请执行 exit 命令退回到当前用户
ssh slave1  # 验证可以登录后请执行 exit 命令退回到当前用户

启动 zookeeper

在三台服务器分别执行如下命令

zkServer.sh start

启动后如图所示
image.png

检查 zookeeper 状态

在三台虚拟机分别执行如下命令

zkServer.sh status

如下图所示
image.png
image.png
image.png
查看三台节点zookeeper状态可以发现,一台节点为leader,两台为follower

格式化文件系统

在主节点下执行如下命令:

hdfs namenode -format

启动和关闭 Hadoop 集群

  1. start-dfs.shstop-dfs.sh启动或关闭所有HDFS服务进程
  2. start-yarn.shstop-yarn.sh启动或关闭所有YARN服务进程
  3. start-all.shstop-all.sh指令,直接启动或关闭整个Hadoop集群服务

启动和关闭 HBase 集群

  1. start-hbase.shstop-hbase.sh指令,直接启动或关闭整个HBase集群服务

安装完成后验证信息

Hadoop 监控Web端口

8088端口

image.png

50070端口

image.png

HBase Web端口

16010 端口

image.png

请自行浏览器访问进行验证

HBase交互式会话控制台验证

master1 节点执行:hbase shell 能进入控制台,且能看到无 error 即可

如遇问题,欢迎留言,予以指正!

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天析

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值