一、基础配置
1、安装VMware tools
将其复制到桌面
注:遇到提示按 '回车' 键,遇到 'yes/no' 输入yes
安装完成Tools后的效果如图
2、修改root密码
3、更新 apt,安装vim编译器
apt-get update apt-get install vim
注:vim 编译器相对于 vi 编译器 对用户来说更友好,使用便捷,且有高亮关键字的功能
4、安装ssh服务
apt-get install openssh-server
5、修改ssh配置文件,允许root远程登录
vim /etc/ssh/sshd_config更改前:
更改后:
注:将 prohibit-password 更改为 yes
6、去掉初始询问
vi /etc/ssh/ssh_config更改前:
更改后:
7、关闭防火墙
ufw disable ufw status
8、环境配置
(1)修改hosts文件
vim /etc/hosts
(2)添加环境变量
vim /etc/profile(3)解压 jdk
tar -zxvf jdk1.8.0_221.tar.gz -C /usr/local/src/重命名其名称为 jdk
mv jdk1.8.0_221 jdk(4)hadoop配置
tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local/重命名其名称为hadoop
mv hadoop-2.7.1 hadoop在hadoop安装目录下创建 tmp 和 logs目录
在tmp目录下创建 data 和 name 和 journal 目录
进入hadoop配置文件目录进行修改配置文件
hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml yarn-env.sh slaves
其中hadoop-env.sh 与 yarn-env.sh 只需要修改其中的 jdk 路径
hadoop-env.sh
yarn-env.sh
注:yarn-env.sh 文件中jdk路径需要去掉注释,否则无法生效
core-site.xml
fs.defaultFS hdfs://mycluster hadoop.tmp.dir /usr/local/hadoop/tmp ha.zookeeper.quorum master:2181,slave1:2181,slave2:2181 ha.zookeeper.session-timeout.ms 30000 ms fs.trash.interval 1440 hdfs-site.xml
dfs.qjournal.start-segment.timeout.ms 60000 dfs.nameservices mycluster dfs.ha.namenodes.mycluster master,slave1 dfs.namenode.rpc-address.mycluster.master master:9000 dfs.namenode.rpc-address.mycluster.slave1 slave1:9000 dfs.namenode.http-address.mycluster.master master:50070 dfs.namenode.http-address.mycluster.slave1 slave1:50070 dfs.namenode.shared.edits.dir qjournal://master:8485;slave1:8485;slave2:8485/mycluster dfs.client.failover.proxy.provider.mycluster org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider dfs.ha.fencing.methods sshfence shell(/bin/true) dfs.permissions.enabled false dfs.support.append true dfs.ha.fencing.ssh.private-key-files /root/.ssh/id_rsa dfs.replication 2 dfs.namenode.name.dir /usr/local/hadoop/tmp/name dfs.datanode.data.dir /usr/local/hadoop/tmp/data dfs.journalnode.edits.dir /usr/local/hadoop/tmp/journal dfs.ha.automatic-failover.enabled true dfs.webhdfs.enabled true dfs.ha.fencing.ssh.connect-timeout 30000 ha.failover-controller.cli-check.rpc-timeout.ms 60000 mapred-site.xml
mapreduce.framework.name yarn mapreduce.jobhistory.address master:10020 mapreduce.jobhistory.webapp.address master:19888 yarn-site.xml
yarn.resourcemanager.ha.enabled true yarn.resourcemanager.cluster-id yrc yarn.resourcemanager.ha.rm-ids rm1,rm2 yarn.resourcemanager.hostname.rm1 master yarn.resourcemanager.hostname.rm2 slave1 yarn.resourcemanager.zk-address master:2181,slave1:2181,slave2:2181 yarn.nodemanager.aux-services mapreduce_shuffle yarn.log-aggregation-enable true yarn.log-aggregation.retain-seconds 86400 yarn.resourcemanager.recovery.enabled true yarn.resourcemanager.store.class org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore slaves
master slave1 slave2(5)zookeeper配置
解压zookeeper
tar -zxvf zookeeper-3.4.8.tar.gz -C /usr/local/src/重命名其名称为zookeeper
mv zookeeper-3.4.8 zookeeper在zookeeper安装目录下创建 logs 目录和 data 目录
在data目录下创建myid文件并写入内容 “1”
进入zookeeper/conf目录下,重命名 zoo_sample.cfg 为 zoo.cfg
编辑zoo.cfg文件
修改前:
修改后:
二、三台机器集群搭建
1、关机状态下克隆出另外两台虚拟机
2、三台机器分别修改静态IP
3、重启三台机器网络服务
service networking restart
4、内网与外网的检查
5、三台机器分别修改其主机名
hostnamectl set-hostname master hostnamectl set-hostname slave1 hostnamectl set-hostname slave2
6、修改其他两台机器zookeeper/data/myid文件分别为2和3
7、重启三台机器
reboot
8、设置ssh免密
生成密钥
ssh-keygen -t rsa分发密钥
ssh-copy-id 192.168.231.248 ssh-copy-id 192.168.231.249
9、使三台机器的环境变量生效
source /etc/profile
10、启动三台机器的zookeeper集群
bin/zkServer.sh start
bin/zkServer.sh status
11、格式化zookeeper在HA中的状态
bin/hdfs zkfc -formatZK
12、启动三台机器的 journalnode进程
sbin/hadoop-daemon.sh start journalnode
13、格式化namenode
bin/hdfs namenode -format
注:观察是否有报错信息,status是否为0,0即为初始化成功,1则报错,检查配置文件是否有误
14、启动hadoop所有进程
sbin/start-all.sh
15、格式化主从节点
复制namenode元数据到从节点
scp -r /usr/local/hadoop/tmp/* slave1:/usr/local/hadoop/tmp/ scp -r /usr/local/hadoop/tmp/* slave2:/usr/local/hadoop/tmp/
注:由于之前namenode,datanode,journalnode的数据全部存放在hadoop/tmp目录下,所以直接复制 tmp 目录至从节点
16、启动slave1的resourcemanager 和 namenode 进程
sbin/yarn-daemon.sh start resourcemanager
sbin/hadoop-daemon.sh start namenode
17、访问 resourcemanager 和 namenode 的web页面
18、杀死master端的namenode(模拟master宕机后HA的故障转移)
kill -9 (namenode进程号)
注: 可见,在naster宕机后,slave自动接替了master的工作,成为活跃状态,此为HA 的故障转移机制
19、重启master端的namenode进程,观察工作状态
sbin/hadoop-daemon.sh start namenode
注:可见,在master重新恢复状态后,slave依然为active状态,master为备用状态
链接参考
Centos搭建hadoopHA高可用https://blog.csdn.net/m0_54925305/article/details/121566611?spm=1001.2014.3001.5502HadoopHA工作机制高可用理论https://blog.csdn.net/m0_54925305/article/details/119838341?spm=1001.2014.3001.5502
更多环境搭建参见主页托马斯-酷涛的博客主页https://blog.csdn.net/m0_54925305?type=blog
每日一悟:将时间和精力投资于自己一定是一笔稳赚不赔的交易--托马斯
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)