Hadoop-3.3.5 自动安装
Hadoop-3.3.5 自动安装脚本
为了方便数据科学与大数据技术的 hadoop-3.3.5 安装与配置
目前适用于新安装的纯净虚拟机,未配置冲突检测..
所以安装的话请使用全新创建的机器以避免错误...
如何使用
ssh localhost
输入你目前用户的密码exit
退出当前ssh终端(此举是为自动建立.ssh文件夹并记录known_hosts文件)- 然后将下列代码复制进
hadoop_create.sh
中 (vim hadoop_create.sh
) chmod +x hadoop_create.sh
(为该文件添加可执行权限)- 在你保存该文件的文件夹里输入
./hadoop_create.sh
,启动该脚本。
#!/bin/bash
# Set up Java下载链接、目录和Java安装目录
download_url_java="https://d6.injdk.cn/openjdk/openjdk/21/openjdk-21.0.1_linux-x64_bin.tar.gz"
download_dir="$HOME/Download"
java_install_dir="$HOME/JavaRuntime"
# 设置SSH密钥和目录
ssh_key_dir="$HOME/.ssh"
ssh_key_file="$ssh_key_dir/id_rsa"
# 设置Hadoop下载链接、目录和Hadoop安装目录
hadoop_download_url="https://mirrors.aliyun.com/apache/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz?spm=a2c6h.25603864.0.0.39f2a91e2jC9Is"
hadoop_download_dir="$download_dir"
hadoop_install_dir="$HOME/HadoopRuntime"
# 创建Hadoop数据目录结构
hadoop_tmp_dir="$hadoop_install_dir/data/tmp"
hadoop_datanode_dir="$hadoop_install_dir/data/datanode"
hadoop_namenode_dir="$hadoop_install_dir/data/namenode"
mkdir -p "$hadoop_tmp_dir"
mkdir -p "$hadoop_datanode_dir"
mkdir -p "$hadoop_namenode_dir"
# 生成SSH密钥并添加到authorized_keys
echo '========================================='
echo '= ='
echo '= ='
echo '= Now is Configure the SSH ='
echo '= ='
echo '= ='
echo '= --- YQT ='
echo '= ='
echo '========================================='
if [ ! -f "$ssh_key_file" ]; then
mkdir -p "$ssh_key_dir"
ssh-keygen -t rsa -f "$ssh_key_file" -N ""
cat "$ssh_key_file.pub" >> "$ssh_key_dir/authorized_keys"
echo "SSH密钥对已生成并添加到authorized_keys."
else
echo "SSH密钥对已存在,未执行生成步骤."
fi
# 确保Download目录存在
mkdir -p "$download_dir"
echo '========================================='
echo '= ='
echo '= ='
echo '= Now is Configure the Java Runtime ='
echo '= ='
echo '= ='
echo '= --- YQT ='
echo '= ='
echo '========================================='
# 使用wget下载Java文件
wget "$download_url_java" -P "$download_dir" -O "$download_dir/jdk-21_linux-x64_bin.tar.gz"
# 检查Java下载是否成功
if [ $? -eq 0 ]; then
echo "Java 21下载成功,已保存在$download_dir 目录下."
# 创建Java安装目录
mkdir -p "$java_install_dir"
# 解压Java文件
tar -xzvf "$download_dir/jdk-21_linux-x64_bin.tar.gz" -C "$java_install_dir"
# 配置Java环境变量
echo "export JAVA_HOME=$java_install_dir/jdk-21.0.1" >> "$HOME/.bashrc"
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> "$HOME/.bashrc"
# 使配置生效
source "$HOME/.bashrc"
echo "Java 21已安装到$java_install_dir 目录,并已配置到~/.bashrc中."
else
echo "Java 21下载失败."
fi
# 下载和安装Hadoop
# 使用wget下载Hadoop文件
echo '========================================='
echo '= ='
echo '= ='
echo '= Now is Configure the Hadoop. ='
echo '= ='
echo '= ='
echo '= --- YQT ='
echo '= ='
echo '========================================='
wget "$hadoop_download_url" -P "$hadoop_download_dir"
# 检查Hadoop下载是否成功
if [ $? -eq 0 ]; then
echo "Hadoop 3.3.5下载成功,已保存在$download_dir 目录下."
# 创建Hadoop安装目录
mkdir -p "$hadoop_install_dir"
# 解压Hadoop文件
tar -xzvf "$hadoop_download_dir/hadoop-3.3.5.tar.gz" -C "$hadoop_install_dir" --strip-components=1
echo "Hadoop 3.3.5已安装到$hadoop_install_dir 目录."
# 配置core-site.xml
core_site_file="$hadoop_install_dir/etc/hadoop/core-site.xml"
cat <<EOL > "$core_site_file"
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>$hadoop_tmp_dir</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
EOL
# 配置hdfs-site.xml
hdfs_site_file="$hadoop_install_dir/etc/hadoop/hdfs-site.xml"
cat <<EOL > "$hdfs_site_file"
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:$hadoop_namenode_dir</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:$hadoop_datanode_dir</value>
</property>
</configuration>
EOL
echo '========================================='
echo '= ='
echo '= ='
echo '= Now is Configure namenode and ='
echo '= datanode.... ='
echo '= ='
echo '= --- YQT ='
echo '= ='
echo '========================================='
# 配置hadoop-env.sh
hadoop_env_file="$hadoop_install_dir/etc/hadoop/hadoop-env.sh"
echo "export JAVA_HOME=$java_install_dir/jdk-21.0.1" >> "$hadoop_env_file"
echo "Hadoop配置已完成."
# 格式化HDFS名称节点
$hadoop_install_dir/bin/hdfs namenode -format
echo "Hadoop配置已完成,HDFS名称节点已格式化."
else
echo "Hadoop 3.3.5下载失败."
fi
后续如何寻找安装地址
本脚本安装的
Hadoop
路径为当前用户家目录的 HadoopRuntime
下
Java
的安装路径为当前用户家目录的 JavaRuntime
下,版本为 Java21
,由微软编译版本。路径配置在~/.bashrc
中。如有更换版本需求可在~/.bashrc
中的 $JAVA_HOME
中更改路径。
补充知识
后续类似 start-dfs.sh
等脚本均可以用以下路径代为运行。
对比命令来自 Hadoop3.3.5安装教程_单机/伪分布式配置_厦大数据库实验室博客 (xmu.edu.cn)
# 厦门大学数据库实验室教程里这样输入命令
cd /usr/local/hadoop
./bin/hdfs namenode -format
此脚本安装的 Hadoop
可以这样
# 此脚本这样输入
~/HadoopRuntime/bin/hdfs namenode -format
这个命令是格式化名称节点,这个流程此脚本已经代为处理,此处只是举例。
再比如:
# 厦门大学数据库实验室教程里这样输入命令
cd /usr/local/hadoop
./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格
此脚本安装的 Hadoop
可这样启动
# 此脚本这样输入
~/HadoopRuntime/sbin/start-dfs.sh
【补充知识】是为了让不理解文件路径的朋友更友好的使用。
本文来自博客园,作者:Y&Qter,转载请注明原文链接:https://www.cnblogs.com/qiantaosama/p/17764065.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?