这个是笔者大学时期的大数据课程使用三台CentOS7.6虚拟机搭建完全分布式集群的案例,已成功搭建完全分布式集群,并测试跑实例。
我在安装CentOS 7.6虚拟机后,我发现不能执行sudo命令,同时hadoop用户执行命令失败。
需要执行如下操作:
①先切换到root用户,否则权限不够
su root
②为sudoers配置文件添加写权限
chmod +w /etc/sudoers
③编辑文件
vim /etc/sudoers
添加:
hadoop ALL=(ALL) ALL
jam ALL=(ALL) ALL
④去掉权限:chmod +w /etc/sudoers
su切换成hadoop用户,你会发现sudo命令和使用hadoop执行的命令没问题了。
对于master主节点虚拟机
sudo vim /etc/hostname
将/etc/hostname里面内容修改为 LBJ(自定义,最好是master,易于区分),该虚拟机将作为主节点
重启一下,让修改生效
LBJ主节点机器更改主机名成功
对于slave01与slave02两个从节点虚拟机输入相同命令,将它们的主机名修改为slave01和slave02
slave01与slave02从节点机器修改主机名成功标志
三台机器上用ifconfig获取各自的ip地址
然后分别 sudo vim /etc/hosts,分别将ip和映射名加入各自的该文件中(其实只需要在master节点上加入三台机器的ip和映射名即可,其它机器加了也无妨)
192.168.25.134 LBJ
192.168.25.135 slave01
192.168.25.136 slave02
退出文件,并:wq
保存
后续需要验证ip映射是否成功,直接在任意机器ping各自的主机名
ping slave01
ping slave02
ping LBJ
ping slave02
ping slave01
ping LBJ
在master主节点上
cd /bin
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
在slave01和slave02上执行同样命令操作
以master为例,其它两台机器执行相同操作即可,其它两台机器一定要做相同操作!!!
在root目录下,
yum update
#更新yum指令,防止过期
yum -y install openssh-server
#安装openssh-server工具,一般自带
ssh LBJ
#测试登录是否需要ssh钥匙,同时在root下创建.ssh文件夹和里面写有ip和映射名的 known hosts文件
cd ~/.ssh
#进入/root/.ssh
rm ./id_rsa
#测试一下id_rsa文件存不存在,存在直接删除
ssh-keygen -t rsa
#指明该命令,一直按回车就好
cat ./id_rsa.pub >> ./authorized_keys
#将公钥放入authorized_keys中
ssh LBJ
#测试ssh免密登陆
在slave01和slave02节点上只要实现免密登陆,都会在 /root下创建.ssh文件夹
在master主节点机器上
scp ~/.ssh/id_rsa.pub root@slave01: /root/.ssh/
scp ~/.ssh/id_rsa.pub root@slave02: /root/.ssh/
认证密匙:/root/.ssh/authorized_keys
cd /root/.ssh
cat id_rsa.pub >> ~/.ssh/authorized_keys
rm id_rsa.pub
# 用完以后就可以删掉master上ssh slave1验证可以免密了
以上步骤选取scp的文件夹/root/.ssh,会将原本就含有机器自身的id_rsa.pub覆盖掉,所以,我们最好不要用/root/.ssh作为路径,自定义其它路径即可。
注意:
正常是下面的操作
scp ~/.ssh/id_rsa.pub root@master:/root/.ssh/
scp ~/.ssh/id_rsa.pub root@slave2:/root/.ssh/
正常是下面的操作
scp ~/.ssh/id_rsa.pub root@master:/root/.ssh/
scp ~/.ssh/id_rsa.pub root@slave2:/root/.ssh/
解决方法:
修ssh改配置文件,设置为允许root远程登录:
root@ubuntu:~# vim /etc/ssh/sshd_config
将PermitRootLogin prohibie-password 修改为:PermitRootLogin yes 即可。
保存退出,重启ssh服务:
root@ubuntu:~# /etc/init.d/ssh restart
再次尝试ssh 远程登录,成功登录。
三台CentOS7.6虚拟机搭建Hadoop完全分布式集群(一)笔记到此完结,笔者归纳、创作不易,大佬们给个3连再起飞吧