安装高可用Hadoop生态 (一 ) 准备环境
为了学习Hadoop生态的部署和调优技术,在笔记本上的3台虚拟机部署Hadoop集群环境,要求保证HA,即主要服务没有单点故障,能够执行最基本功能,完成小内存模式的参数调整。
1. 准备环境
1.1. 规划
- 克隆3台服务器,主机名和IP如下
主机名 |
IP |
软件 |
hadoop |
192.168.154.128 |
原始虚拟机用于克隆 |
hadoop1 |
192.168.154.3 |
Zookeeper,journalnode Namenode, zkfc, Resourcemanager |
hadoop2 |
192.168.154.4 |
Zookeeper,journalnode Namenode, zkfc, Resourcemanager, DataNode,NodeManager |
hadoop3 |
192.168.154.5 |
Zookeeper,journalnode DataNode,NodeManager |
- 设置每台服务器的域名解析
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.154.3 hadoop1[1] 192.168.154.4 hadoop2 192.168.154.5 hadoop3
1.2. 准备软件包
名称 |
描述 |
ssh_auth |
设置互信的工具包 |
C3 |
集群管理效率工具,在集群范围执行shell命令 |
hadoop-2.7.3.tar.gz |
hadoop安装包 |
zookeeper-3.4.9.tar.gz |
zookeeper安装包 |
1.3. 设置互信
采用设置互信的工具,解压文件到目录
vi ./host
hadoop1
hadoop2
hadoop3
执行命令
./ssh_auth.sh hadoop hadoop ./host
验证:在hadoop1,hadoop2,hadoop3上分别登录三台机器,如果无需密码进入则正常
ssh hadoop1 exit ssh hadoop2 exit ssh hadoop3 exit
为了操作简单,也设置root用户的互信
./ssh_auth.sh root xxxxxx ./host
xxxxxx为root用户的密码
1.4. 安装C3
C3是Cluster Command & Control (C3) Tool Suite,是集群管理的效率工具,用于在集群服务器上通过ssh并行或者串行执行相同的命令。在Centos7上安装报告与filesystem-3.2-20.el7.x86_64冲突,所以需要强行安装,命令如下:
rpm -i c3-5.1.3-0.1.noarch.rpm --nodeps --force
安装完成后,在使用C3的节点创建/etc/c3.conf文件。内容如下:
cluster cloud { hadoop1:127.0.0.1 #head node dead remove-index-00 hadoop1 hadoop2 hadoop3 }
验证:切换回hadoop用户,执行cexec date
************************* cloud ************************* --------- hadoop1--------- ×××××××××× --------- hadoop2--------- ×××××××××× --------- hadoop3--------- ××××××××××
1.5. 创建目标目录
切换到root用户 (用su -,使得root的环境变量起作用)
cexec mkdir -p /opt/cloud cexec chown hadoop:hadoop /opt/cloud
切换到hadoop用户
#软件包的安装(解压缩的目标)目录 cexec mkdir -p /opt/cloud/packages #执行目录,是与安装包目录的软连接 cexec mkdir -p /opt/cloud/bin #配置文件目录,是与安装包目录中配置文件目录的软连接 cexec mkdir -p /opt/cloud/etc #数据目录 cexec mkdir -p /opt/cloud/data #日志目录 cexec mkdir -p /opt/cloud/logs
1.6. 配置Java环境
vi ~/.bashrc
增加
export JAVA_HOME=/usr/lib/jvm/java export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:$JRE_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH
即刻生效
source ~/.bashrc
复制到另外两台服务器
scp ~/.bashrc hadoop2:/home/hadoop scp ~/.bashrc hadoop3:/home/hadoop