搭建hadoop高可用集群
前置
将一台装好hadoop的虚拟机制作成.ovf格式
打开ovf新建虚拟机
进入虚拟机后,更改hostname
hostnamectl set-hostname hadoop151
bash
修改网络
vim /etc/sysconfig/network-script/ifcfg-ens33
重启网卡
systemctl restart network
//或
service network restart
做完后,记得将虚拟机的内存改小,防止4台虚拟机内存不够
集群搭建
设置
打开四台虚拟机
在/etc/hosts中将4台虚拟机的ip都写进去
Tips
可以使用命令拷贝到别的机器
scp /etc/hosts root@hadoop152:/etc/
scp /etc/hosts root@hadoop153:/etc/
scp /etc/hosts root@hadoop154:/etc/
关闭和禁用每台机器的防火墙
systemctl stop firewalld//关闭
systemctl disable firewalld//禁用
设置免密登录
生成密钥
ssh-keygen -t rsa -P ''
cd .ssh/
cat id_rsa.pub >> ./authorized_keys
//将本机的公钥拷入想要免密登录的机器
ssh-copy-id -i ./id_rsa.pub -p22 root@hadoop151
ssh-copy-id -i ./id_rsa.pub -p22 root@hadoop152
ssh-copy-id -i ./id_rsa.pub -p22 root@hadoop153
ssh-copy-id -i ./id_rsa.pub -p22 root@hadoop154
//测试免密登录
ssh -p22 root@hadoop151
ssh -p22 root@hadoop152
ssh -p22 root@hadoop153
ssh -p22 root@hadoop154
安装jdk
在一台机器运行自动安装脚本安装jdk
将安装的jdk复制到另外三台虚拟机中
scp -r ./soft/jdk180/ root@hadoop152:/opt/soft
scp -r ./soft/jdk180/ root@hadoop153:/opt/soft
scp -r ./soft/jdk180/ root@hadoop154:/opt/soft
//配置文件也传过去
scp -r /etc/profile root@hadoop152:/etc
scp -r /etc/profile root@hadoop152:/etc
scp -r /etc/profile root@hadoop152:/etc
安装zookeeper
将压缩包解压
tar -zxf zookeeper-3.4.5-cdh5.14.2.tar.gz -C /opt/soft
改名
mv /opt/soft/zookeeper-3.4.5-cdh5.14.2 /opt/soft/zk345
进入/opt/soft/zk345/conf目录
cp zoo_sample.cfg zoo.cfg
vim ./zoo.cfg
修改文件 第12行
dataDir=/opt/soft/zk345/datas
(保存退出后创建目录 mkdir /opt/soft/zk345/datas)
,添加29行
[root@hadoop151 conf]# cd /opt/soft/zk345/datas/
[root@hadoop151 datas]# echo "0" > myid
使用 zkServer.sh start
启动zookeeper
安装zk集群
hadoop151 hadoop152 hadoop153
zk0 zk1 zk2
vim /opt/soft/zk345/conf/zoo.cfg
增加这几行
删除datas下的文件
rm -rf /opt/soft/zk345/datas/*
将zk345拷贝过去
scp -r /opt/soft/zk345/ root@hadoop152:/opt/soft/
scp -r /opt/soft/zk345/ root@hadoop153:/opt/soft/
将环境变量也拷贝过去
scp /etc/profile root@hadoop152:/etc/
scp /etc/profile root@hadoop153:/etc/
scp /etc/profile root@hadoop154:/etc/
在151的/opt/soft/zk345/datas目录下
echo "0" > myid
在152的/opt/soft/zk345/datas目录下
echo "1" > myid
在153的/opt/soft/zk345/datas目录下
echo "2" > myid
然后启动三台机器
会随机选择一个当leader,另外三个当追随者
可以通过
zkCli.sh
进入工作空间
同步时间
yum install -y ntpdate
ntpdate time.windows.com
定时任务
crontab-e
*/10 * * * * /usr/sbin ntpdate time.windows.com
//或者跟服务器同步
*/10 * * * * /usr/sbin ntpdate -u hadoop151
service crond reload
service crond restart