一键安装 Hadoop 3.3.6 自动化脚本详解 | CSDN 教程(含 JAVA_HOME 自动配置)

适用系统:CentOS / Ubuntu / 其他主流 Linux 发行版
目标版本:Apache Hadoop 3.3.6(稳定 LTS 版本)
安装路径/opt/hadoop
前提条件:已安装完整 JDK(非 JRE),并正确设置JAVA_HOME环境变量


在大数据生态中,Hadoop 是分布式存储与计算的基石。然而手动部署 Hadoop 涉及下载、解压、环境变量配置、hadoop-env.sh修改等多个步骤,稍有不慎就会导致“命令找不到”或“Java home not set”等错误。

本文提供一个全自动 Bash 安装脚本,可一键完成 Hadoop 3.3.6 的下载、安装、环境变量配置及 Java 路径注入,极大提升部署效率,特别适合开发测试环境快速搭建或自动化运维场景。


📌 脚本核心功能亮点

  • ✅ 强制 root 权限运行(确保/opt/可写)
  • ✅ 严格校验JAVA_HOME是否指向完整 JDK(需包含javajps
  • ✅ 自动从 Apache 官方镜像下载 Hadoop 3.3.6
  • ✅ 避免重复下载.tar.gz文件(检查/tmp/
  • ✅ 避免重复解压(检测/opt/hadoop或原始目录是否存在)
  • 智能写入/etc/profile环境变量(防止重复添加)
  • 自动修改hadoop-env.sh中的JAVA_HOME(支持注释行替换)
  • ✅ 安装后自动验证hdfs version是否可用

📜 完整安装脚本

将以下内容保存为install_hadoop.sh

#!/bin/bash# 自动安装 Hadoop 并配置 JAVA_HOMEset-eHADOOP_VERSION="3.3.6"HADOOP_INSTALL_DIR="/opt/hadoop"echo"=== Hadoop$HADOOP_VERSION自动安装脚本 ==="# 检查是否为 root 用户if["$EUID"-ne0];thenecho"❌ 请以 root 用户运行此脚本。"exit1fi# 检查 JAVA_HOME 是否设置if[-z"$JAVA_HOME"];thenecho"❌ JAVA_HOME 未设置,请先设置完整 JDK 的 JAVA_HOME"exit1fi# 检查 bin 目录下是否有 java 和 jpsif[!-x"$JAVA_HOME/bin/java"]||[!-x"$JAVA_HOME/bin/jps"];thenecho"❌ JAVA_HOME 指向的目录不完整,缺少 java 或 jps,请使用完整 JDK"exit1fi# 下载 Hadoop 包(如不存在)if[!-f"/tmp/hadoop-$HADOOP_VERSION.tar.gz"];thenecho">>> 正在下载 Hadoop$HADOOP_VERSION..."wget-q https://downloads.apache.org/hadoop/common/hadoop-$HADOOP_VERSION/hadoop-$HADOOP_VERSION.tar.gz -P /tmpelseecho">>> 已存在 /tmp/hadoop-$HADOOP_VERSION.tar.gz,跳过下载。"fi# 检查是否已安装 Hadoopif[-d"$HADOOP_INSTALL_DIR"]||[-d"/opt/hadoop-$HADOOP_VERSION"];thenecho">>> 检测到 Hadoop 目录已存在,跳过解压步骤。"elseecho">>> 解压 Hadoop..."tar-zxf /tmp/hadoop-$HADOOP_VERSION.tar.gz -C /opt/mv-f /opt/hadoop-$HADOOP_VERSION$HADOOP_INSTALL_DIRfi# 写入环境变量(避免重复添加)if!grep-q"HADOOP_HOME"/etc/profile;thenecho">>> 写入 /etc/profile 环境变量..."cat>>/etc/profile<<EOF # Hadoop 环境变量 export JAVA_HOME=$JAVA_HOMEexport HADOOP_HOME=$HADOOP_INSTALL_DIRexport PATH=\$PATH:\$JAVA_HOME/bin:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin EOFfi# 修改 Hadoop 的 Java 环境配置echo">>> 配置 hadoop-env.sh ..."HADOOP_ENV_FILE="$HADOOP_INSTALL_DIR/etc/hadoop/hadoop-env.sh"# 如果文件中已有 export JAVA_HOME,则更新为当前值;否则追加一行ifgrep-q"^export JAVA_HOME=""$HADOOP_ENV_FILE";thensed-i"s|^export JAVA_HOME=.*|export JAVA_HOME=$JAVA_HOME|""$HADOOP_ENV_FILE"elifgrep-q"^# export JAVA_HOME=""$HADOOP_ENV_FILE";thensed-i"s|^# export JAVA_HOME=.*|export JAVA_HOME=$JAVA_HOME|""$HADOOP_ENV_FILE"elseecho"export JAVA_HOME=$JAVA_HOME">>"$HADOOP_ENV_FILE"fi# 安全加载系统环境变量if[-f /etc/profile];thensource/etc/profile||truefi# 测试 Hadoop 是否可用echo">>> 验证 Hadoop 安装..."ifhdfs version&>/dev/null;thenecho"✅ Hadoop 安装成功!"hdfs versionelseecho"⚠️ Hadoop 安装完成,但无法运行 hdfs,请检查日志。"fiecho"=== Hadoop$HADOOP_VERSION安装完成 ==="

▶️ 使用步骤

1. 确保已安装 JDK 并设置JAVA_HOME

# 示例(OpenJDK 11)exportJAVA_HOME=/usr/lib/jvm/java-11-openjdk

⚠️重要:必须使用JDK(含jps工具),仅 JRE 会导致脚本报错!

2. 保存脚本并赋予执行权限

sudoviminstall_hadoop.shchmod+x install_hadoop.sh

3. 以 root 身份运行(关键!)

sudo-E ./install_hadoop.sh

🔔 注意:使用-E参数可保留当前用户的环境变量(尤其是JAVA_HOME),否则 sudo 会清空环境变量导致脚本失败!

4. 验证安装结果

source/etc/profile# 若当前 shell 未生效hdfs version

预期输出:

Hadoop 3.3.6 ...

🔧 脚本关键技术点解析

1.sudo -E的必要性

普通sudo会重置环境变量,导致$JAVA_HOME为空。-E选项保留调用者的环境变量,确保脚本能读取到正确的 JDK 路径。

2.智能修改hadoop-env.sh

Hadoop 默认的hadoop-env.shJAVA_HOME是注释状态。脚本通过sed精准匹配三种情况:

  • 已取消注释 → 直接替换
  • 仍为注释 → 取消注释并赋值
  • 完全不存在 → 追加新行

3.PATH 安全拼接

/etc/profile中同时加入$HADOOP_HOME/binsbin,确保hdfsyarnstart-dfs.sh等命令全局可用。


❓ 常见问题解答

Q1:为什么必须用 root?

A:脚本需写入/opt/(系统级目录)和/etc/profile(全局环境变量),普通用户无权限。

Q2:能否用于 Hadoop 3.4.x 或 3.3.4?

A:可以!只需修改脚本开头的HADOOP_VERSION="3.3.6"为对应版本号(需确认 Apache 官网存在该版本)。

Q3:安装后能直接启动集群吗?

A:不能。本脚本仅完成单机伪分布模式的基础环境搭建。要运行 HDFS/YARN,还需手动配置:

  • core-site.xml
  • hdfs-site.xml
  • yarn-site.xml
  • mapred-site.xml
  • 格式化 NameNode:hdfs namenode -format

✅ 总结

本脚本解决了 Hadoop 安装中最常见的两个痛点:

  1. 环境变量配置繁琐
  2. hadoop-env.sh中 Java 路径未设置导致启动失败

通过自动化处理,开发者可将精力集中在集群配置与业务开发上,而非重复的环境搭建。

💡建议组合使用
先运行 MySQL 5.7 自动安装脚本 → 再运行 Hive 自动安装脚本 → 最后运行本 Hadoop 脚本,即可快速构建 Hive + Hadoop + MySQL 元数据仓库环境!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1213780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亲测YOLOv13官版镜像,实时检测效果惊艳实录

亲测YOLOv13官版镜像&#xff0c;实时检测效果惊艳实录 最近在做智能安防系统的边缘部署方案&#xff0c;需要一个既快又准的目标检测模型。试过YOLOv8、v10、v12&#xff0c;但总在精度和速度之间反复妥协。直到看到YOLOv13的论文摘要里那句“1.97ms延迟下实现41.6 AP”&…

Linux/Mac 一键自动配置 JAVA_HOME 环境变量(含 JDK 完整性校验)

适用系统&#xff1a;CentOS / RHEL / AlmaLinux 等基于 yum 的 Linux 发行版 目标 JDK 版本&#xff1a;OpenJDK 11&#xff08;完整开发包 java-11-openjdk-devel&#xff09; 核心功能&#xff1a;自动安装 JDK、智能识别路径、校验 javac/jps、更新 /etc/profile在部署 Had…

动手实操:我用科哥版ASR模型做了个实时语音记录小工具

动手实操&#xff1a;我用科哥版ASR模型做了个实时语音记录小工具 你有没有过这样的经历&#xff1a;开会时手忙脚乱记笔记&#xff0c;漏掉关键信息&#xff1b;采访对象语速快&#xff0c;录音回听耗时又费眼&#xff1b;临时灵感一闪而过&#xff0c;等掏手机打字&#xff…

亲测Qwen-Image-Layered:图像拆解为RGBA图层效果惊艳

亲测Qwen-Image-Layered&#xff1a;图像拆解为RGBA图层效果惊艳 摘要&#xff1a;Qwen-Image-Layered 是阿里通义实验室推出的图像结构化解析模型&#xff0c;能将单张输入图像智能分解为多个语义清晰、边界精准的RGBA图层。不同于传统抠图或分割工具&#xff0c;它不依赖人工…

Hive 4.0.1 自动安装脚本详解:一键部署 + 环境变量配置(适用于 Linux)

适用系统&#xff1a;CentOS / Ubuntu / 其他主流 Linux 发行版 前提条件&#xff1a;已安装完整 JDK&#xff08;非 JRE&#xff09;&#xff0c;并正确设置 JAVA_HOME 目标版本&#xff1a;Apache Hive 4.0.1 安装路径&#xff1a;/opt/hive 在大数据开发与运维中&#xff0c…

一键安装 MySQL 5.7(CentOS 7)自动化脚本详解

适用系统&#xff1a;CentOS 7 / RHEL 7 目标版本&#xff1a;MySQL 5.7&#xff08;官方社区版&#xff09; 安装方式&#xff1a;通过 MySQL 官方 Yum 仓库 特点&#xff1a;自动导入 GPG 密钥、跳过重复安装、获取初始密码、验证服务状态 在 Linux 环境下部署 MySQL 是大数据…

一文讲清Glyph工作原理,小白也能听懂

一文讲清Glyph工作原理&#xff0c;小白也能听懂 1. Glyph到底在解决什么问题&#xff1f; 你有没有遇到过这样的情况&#xff1a; 想让AI读完一篇20页的PDF报告再回答问题&#xff0c;结果刚输到第3页&#xff0c;模型就提示“超出上下文长度”&#xff1f; 或者把一份合同全…

没有发布会,GPT Image 1.5 凌晨发布,实测与Nano Banana2相比,各有优势,但也一言难尽... - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

语音情感识别入门指南,Emotion2Vec+镜像开箱即用

语音情感识别入门指南&#xff0c;Emotion2Vec镜像开箱即用 1. 为什么你需要语音情感识别&#xff1f; 你有没有遇到过这样的场景&#xff1a; 客服系统听不出用户是生气还是着急&#xff0c;机械回复让问题升级&#xff1b;在线教育平台无法判断学生是否困惑、走神或投入&a…

手把手教你安装verl并验证是否成功(附截图)

手把手教你安装verl并验证是否成功&#xff08;附截图&#xff09; 1. 为什么需要 verl&#xff1f;一句话说清它的价值 你可能已经听说过 PPO、GRPO 这些强化学习算法&#xff0c;也试过用 HuggingFace Transformers 做 LLM 微调。但当你真正想做LLM 后训练&#xff08;RLH…

5分钟上手CAM++语音识别系统,科哥镜像让说话人验证超简单

5分钟上手CAM语音识别系统&#xff0c;科哥镜像让说话人验证超简单 1. 这不是语音转文字&#xff0c;是“听声辨人”的黑科技 你有没有遇到过这些场景&#xff1f; 公司门禁系统需要确认是不是本人在说话&#xff0c;而不是录好的音频在线考试平台想验证答题者是否和注册时是…

Multisim14.2安装教程:如何绕过常见权限问题(操作指南)

以下是对您提供的博文《Multisim 14.2 安装技术解析:权限机制、系统兼容性与工程环境部署实践》的 深度润色与专业重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹 :语言自然、节奏张弛有度,像一位在高校实验室带过十几届学生的资深EDA工程师在和你面对面…

零基础入门大模型!Qwen3-1.7B微调保姆级教程

零基础入门大模型&#xff01;Qwen3-1.7B微调保姆级教程 你是不是也想过&#xff1a;不用懂太多原理&#xff0c;也能亲手让一个大模型听懂你的需求、解决你的专业问题&#xff1f;比如让它帮你写行业报告、回答客户咨询、生成产品文案&#xff0c;甚至成为你专属的医学/法律/…

亲测有效!Qwen-Image-Layered让图片编辑像搭积木一样简单

亲测有效&#xff01;Qwen-Image-Layered让图片编辑像搭积木一样简单 你有没有过这样的经历&#xff1a;想把一张产品图里的背景换成纯白&#xff0c;结果抠图边缘毛边严重&#xff1b;想给海报里的人物换个衣服颜色&#xff0c;却连带把皮肤色调也拉偏了&#xff1b;或者想微…

显存不足怎么办?Live Avatar低配运行解决方案

显存不足怎么办&#xff1f;Live Avatar低配运行解决方案 1. 为什么你的显卡跑不动Live Avatar&#xff1f; 你是不是也遇到过这样的情况&#xff1a;明明手头有5张RTX 4090&#xff0c;每张24GB显存&#xff0c;加起来120GB&#xff0c;结果启动Live Avatar时还是报错“CUDA…

基于Python的轻量级上位机开发:快速理解流程

以下是对您提供的博文内容进行 深度润色与结构重构后的专业级技术文章 。全文严格遵循您的所有要求: ✅ 彻底去除AI痕迹,语言自然、真实,如一位资深嵌入式工程师在技术博客中娓娓道来; ✅ 删除所有程式化标题(如“引言”“总结与展望”),代之以逻辑连贯、层层递进的…

传统数据驱动时序建模 vs 3M 机制对齐建模

在流程工业人工智能应用中&#xff0c;时序模型是最常见、也是最容易“成功部署却难以解释”的技术形态。围绕其建模范式&#xff0c;可以区分出两种具有根本差异的方法路径&#xff1a;传统数据驱动时序建模与基于新机械主义 3M 准则的机制对齐建模。二者在建模起点、解释对象…

批量执行任务:Open-AutoGLM进阶使用技巧

批量执行任务&#xff1a;Open-AutoGLM进阶使用技巧 摘要&#xff1a;本文聚焦 Open-AutoGLM 的高阶工程实践&#xff0c;重点解析如何高效批量执行多任务、构建可复用的自动化流程、规避常见陷阱并提升稳定性。不讲原理&#xff0c;不重复部署步骤&#xff0c;只讲你真正需要的…

时间戳命名防覆盖:每次输出结果独立保存

时间戳命名防覆盖&#xff1a;每次输出结果独立保存 在OCR文字检测的实际应用中&#xff0c;一个看似微小却至关重要的细节常常被忽视&#xff1a;结果文件的保存方式。当你连续运行多次检测任务——比如调试不同阈值、对比多张图片、或批量处理一批文档时&#xff0c;如果所有…

多表环境下触发器的创建和使用统一审计策略:实践分享

以下是对您提供的博文内容进行 深度润色与工程化重构后的版本 。整体风格更贴近一位资深数据库架构师在技术社区的实战分享:语言自然流畅、逻辑层层递进、重点突出、去AI感强,同时大幅增强可读性、教学性和落地指导价值。全文已彻底去除模板化标题、空洞套话和冗余结构,代…