基于CentOS7 搭建大数据 HBase 集群环境 (可兼容Ubuntu)
Tips:启动后,将鼠标移动至虚拟机后,默认情况下虚拟机会将当前鼠标锁定进虚拟机,如需将鼠标移出虚拟机至宿主机,按下快捷键 Ctrl + Alt 即可释放鼠标。移除打印机,该步骤可不执行,打印机移除不移除无任何影响,自定义硬件的目的在于确定硬件配置,默认内存1GB,处理器1个即可,完成后点击关闭。默认链接克隆即可,但是此处注意,模板虚拟机不要删除,删除后将会导致其所有链接克隆的虚拟机不可使用。完成
安装前说明
- 本文档安装教程仅作学习研究用途,请勿做为生产环境配置使用!
- 本文档安装方式为 ZooKeeper 最小集群 (3台虚拟机) 安装
- 本文档不在赘述虚拟化平台(VMware)的安装过程,你也可以选择你熟悉的虚拟化平台
- 本文档仅作参考,考虑到仅上课时使用, 本文档将不创建属于数据库子账户,全部使用最高权限 root 用户,请勿用于生产用途 !
- 请务必熟悉配置文件的修改流程,文本中仅进行了一些关键的配置,熟悉配置后你可以对其在后期学习过程中出现的问题进行处理修改
- 因只为学习用途所以本教程并未考虑主节点下线后的高可用问题(即 backup master),仅仅只是分布式安装的教程
本教程参考 《HBase入门与实践》第二版 书籍中所描述环境版本搭建,由于 ZooKeeper 在官方源以及相关镜像源中均未能找到 3.7.0
版本,因此本教程选择较为接近的3.7.1
版本进行使用。
本文档由于笔者水平有限,文档中难免可能存在错误,请各位师傅予以斧正!
安装前宿主机环境要求
- 运行内存 >= 4GB
- 逻辑处理器 >= 4
如何查看逻辑处理器数量:打开任务管理器,切换到“性能”视图
安装前虚拟机环境要求
注意:这里操作系统并不局限在 CentOS 当中,你可以在 Ubuntu 等中进行
- CentOS7 64位
下载地址: 不在提供,自行寻找
- **VMware Workstation Pro **虚拟化平台或其他虚拟化平台,例如 Vbox、PVE、ESXI 等
下载地址: 不在提供,自行寻找
激活密钥: 不在提供,自行寻找
请准备好以下文件
- ZooKeeper 3.7.1
环境依赖
下载地址:不在提供,自行寻找
- Hadoop 2.10.1
环境依赖
下载地址:不在提供,自行寻找
- HBase 2.4.9
环境依赖
下载地址:不在提供,自行寻找
- MobaXterm
SSH客户端工具
下载地址: 不在提供,自行寻找
SSH 客户端工具 MobaXterm 安装
使用解压工具将 MobaXterm 便携版压缩包解压出来
将其剪切到你的常用软件安装目录后进入该软件目录
选择客户端主程序右键->更多->发送到->桌面快捷方式
回到桌面将单击其图标名称,将其文本全选替换为MobaXterm
,当然你也可以将其改为你想自定义的任意名称,到此处SSH客户端工具安装完成。
模板虚拟机新建
打开 VMware ,在右侧选择创建虚拟机,默认典型就好
选择安装程序光盘映像(iso)->浏览,然后选择你之前下载的CentOS7 镜像
设置虚拟机名称以及安装位置
设置磁盘大小,因为是课程学习用途,因此默认20GB就足够,直接下一步
选择自定义硬件
移除打印机,该步骤可不执行,打印机移除不移除无任何影响,自定义硬件的目的在于确定硬件配置,默认内存1GB,处理器1个即可,完成后点击关闭。
最后点击完成即可完成虚拟机
完成后点击该虚拟机如下图所示,因为默认勾选了"创建后开启此虚拟机",因此虚拟机会自动开机。
安装CentOS7 操作系统
Tips:启动后,将鼠标移动至虚拟机后,默认情况下虚拟机会将当前鼠标锁定进虚拟机,如需将鼠标移出虚拟机至宿主机,按下快捷键 Ctrl + Alt 即可释放鼠标。
- 将光标移动至“Install CentOS 7”回车并确认
- 等待GUI显示,默认选择英文语言即可,如有需要,使用鼠标滑动选择中文中国即可,本处我默认英语环境,点击 Continue 继续下一步
- 点击安装位置配置
- 如果你对Linux较为熟悉,可以根据界面提示进行更改配置,如若不熟悉,默认配置 Done 即可
- 此时安装配置已检查通过,点击开始安装即可
- 因为不想过多的折腾,这里我默认仅要root用户即可,点击 ROOT PASSWORD 设置 root 用户密码
- 输入你想要设置的虚拟机密码, 点击 Done 完成即可
- 耐心等待虚拟机安装完成,完成后如下图所示,点击 Reboot 重启虚拟机即可
- 重启后看到如下图所示则代表已经安装完成
登录虚拟机
在界面输入 root
回车后提示让你输入密码,该除输入密码没有任何回显,请输入完成后回车即可
登录成功后如下图所示
配置网卡自动链接
输入: nmtui
后回车
进入终端字符GUI式网络配置界面,如下图所示:
按动上下左右方向键,将光标移动至编辑链接(Edit a connection) 后回车,如下图所示
可以在上图中看到有一个ens33接口,再次移动光标到ens33接口上后回车,在 Edit Connection 中选择 自动连接 Automatically connect 按下空格选中,完成后移动至OK回车确认配置,完成后选择 Back 返回至TUI界面
选择 Quit 回车退出配置
重启网络服务
在终端中输入如下命令重启网络服务:
service network restart
完成后如下图所示:
输入命令: ip add
查看发现已获取到 dhcp 服务器分配给虚拟机的 IP 信息,如下图所示
上图中ens33网卡获取到的IP地址为:192.168.234.129
该IP在不同的电脑上可能不相同,请注意你的设备的IP信息
开启 root 用户远程登录
在 CentOS7 中已默认安装了SSH服务器(sshd),因此此处仅需要开启允许 Root 用户通过ssh登录即可
输入命令:vi /etc/ssh/sshd_config
回车后如下图所示
使用方向键找到 #PermitRootLogin yes
这一行,将光标移动至#
号之前,按下 X键删除 #
号
完成后在按下shift
+ :
两个按键,使vi进入命令模式,然后输入wq回车即可保存并退出
重启 sshd 服务
输入命令: service sshd restart
后回车重启服务,完成后如下图所示:
关闭系统防火墙
在虚拟机依次执行如下操作:
systemctl stop firewalld # 停止 firewall
systemctl disable firewalld # 禁止 firewall 开机启动
systemctl status firewalld # 查看 firewall 当前状态
完成后防火墙状态如下图所示即可(观察是否出现inactive)
MobaXterm 配置 Session 连接模板虚拟机
运行 MobaXterm 后,点击 Session,弹出 Session 设置界面
在Session界面填写模板虚拟机的IP信息
然后会弹出连接提示,进行下图操作即可,如若未弹出则不管
输入虚拟机的密码,如下图所示,不会回显
提示是否保存密码,勾选不在提示和Yes即可
提示安全存储密码,设置好你的密码安全后点击Ok即可
如下图所示则表示已经正确连接到虚拟机
使用 MobaXterm 连接虚拟机的好处是方便复制粘贴,宿主机与虚拟机之间方便传文件等。
修改 HDFS 最大文件数限制
目标修改文件: /etc/security/limits.conf
在 MobaXterm 连接后左侧文件浏览区域,更改路径为 /etc/security/
在目标文件上右键,选择使用默认编辑器打开
在文件末尾粘贴如下内容
# 当前shell该用户能打开的最大文件数
* soft nofile 10240
* hard nofile 10240
# 当前shell该用户所能创建的最大进程数
* soft nproc 10240
* hard nproc 10240
粘贴完根据提示进行操作
拷贝安装包到模板虚拟机
在 MobaXterm 右侧命令区域粘贴如下命令在根目录创建一个名为 temp_work 的临时工作文件夹
mkdir /temp_work && cd /temp_work
完成后当前位置会来到我们创建的文件夹之中,如下图所示
在左侧文件浏览区域将路径也切换到 /temp_work 位置
将之前准备好的文件拖拽进文件浏览区域,复制到虚拟机时会出现如下类似进度条
等待三个安装包全部拷贝完成后如下图所示在文件浏览区域能看到对应的安装包即可
安装常用命令工具与 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
,使用默认编辑器编辑该文件
在末尾粘贴如下环境变量并保存
# 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
模板虚拟机安装软件包
解压 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
如下图所示
创建对应数据和日志文件夹
执行如下命令
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
如下图所示
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>
如下图所示
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>
如下图所示
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>
如下图所示
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>
如下图所示
slaves 配置文件修改
使用 MobaXterm 编辑 /opt/hadoop/etc/hadoop/slaves
文件
清空文件中的内容,然后配置如下内容:
master1
master2
slave1
如下图所示
解压 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
环境变量检查
请你确保已在环境变量配置文件中已添加有如下四个环境变量配置
生效环境变量配置
执行如下命令使环境变量生效
source /etc/profile
关闭虚拟机
输入 poweroff
命令关闭虚拟机
拍摄模板虚拟机快照
在VMware中选择虚拟机右键->快照->拍摄快照
输入快照名称确定即可
复制业务虚拟机
选择基础模板后点击下一页
默认链接克隆即可,但是此处注意,模板虚拟机不要删除,删除后将会导致其所有链接克隆的虚拟机不可使用
修改虚拟机的名称及位置
重复如上步骤,再克隆两台虚拟机,虚拟机名称分别为 master2 和 slave1
完成后如下图所示
从此刻起 CentOS7_formwork 虚拟机将不再进行启动,仅仅做模板虚拟机使用
配置虚拟机主机名
分别启动三台虚拟机,登录后输入 nmtui
命令选择设置主机名(Set system hostname)回车
输入虚拟机对应的主机名后回车,完成设置后退出nmtui,输入命令 reboot
命令重启虚拟机
三台虚拟机重复如上步骤,三台虚拟机的主机名分别是 master1``master2``slave1
重启后我们可以看到主机名已经变成我们设定的内容
配置三台虚拟机 MobaXterm 连接
因为模板虚拟机中我们已经开启了 root 用户 ssh 登录权限,因此直接在 MobaXterm 中进行session添加操作即可,添加完如下图所示
配置域名映射
此处请根据你自己的三台虚拟机IP进行修改
编辑三台虚拟机的 /etc/hosts 文件,根据规划的ip在末尾添加如下配置
192.168.234.129 master1
192.168.234.131 master2
192.168.234.132 slave1
如下图所示
创建 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
完成后如下图所示
拷贝公钥到主节点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
启动后如图所示
检查 zookeeper 状态
在三台虚拟机分别执行如下命令
zkServer.sh status
如下图所示
查看三台节点zookeeper状态可以发现,一台节点为leader,两台为follower
格式化文件系统
在主节点下执行如下命令:
hdfs namenode -format
启动和关闭 Hadoop 集群
start-dfs.sh
或stop-dfs.sh
启动或关闭所有HDFS服务进程start-yarn.sh
或stop-yarn.sh
启动或关闭所有YARN服务进程start-all.sh
或stop-all.sh
指令,直接启动或关闭整个Hadoop集群服务
启动和关闭 HBase 集群
start-hbase.sh
或stop-hbase.sh
指令,直接启动或关闭整个HBase集群服务
安装完成后验证信息
Hadoop 监控Web端口
8088端口
50070端口
HBase Web端口
16010 端口
请自行浏览器访问进行验证
HBase交互式会话控制台验证
master1 节点执行:hbase shell
能进入控制台,且能看到无 error 即可
如遇问题,欢迎留言,予以指正!
更多推荐
所有评论(0)