1011 Hadoop部署实践(任务一/二/三)
·
任务一:将之前练习过的命令做出一个shell脚本一键运行(三台同理)
1.创建脚本文件
1.1用vim直接创建并编辑
vim shell.sh
1.2编写脚本内容
#!/bin/bash
set -e
# 配置参数
NETWORK_CARD="ens33"
GATEWAY="192.168.88.2"
DNS1="8.8.8.8"
BASE_IP_PREFIX="192.168.88.10"
TOTAL_NODES=3
HADOOP_PASS="123456"
# 检查root权限
[ "$(id -u)" -ne 0 ] && echo "Please run with sudo" && exit 1
# 检查参数
[ -z "$1" ] && echo "Usage: $0 <node number 1-3>" && exit 1
NODE_NUM=$1
HOSTNAME="node${NODE_NUM}"
IP_ADDR="${BASE_IP_PREFIX}${NODE_NUM}"
# 验证节点编号范围
[ "$NODE_NUM" -lt 1 ] || [ "$NODE_NUM" -gt "$TOTAL_NODES" ] && echo "Number out of range" && exit 1
echo "======================================"
echo "Start configuring $HOSTNAME ($IP_ADDR)"
echo "======================================"
# 设置主机名
echo "1. Setting hostname to $HOSTNAME..."
hostnamectl set-hostname "$HOSTNAME"
echo "127.0.0.1 $HOSTNAME localhost" >>/etc/hosts
# 配置网络
echo "2. Configuring network interface $NETWORK_CARD..."
DEV=$NETWORK_CARD
nmcli con delete "$DEV" 2>/dev/null || true
nmcli con add type ethernet ifname "$DEV" con-name "$DEV" ip4 "$IP_ADDR/24" gw4 "$GATEWAY" ipv4.dns "$DNS1" ipv4.method manual
nmcli con up "$DEV"
# 关闭防火墙和SELinux
echo "3. Disabling firewall and SELinux..."
systemctl disable --now firewalld
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
# 创建hadoop用户
echo "4. Creating hadoop user..."
id hadoop &>/dev/null || (useradd hadoop && echo "$HADOOP_PASS" | passwd --stdin hadoop)
# 配置SSH密钥
echo "5. Configuring SSH keys..."
[ ! -f /root/.ssh/id_rsa ] && ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
echo "======================================"
echo "$HOSTNAME configuration completed!"
echo "IP Address: $IP_ADDR"
echo "Hostname: $HOSTNAME"
echo "Please reboot the system to apply all changes."
echo "======================================"
1.3保存脚本
1.4赋予脚本执行权限
chmod +x shell.sh
1.5运行
sudo ./shell.sh 1/2/3
1.6结果输出

1.7重启
sudo reboot
任务二:建多台VM
详见0924
任务三:在任务2的多台VM上跟任务1一样操作,然后测试免密登录
详见0917
更多推荐


所有评论(0)