Hadoop集群的部署(VM5台虚拟机) 【一】虛擬機搭建和配置ssh密鑰

用VM搭建五台虚拟机,部署Hadoop集群【一】虛擬機部署和配置ssh密鑰

部署规划:
五台服务器:
一个主节点:nn1.hadoop , master
一个从节点:nn2.hadoop , slave
三个工作节点 s1.hadoop s2.hadoop s3.hadoop

1) 安装VMware , 参考链接:

2) 安装虚拟机

1> 先去官网下载 CentOS-7-x83_Minimal-1810.iso文件
2>打开VMware,点击新建虚拟机
在这里插入图片描述
点击下一步,找到你的 .ios 映像文件,点击下一步
在这里插入图片描述
虚拟机名称 写 master ,选择你要安装的位置,最少要有66G的固态硬盘以上,不建议装在C盘,点击下一步
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这一步点击完成后就成功了
3>点击启动虚拟机
这一步它会问你要不要磁盘,我们已经安装了,点击"我已完成安装",然后等它开启
下面这一步英文好的可以选择默认的,英文不好左边下拉 选中文 简体中文 然后点击继续
在这里插入图片描述
在这里插入图片描述
下拉到最后,点击左右箭头,设置网络和主机名在这里插入图片描述
点击右上角按钮打开,然后截图,点击左上角Done按钮保存退出在这里插入图片描述
点击日期时间
然后点击左上角的设置按钮
在这里插入图片描述

在搜索框输入 time1.aliyun.com 点击+ 然后OK,然后点左上角完成 退出
在这里插入图片描述
点击安装位置 ,不用修改直接点击完成 退出来
在这里插入图片描述
在这里插入图片描述
然后点右下角 开始安装
在这里插入图片描述
点击root Password 进去 修改root密码
在这里插入图片描述
输入密码, 左上角Done 一定要记住root密码!要不然很难找回来
在这里插入图片描述
剩下就是等待它安装
在这里插入图片描述
点击重启
在这里插入图片描述
到此,安装完成

3) 配置虚拟机

1.打开SecureCRT或Xshell,建立谅解,设置会话模式
在这里插入图片描述
在这里插入图片描述
填写root密码:
在这里插入图片描述
点击选项–>会话选项
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置完成后,开始配制
2. 修改主机名

[root@localhost ~]# hostnamectl set-hostname nn1.hadoop
[root@localhost ~]# hostname
nn1.hadoop

在这里插入图片描述
3. 静态IP

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-ens33  ifdown-isdn      ifdown-tunnel  ifup-isdn    ifup-Team
ifcfg-lo     ifdown-post      ifup           ifup-plip    ifup-TeamPort
ifdown       ifdown-ppp       ifup-aliases   ifup-plusb   ifup-tunnel
ifdown-bnep  ifdown-routes    ifup-bnep      ifup-post    ifup-wireless
ifdown-eth   ifdown-sit       ifup-eth       ifup-ppp     init.ipv6-global
ifdown-ippp  ifdown-Team      ifup-ippp      ifup-routes  network-functions
ifdown-ipv6  ifdown-TeamPort  ifup-ipv6      ifup-sit     network-functions-ipv6
[root@localhost network-scripts]# vi ifcfg-ens33

在这里插入图片描述
UUID每台虚拟机都不一样,使用要复制出来
在这里插入图片描述
然后都删掉,粘贴下面的代码进去 ,IPADDR=“192.168.92.130” ip改成自己的 , UUID="f33f583a-e92e-4450-b379-5ed7fd5ba2d3"改成自己之前备份的

TYPE="Ethernet"
BOOTPROTO=static
IPADDR="192.168.92.136"
NETMASK="255.255.255.0"
GATEWAY="192.168.92.2"
DNS="192.168.92.2"
NM_CONTROLLED="no"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="ens33"
UUID="91006bae-b6f0-4eaf-9b11-37890fa4221b"
DEVICE="ens33"
ONBOOT="yes"

在这里插入图片描述
上面的DNS和GATEWAY参考之前的截图的DNS
在这里插入图片描述
:wq 退出保存

修改之后 要停止 networkManager 服务 这样才能上网

[root@localhost network-scripts]# systemctl stop NetworkManager.service

移出自动启动

[root@localhost network-scripts]# systemctl disable NetworkManager.service
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed symlink /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
[root@localhost network-scripts]# systemctl status NetworkManager.service
● NetworkManager.service - Network Manager
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; disabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2019-05-07 22:12:43 CST; 40s ago
     Docs: man:NetworkManager(8)
 Main PID: 6666 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/NetworkManager.service
           └─6992 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/r...

May 07 21:59:16 nn1.hadoop NetworkManager[6666]: <info>  [1557237556.0316] dhcp4...0
May 07 21:59:16 nn1.hadoop NetworkManager[6666]: <info>  [1557237556.0316] dhcp4...)
May 07 21:59:16 nn1.hadoop NetworkManager[6666]: <info>  [1557237556.0316] dhcp4...2
May 07 21:59:16 nn1.hadoop NetworkManager[6666]: <info>  [1557237556.0316] dhcp4...0
May 07 21:59:16 nn1.hadoop NetworkManager[6666]: <info>  [1557237556.0316] dhcp4...'
May 07 21:59:16 nn1.hadoop NetworkManager[6666]: <info>  [1557237556.0316] dhcp4...'
May 07 21:59:16 nn1.hadoop NetworkManager[6666]: <info>  [1557237556.0316] dhcp4...d
May 07 21:59:16 nn1.hadoop dhclient[6992]: bound to 192.168.92.130 -- renewal i...s.
May 07 22:12:43 nn1.hadoop systemd[1]: Stopping Network Manager...
May 07 22:12:43 nn1.hadoop systemd[1]: Stopped Network Manager.
Hint: Some lines were ellipsized, use -l to show in full.

查看 cat /etc/resolv.conf 有没有下面的内容
在这里插入图片描述
重启网络服务

[root@localhost network-scripts]# systemctl restart network.service

在这里插入图片描述
验证,也可以直接ping一下看看网络能不能通畅 如果IP地址跟自己配的对上了,能ping通说明静态IP配好了.ping的时候按 Ctrl+c 退出
在这里插入图片描述
在这里插入图片描述

  1. 关闭防火墙
    查看防火墙状态
[root@localhost network-scripts]# firewall-cmd --state
running

关闭防火墙

[root@localhost network-scripts]# systemctl stop firewalld.service
[root@localhost network-scripts]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

reboot重启后,查看一下

[root@nn1 ~]# firewall-cmd --state
not running
[root@nn1 ~]# systemctl is-enabled firewalld.service
disabled
  1. 关闭selinux
    修改成SELINUX=disabled
    在这里插入图片描述

4)配置Java环境

1.下载上传下载工具 lrzsz

yum -y install lrzsz

2.更改yum源
在这里插入图片描述
把上传上来的Centos-7.repo文件改成它原来的名 CentOS-Base_repo_bak
在这里插入图片描述
输入

yum clean all

yum makecache

yum  -y update

3.上传并安装JDK

在这里插入图片描述
查看是否安装成功
在这里插入图片描述
存储路径在 /usr/java/
在这里插入图片描述
4. 配置环境变量
把下面的代码加到 /etc/profile 文件尾部
先输入命令 vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_144
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

在这里插入图片描述
输入 source /etc/profile
在这里插入图片描述
5. 安装常用软件

yum install -y openssh-server vim gcc gcc-c++ glibc-headers bzip2-devel lzo-devel curl wget openssh-clients zlib-devel autoconf automake cmake libtool openssl-devel fuse-devel snappy-devel telnet unzip zip net-tools.x86_64 firewalld systemd ntpdate

6.配置定时任务
输入 crontab -e 进入文件编辑页面,加入下面代码

0 * * * * /usr/sbin/ntpdate time1.aliyun.com >> /tmp/autontpdate 2>&1

5) 创建Hadoop用户

在这里插入图片描述

6) 配置hosts文件

我们要搭建五台服务器,现在这台的IP是130,所有后面一次配成131,132,133,134

vi /etc/hosts

在这里插入图片描述
验证,能ping通
在这里插入图片描述

7) 给hadoop配置免密登录root用户

修改配置文件 vi /etc/pam.d/su
在这里插入图片描述

#%PAM-1.0
auth            sufficient      pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
auth            sufficient      pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
auth            required        pam_wheel.so use_uid
auth            substack        system-auth
auth            include         postlogin
account         sufficient      pam_succeed_if.so uid = 0 use_uid quiet
account         include         system-auth
password        include         system-auth
session         include         system-auth
session         include         postlogin
session         optional        pam_xauth.so

:wq 保存并退出
把hadoop用户加入到Wheel组里
用 cat /etc/group 或 cat /etc/group | grep wheel 命令查看有没有 wheel组 wheel相当于管理员

[root@nn1 ~]# gpasswd -a hadoop wheel
Adding user hadoop to group wheel
[root@nn1 ~]# cat /etc/group | grep wheel
wheel:x:10:hadoop

在这里插入图片描述
把“SU_WHEEL_ONLY yes”字符串追加到/etc/login.defs文件底部 意思是只有wheel组能切换

echo "SU_WHEEL_ONLY yes" >> /etc/login.defs 

在这里插入图片描述

8) 开始克隆

1.可以现在Hadoop创建 .ssh文件 并 赋 700 权限,这个也可以后面再配置
在这里插入图片描述
2.root用户下输入hutdown -h now关闭虚拟机

[root@nn1 ~]# shutdown -h now

3.克隆
右键虚拟机–>管理–>克隆…
在这里插入图片描述
下一步,下一步,选创建完整克隆
在这里插入图片描述
在这里插入图片描述
这里就克隆完一台虚拟机了,然后别着急开机,继续吧剩下的都克隆完,还有就是配置静态网卡IP之前,不能同时打开两个虚拟机,否则会冲突
下面就是按照上面的克隆方法克隆剩下的四台虚拟机
略…
虚拟机名分别为 master slave work1 work2 work3
在这里插入图片描述
克隆完后,一台一台的开启并配置,我先开启work3,开了其中任意一台虚拟机后,千万不能开启其他虚拟机,因为他们的IP现在都是192.168.92.130,会冲突!

9) 配置克隆的虚拟机

  1. 修改主机名
hostnamectl set-hostname s3.hadoop
  1. 配置静态网卡IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33

把IP 改成192.168.134,你们的按照自己第一台的IP名往下推算,我的第一台master IP 是192.168.130,这个是第五台,s3.Hadoop
在这里插入图片描述
:wq保存后,reboot重启

3.开启work2,继续配置
在这里插入图片描述
在这里插入图片描述
reboot 重启
4. 开启work1
在这里插入图片描述
reboot重启
5. 开启slave
在这里插入图片描述
reboot重启

开启master
链接master nn1:hadoop验证
在这里插入图片描述
五台机器都能ping通

10) SHH密钥配置

1.连接hadoop 用户
后期就不用root用户登录了,改用hadoop用户登录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.查看权限
权限要求:
hadoop 700 即 drwx------
.ssh 700 即 drwx------
authorized_keys 600 即 -rw-------

权限赋值 :
chmod [权限值] [目录或文件名]
例: chmod 700 .ssh
在这里插入图片描述
进入 .ssh 目录
输入 ssh-keygen -t rsa ,生成密钥和公钥文件
在这里插入图片描述
在这里插入图片描述
家目录下创建个ssh_key目录,用于存放各个服务器的 公钥authorized_keys 文件在这里插入图片描述
nn1 公钥生成完成
3.
ssh nn2.hadoop 进入nn2
在这里插入图片描述
把 文件传送到nn1的ssh_key目录斌重命名为nn2_key ,scp为远程传输命令

scp id_rsa.pub hadoop@nn1.hadoop:~/ssh_key/nn2_key

在这里插入图片描述
ssh s1.hadoop 进入s1.hadoop
在这里插入图片描述

scp id_rsa.pub hadoop@nn1.hadoop:~/ssh_key/s1_key
  1. ssh s2.hadoop
    在这里插入图片描述
  2. ssh s3.hadoop 进入s3.hadoop
    在这里插入图片描述
    到目前为止,所有的公都以不同的文件名传输到 nn1.hadoop 中 的家目录下的ssh_key目录下(~/ssh_key)
    在这里插入图片描述
  3. 这一步归类所有的服务器的公钥追加到 nn1的 .ssh 目录下的 authorized_keys 文件里
cat nn2_key >> ~/.ssh/authorized_keys

在这里插入图片描述
在这里插入图片描述
现在是吧所有的公钥都添加到 ~/.ssh/authorized_keys 这个文件里了
然后就是把 authorized_keys 这个文件添加到 各个虚拟机的 .ssh/ 目录下就成功了

scp authorized_keys hadoop@nn2.hadoop:~/.ssh/authorized_keys

上面这个命令有时候不太好用,可以自己编写shell程序,然后一起复制到各个虚拟机去
7. 配置完毕
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值