环境配置(三台)
👉机器配置
机器分布:一主二从 hadoop100, hadoop101, hadoop102
系统版本:Centos 7.4.1708
镜像版本:CentOS-7-x86_64-Minimal-1708.iso
虚拟机:VMWare 15
连接工具:XShell7
其他工具:jdk1.8
工具链接:https://pan.baidu.com/s/19qzgfufkSUXW5vlKlITgeg 提取码:86i7
👉系统环境设置
1.更新yum源**
安装wget命令
yum install -y wget
更新yum源(使用阿里云镜像源)
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
清空&生成缓存
yum clean all
yum makecache
yum安装常用命令
yum install -y vim lrzsz ntp rsync zip git gcc-c++ chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
2.设置hosts
vim /etc/hosts
#ip hostname 通过主机名访问ip
192.168.100.100 hadoop100
192.168.100.101 hadoop101
192.168.100.102 hadoop102
3.关闭防火墙&Selinux
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭Selinux
sed -i ‘s#enforcing#disabled#g’ /etc/selinux/config
4.ssh免密
在当前机器生成密钥(连摁三下回车)
ssh-keygen -t rsa
###拷贝公钥到其他两个机器上,输入root和密码123456(三台)
ssh-copy-id hadoop100
ssh-copy-id hadoop101
ssh-copy-id hadoop102
5.ntp时间同步
vim /etc/ntp.conf
hadoop100
server 127.127.1.0 ## 添加行
systemctl restart ntpd 重启服务
hadoop101,hadoop102
## 添加行:
server hadoop100
systemctl restart ntpd 重启服务
systemctl start ntpd 启动ntp
systemctl enable ntpd 开机自启
ntpdate -u hadoop100 手动同步
JDK安装
解压
tar -zxvf jdk-8u271-linux-x64.tar.gz -C /opt/
添加环境变量
vim /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_271
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
环境变量生效
source /etc/profile
批量执行脚本
vim /opt/script/all
#!/bin/bash
#批量执行脚本
for i in hadoop102 hadoop101 hadoop100
do
echo "****************** $i exec $1*********************"
ssh $i "source /etc/profile && $1"
done
chmod +x /opt/script/all
批量同步脚本
vim /opt/script/xsync
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop101 hadoop102
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
chmod +x /opt/script/xsync