1 main steps
- Network Configuration
- Modify the hostname
- Turn off the firewall
- Close SELinux
- Installation jdk
- Increase user hadoop
- Configuring ssh trust
- Hadoop configuration
2 base environment to build
2.1 Configuration Ali cloud yum source
1) Installation sz rz tool for later upload and download files rz sz
yum install -y lrzsz
cp Centos- 7 .repo /etc/yum.repos.d/ cd /etc/yum.repos.d/ mv CentOS -Base.repo CentOS- Base.repo.bak mv Hundreds - 7 .repo CentOS Base.repo
5) execute the command yum update source
Clean All yum
# server package information downloaded to the local computer cached
yum makecache
yum Update -y
Configured.
2.2 installation of common software
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 ntp
2.3 turn off the firewall
2.4 Close SELinux
To restart the server before installing the software
Install JDK 2.5
2.5.1 JDK Download
2.5.2 JDK installation
Because it is rmp format file can be installed directly
rpm -ivh jdk-8u144-linux-x64.rpm
-ivh: installation progress during installation
JDK 2.5.3 configuration environment variable
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 #查看系统变量值 echo $PATH #检查JDK 配置情况 java -version
#命令: crontab -e 0 * * * * /usr/sbin/ntpdate time1.aliyun.com >> /tmp/autontpdate 2>&1
2.6 修改主安装常用软件主机名
hostnamectl set-hostname nn1.hadoop #修改完后用hostname可查看当前主机名 // hostname是计算机名 hostname
2.7 创建hadoop 用户并设置 hadoop 用户密码
#创建hadoop用户 useradd hadoop #给hadoop用户设置密码 000000
2.8 给hadoop用户,配置SSH密钥
2.8.1 通过普通方法添加hadoop用户在wheel组中
第一步。# useradd hadoop
2.8.2 配置hadoop用户的SSH免密
#切换到hadoop用户 su – hadoop #创建.ssh目录 mkdir ~/.ssh #生成ssh公私钥 ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' #输出公钥文件内容并且重新输入到~/.ssh/authorized_keys文件中 ,必须放置authorized_keys文件中才能被#linux识别,不然被认为是自己的公钥。 cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys #给~/.ssh文件加上700权限 chmod 700 ~/.ssh #给~/.ssh/authorized_keys加上600权限 chmod 600 ~/.ssh/authorized_keys
2.9 禁止非 whell 组用户切换到root,配置免密切换root
sed -i 's/#auth\t\trequired\tpam_wheel.so/auth\t\trequired\tpam_wheel.so/g' '/etc/pam.d/su'
sed -i 's/要被取代的字串/新的字串/g' '文件名'
-i :直接修改读取的文件内容,而不是输出到终端。
# 把“SU_WHEEL_ONLY yes”字符串追加到/etc/login.defs文件底部 echo "SU_WHEEL_ONLY yes" >> /etc/login.defs
tail /etc/login.defs 从文件底部查看
3) 添加用户到管理员,禁止普通用户su 到 root
#把hadoop用户加到wheel组里 #查看wheel组里是否有hadoop用户
4)用vuser1 用户验证一下,由于vuser1 没有在wheel 组里,所以没有 su - root 权限。
5)修改/etc/pam.d/su文件,将字符串“#auth\t\tsufficient\tpam_wheel.so”替换成“auth\t\tsufficient\tpam_wheel.so”
sed -i 's/#auth\t\tsufficient\tpam_wheel.so/auth\t\tsufficient\tpam_wheel.so/g' '/etc/pam.d/su'
验证免密码切换到 root 用户
2.10 配置hosts 文件
在克隆机器前,配置nn1 机器的 /etc/hosts 文件,文件内需要配置nn1、nn2、s1、s2、s3 所有机器的IP 和 主机名。修改/etc/hosts文件,vim /etc/hosts。追加以下内容,不要把之前的内容删掉。
192.168.142.180 nn1.hadoop 192.168.142.181 nn2.hadoop 192.168.142.182 s1.hadoop 192.168.142.183 s2.hadoop 192.168.142.184 s3.hadoop
2.11 克隆4台机器
执行完上面的命令,一个基础的linux系统就配置好了。然后把这个nn1.hadoop虚拟机导出,再根据这个导出的虚拟机创建4个linux系统。
其中:nn2.hadoop: 从节点
s1.hadoop、s2.hadoop、s3.hadoop:三个工作节点
并用hadoop用户,测试彼此之间是否能进行ssh通信。
2.11.1 虚拟机克隆
右键 nn1 机器→ 管理 → 克隆。
克隆完成后,需要给克隆的虚拟机配置静态IP。
2.11.1.1 配置静态IP
1)查看网卡硬件名称和基本信息
ip add
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="fbe09adb-60e9-4e66-be20-9104c63a50c2" DEVICE="ens33" ONBOOT="yes" IPADDR=192.168.92.131 PREFIX=24 GATEWAY=192.168.92.2 DNS=192.168.92.2
需要修改的内容,配置完的网卡文件
配置完后,用systemctl restart network.service重启网络服务,当前的ssh就连接不上了,是因为网络IP被改变成你自己设置的静态IP。
用 ip add 查看网卡信息
2.11.1.2 配置 /etc/resolv.conf 的 nameserver
2.11.1.3 停止掉NetworkManager服务
2.11.2 修改每个机器的主机名
hostnamectl set-hostname nn2.hadoop hostnamectl set-hostname s1.hadoop hostnamectl set-hostname s2.hadoop hostnamectl set-hostname s3.hadoop