1.环境
Linux操作系统:CentOS 7.2
JDK:jdk-7u79-linux-x64
虚拟机:VMware 12
2.创建用户
su root # 以 root 用户登录
useradd -m hadoop -s /bin/bash # 创建新用户hadoop
passwd hadoop #修改密码
vi sudo #hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题
增加hadoop ALL=(ALL) ALL
最后ESC :wq保存
3.配置网络
su hadoop #切换为hadoop用户
cd /etc/sysconfig/network-scripts
ls
ifcfg-eno16777728 ifdown-ppp ifup-ib ifup-Team
ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort
...
我的网卡是ifcfg-eno16777728,可能有所不同
可以使用ifconfig确定自己的网卡
vi ifcfg-eno16777728
配置IP我使用的是VMware NAT方式 (注:默认网关是GATEWAY="192.168.92.2")
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777728"
UUID="3b3d653d-81c2-44e6-afb2-b678f111a783"
DEVICE="eno16777728"
ONBOOT="yes"
IPADDR="192.168.92.101"
PREFIX="24"
GATEWAY="192.168.92.2"
DNS1="114.114.114.114"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_PRIVACY="no"
ESC :wq保存,重启
sudo /etc/init.d/network restart
修改hosts文件,增加下面行
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.92.101 master
192.168.92.102 slave2
192.168.92.103 salve3
将虚拟机克隆一下(注:创建完整克隆),重复以上步骤配置一下(我配的ip:192.168.92.101、192.168.92.102、192.168.92.103)
4.安装SSH、配置SSH无密码登陆
集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),一般情况下,CentOS 默认已安装了 SSH client、SSH server,打开终端执行如下命令进行检验:
rpm -qa | grep ssh
若需要安装,则可以通过 yum 进行安装
sudo yum install openssh-clients
sudo yum install openssh-server
此时会有如下提示(SSH首次登陆提示),输入 yes 。
尝试登录
ssh localhost
但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。
exit # 退出刚才的 ssh localhost
cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa # 会有提示,都按回车就可以
cat id_rsa.pub >> authorized_keys # 加入授权
chmod 600 ./authorized_keys # 修改文件权限
此时再用 ssh localhost
命令,无需输入密码就可以直接登录了(每台虚拟机上重复以上步骤)
这只是本机访问,不同电脑之间登录如下:
sudo vi /etc/ssh/sshd_config
大概在98行 把#去掉,ESC:wq,再执行下面命令
sudo service sshd restart
然后把各自虚拟机上生成的id_rsa.pub拷贝到其他电脑上
#192.168.92.101
hadoop@192.168.92.101:scp ~/.ssh/id_rsa.pub hadoop@192.168.92.102:~/.ssh/master.pub
hadoop@192.168.92.101:scp ~/.ssh/id_rsa.pub hadoop@192.168.92.103:~/.ssh/master.pub
#192.168.92.102
hadoop@192.168.92.102:scp ~/.ssh/id_rsa.pub hadoop@192.168.92.101:~/.ssh/slave02.pub
hadoop@192.168.92.102:scp ~/.ssh/id_rsa.pub hadoop@192.168.92.103:~/.ssh/slave02.pub
#192.168.92.103
hadoop@192.168.92.103:scp ~/.ssh/id_rsa.pub hadoop@192.168.92.101:~/.ssh/slave03.pub
hadoop@192.168.92.103:scp ~/.ssh/id_rsa.pub hadoop@192.168.92.102:~/.ssh/slave03.pub
cat slave2.pub >> authorized_keys
cat slave3.pub >> authorized_keys
重复以上步骤(注意自己操作的主机,文件名)
修改主机名:
sudo hostnamectl --static set-hostname master
sudo hostnamectl --static set-hostname slave2
sudo hostnamectl --static set-hostname slave3
重新连接就可以看到新的主机名了
5.测试
ssh master
ssh slave02
ssh slave03
此时会有如下提示(SSH首次登陆提示),输入 yes 。