和上篇一样的操作
查看代码
#!/bin/bash
# 确保以 root 用户运行
if [ "$(id -u)" -ne "0" ]; then
echo "请以 root 用户运行此脚本!"
exit 1
fi
# 定义目录和文件路径
SOFTWARE_DIR="/export/software"
SERVER_DIR="/export/servers"
HADOOP_TAR="hadoop-3.3.5.tar.gz"
HADOOP_DIR="hadoop-3.3.5"
HADOOP_SYMLINK="hadoop"
# 确保目标目录存在
if [ ! -d "$SOFTWARE_DIR" ]; then
echo "目录 $SOFTWARE_DIR 不存在,正在创建..."
mkdir -p "$SOFTWARE_DIR"
if [ $? -ne 0 ]; then
echo "创建目录 $SOFTWARE_DIR 失败。"
exit 1
fi
fi
if [ ! -d "$SERVER_DIR" ]; then
echo "目录 $SERVER_DIR 不存在,正在创建..."
mkdir -p "$SERVER_DIR"
if [ $? -ne 0 ]; then
echo "创建目录 $SERVER_DIR 失败。"
exit 1
fi
fi
# 切换到软件目录
cd "$SOFTWARE_DIR" || { echo "无法切换到目录 $SOFTWARE_DIR"; exit 1; }
# 检查 Hadoop 压缩包是否存在
if [ ! -f "$HADOOP_TAR" ]; then
echo "压缩包 $HADOOP_TAR 不存在,请上传该文件后再运行脚本。"
exit 1
fi
# 删除现有的 Hadoop 目录(如果存在)
if [ -d "$SERVER_DIR/$HADOOP_DIR" ]; then
echo "目录 $SERVER_DIR/$HADOOP_DIR 已存在,正在删除..."
rm -rf "$SERVER_DIR/$HADOOP_DIR" || { echo "删除 $HADOOP_DIR 失败"; exit 1; }
fi
if [ -d "$SERVER_DIR/$HADOOP_SYMLINK" ] || [ -L "$SERVER_DIR/$HADOOP_SYMLINK" ]; then
echo "符号链接或目录 $SERVER_DIR/$HADOOP_SYMLINK 已存在,正在删除..."
rm -rf "$SERVER_DIR/$HADOOP_SYMLINK" || { echo "删除符号链接 $HADOOP_SYMLINK 失败"; exit 1; }
fi
# 解压 Hadoop 包
echo "正在解压 $HADOOP_TAR 到 $SERVER_DIR..."
tar -zxvf "$HADOOP_TAR" -C "$SERVER_DIR" || { echo "解压失败"; exit 1; }
# 重命名解压后的 Hadoop 目录
if [ -d "$SERVER_DIR/$HADOOP_DIR" ]; then
echo "重命名 $HADOOP_DIR 为 $HADOOP_SYMLINK..."
mv "$SERVER_DIR/$HADOOP_DIR" "$SERVER_DIR/$HADOOP_SYMLINK" || { echo "重命名失败"; exit 1; }
else
echo "目录 $HADOOP_DIR 不存在,检查解压结果。"
exit 1
fi
# 配置 Hadoop 环境变量
PROFILE_FILE="/etc/profile"
echo "配置 Hadoop 环境变量..."
{
echo "# Hadoop 环境变量配置"
echo "export HADOOP_HOME=$SERVER_DIR/$HADOOP_SYMLINK"
echo "export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"
} >> "$PROFILE_FILE"
# 重新加载环境变量
echo "重新加载环境变量..."
source "$PROFILE_FILE" || { echo "无法重新加载环境变量配置"; exit 1; }
# 验证 Hadoop 是否安装成功
echo "验证 Hadoop 安装..."
hadoop version || { echo "Hadoop 安装失败"; exit 1; }
echo "Hadoop 安装和配置完成!"
运行完自己检测一下
如果有错更改,如图进行更改/etc/profile文件
标签:centos789,Hadoop,HADOOP,sh,echo,无脑,exit,SERVER,DIR From: https://www.cnblogs.com/zhangxiaozhang001/p/18421231