- 安装epel-release
注:Extra Packages for Enterprise Linux是为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。相当于是一个软件仓库,大多数rpm包在官方 repository 中是找不到的)
[root@hadoop100 ~]# yum install -y epel-release
- 安装vim
[root@hadoop100 ~]# yum install -y vim
- 关闭防火墙,关闭防火墙开机自启
[root@hadoop100 ~]# systemctl stop firewalld
[root@hadoop100 ~]# systemctl disable firewalld.service
注意:在企业开发时,通常单个服务器的防火墙时关闭的。公司整体对外会设置非常安全的防火墙
- 创建sarah用户,并修改sarah用户的密码
[root@hadoop100 ~]# useradd sarah
[root@hadoop100 ~]# passwd sarah
- 配置sarah用户具有root权限,方便后期加sudo执行root权限的命令
[root@hadoop100 ~]# vim /etc/sudoers
修改/etc/sudoers文件,在%wheel这行下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
sarah ALL=(ALL) NOPASSWD:ALL
注意:sarah这一行不要直接放到root行下面,因为所有用户都属于wheel组,你先配置了sarah具有免密功能,但是程序执行到%wheel行时,该功能又被覆盖回需要密码。所以sarah要放到%wheel这行下面。
- 在/opt目录下创建文件夹,并修改所属主和所属组
(1)在/opt目录下创建module、software文件夹
[root@hadoop100 ~]# mkdir /opt/module
[root@hadoop100 ~]# mkdir /opt/software
(2)修改module、software文件夹的所有者和所属组均为sarah用户
[root@hadoop100 ~]# chown sarah:sarah /opt/module
[root@hadoop100 ~]# chown sarah:sarah /opt/software
(3)查看module、software文件夹的所有者和所属组
[root@hadoop100 ~]# cd /opt/
[root@hadoop100 opt]# ll
总用量 12
drwxr-xr-x. 2 sarah sarah 4096 5月 28 17:18 module
drwxr-xr-x. 2 root root 4096 9月 7 2017 rh
drwxr-xr-x. 2 sarah sarah 4096 5月 28 17:18 software
- 卸载虚拟机自带的JDK
- 注意:如果你的虚拟机是最小化安装不需要执行这一步
[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
8.修改主机名,以下以hadoop102举例说明
(1)修改主机名称
[root@hadoop100 ~]# vim /etc/hostname
hadoop102
(2)配置Linux服务器主机名称映射hosts文件,打开/etc/hosts
[root@hadoop100 ~]# vim /etc/hosts
添加如下内容
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
- 重启虚拟机
[root@hadoop100 ~]# reboot
10 修改windows的主机映射文件(hosts文件)
如果操作系统是window10,先拷贝出来,修改保存以后,再覆盖即可
①进入C:\Windows\System32\drivers\etc路径
②拷贝hosts文件到桌面
③打开桌面hosts文件并添加如下内容
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
④将桌面hosts文件覆盖C:\Windows\System32\drivers\etc路径hosts文件
-
编写集群分发脚本xsync
①在用的家目录/home/sarah下创建bin文件夹
[sarah@hadoop102 ~]$ mkdir bin
②在/home/sarah/bin目录下创建xsync文件,以便全局调用
[sarah@hadoop102 ~]$ cd /home/sarah/bin
[sarh@hadoop102 ~]$ vim xsync
在该文件中编写如下代码
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
③修改脚本xsync具有执行权限
[sarah@hadoop102 bin]$ chmod +x xsync
④测试脚本
[sarah@hadoop102 bin]$ xsync xsync
- SSH无密登录配置
(1)hadoop102上生成公钥和私钥
[sarah@hadoop102 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
(2)将hadoop102公钥拷贝到要免密登录的目标机器上
[sarah@hadoop102 .ssh]$ ssh-copy-id hadoop102
[sarah@hadoop102 .ssh]$ ssh-copy-id hadoop103
[sarah@hadoop102 .ssh]$ ssh-copy-id hadoop104
hadoop103,104依旧如此操作
13 JDK安装
- 解压JDK到/opt/module目录下
[sarah@hadoop102 software]# tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
- 配置JDK环境变量
(1)新建/etc/profile.d/my_env.sh文件
[sarah@hadoop102 module]# sudo vim /etc/profile.d/my_env.sh
添加如下内容,然后保存(:wq)退出
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
(2)让环境变量生效
[sarah@hadoop102 software]$ source /etc/profile.d/my_env.sh
- 测试JDK是否安装成功
[sarah@hadoop102 module]# java -version
如果能看到以下结果、则Java正常安装
java version "1.8.0_212"
- 分发JDK
[sarah@hadoop102 module]$ xsync /opt/module/jdk1.8.0_212/
- 分发环境变量配置文件
[sarah@hadoop102 module]$ sudo /home/sarah/bin/xsync /etc/profile.d/my_env.sh
- 分别在hadoop103、hadoop104上执行source
[sarah@hadoop103 module]$ source /etc/profile.d/my_env.sh
[sarah@hadoop104 module]$ source /etc/profile.d/my_env.sh
14 集群所有进程查看脚本
(1)在/home/sarah/bin目录下创建脚本xcall.sh
[sarah@hadoop102 bin]$ vim xcall.sh
(2)在脚本中编写如下内容
#! /bin/bash
for i in hadoop102 hadoop103 hadoop104
do
echo --------- $i ----------
ssh $i "$*"
done
(3)修改脚本执行权限
[sarah@hadoop102 bin]$ chmod 777 xcall.sh
(4)启动脚本
[sarah@hadoop102 bin]$ xcall.sh jps