1、准备机器5台nn1,nn2,s1,s2,s3:
nameNode(nn1,nn2)
dataNode(s1,s2,s3)
journalNode(s1,s2,s3)
zookeeper(nn1,nn2,s1)
2、yum阿里源下载并修改 http://mirrors.aliyun.com/repo/Centos-7.repo
cp Centos-7.repo /etc/yum.repos.d/
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
mv Centos-7.repo CentOS-Base.repo
yum clean all
yum makecache
yum update -y
3、安装Linux环境必备工具
yum install -y lrzsz
yum -y install psmisc
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
4、关闭防火墙
查看防火墙状态:firewall-cmd --state
关闭防火墙:systemctl stop firewalld.service
禁止防火墙开机启动: systemctl disable firewalld.service
查看服务是否开机启动: systemctl is-enabled firewalld.service
5、关闭SELINUX
/usr/sbin/sestatus -v
vim /etc/selinux/config
修改SELINUX=disabled
reboot
/usr/sbin/sestatus -v 查看selinux的修改状态
6、安装JDK——尽量安装1.8高版本的
rpm -ivh jdk-8u144-linux-x64.rpm
配置jdk环境变量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
env发现有JAVA_HOME则为成功
7、修改5台机器名称。
hostnamectl set-hostname nn1
hostnamectl set-hostname nn2
hostnamectl set-hostname s1
hostnamectl set-hostname s2
hostnamectl set-hostname s3
查看主机名称修改结果hostname
8、创建hadoop用户
#创建hadoop用户
useradd hadoop
#给hadoop用户设置密码
hadoop123
9、给hadoop用户,配置SSH密钥,将生成的密钥发给每一个用户的hadoop用户的~/.ssh目录,使得多台机器间可以免密登录
#切换到hadoop用户
su – hadoop
#创建.ssh目录
mkdir ~/.ssh
#生成ssh公私钥
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
#输出公钥文件内容并且重新输入到~/.ssh/authorized_keys文件中
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
#给~/.ssh文件加上700权限
chmod 700 ~/.ssh
#给~/.ssh/authorized_keys加上600权限
chmod 600 ~/.ssh/authorized_keys。
10、配置禁止非 whell 组用户切换到root
修改/etc/pam.d/su文件
sed -i 's/#auth\t\trequired\tpam_wheel.so/auth\t\trequired\tpam_wheel.so/g' '/etc/pam.d/su'
sed -i 's/#auth\t\tsufficient\tpam_wheel.so/auth\t\tsufficient\tpam_wheel.so/g' '/etc/pam.d/su'
例子:sed -i 's/要被取代的字串/新的字串/g' '文件名'
cp /etc/login.defs /etc/login.defs_back
echo "SU_WHEEL_ONLY yes" >> /etc/login.defs
gpasswd -a hadoop wheel
cat /etc/group |grep wheel
10、配置5台机器的hosts
vim /etc/hosts
192.168.1.21 nn1
192.168.1.22 nn2
192.168.1.23 s1
192.168.1.24 s2
192.168.1.25 s3
10、修改静态IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO="static"
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="dse12adb-60e9-4e66-be-9104a50c2"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.1.21
PREFIX=24
GATEWAY=192.168.1.2
DNS=192.168.1.2
改完自己测试一下外网是否通;
10、停止掉NetworkManager服务
systemctl stop NetworkManager.service 停止NetworkManager服务
systemctl disable NetworkManager.service 并设置成开机不启动
systemctl restart network.service 之后重启网络服务
最后验证所有机器之间ssh不需要密码!
结束!