Ubuntu如何简化Hadoop操作流程
导读:在 Ubuntu 上简化 Hadoop 操作流程的可落地方案 一 环境标准化与一键变量 统一软件栈:安装 OpenJDK 8(或 OpenJDK 11)、SSH,创建专用 hadoop 用户并配置 sudo,为后续脚本化打好基础。 环境...
在 Ubuntu 上简化 Hadoop 操作流程的可落地方案
一 环境标准化与一键变量
- 统一软件栈:安装 OpenJDK 8(或 OpenJDK 11)、SSH,创建专用 hadoop 用户并配置 sudo,为后续脚本化打好基础。
- 环境变量一次到位(写入 ~/.bashrc 或 /etc/environment):
- 建议写法(示例路径,按实际修改):
- export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
- export HADOOP_HOME=/usr/local/hadoop
- export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
- export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 若脚本中仍报找不到 JAVA_HOME,可同时在 /etc/environment 中写入同名变量,避免会话继承问题。完成后执行:source ~/.bashrc。
- 建议写法(示例路径,按实际修改):
二 伪分布式最小配置与一键启停
- 只改 4 个核心文件即可跑通伪分布式(位于 $HADOOP_HOME/etc/hadoop/):
- core-site.xml
- fs.defaultFShdfs://localhost:9000
- hdfs-site.xml
- dfs.replication1
- dfs.namenode.name.dirfile:///usr/local/hadoop/tmp/dfs/name
- dfs.datanode.data.dirfile:///usr/local/hadoop/tmp/dfs/data
- mapred-site.xml(先 cp mapred-site.xml.template)
- mapreduce.framework.nameyarn
- yarn-site.xml
- yarn.nodemanager.aux-servicesmapreduce_shuffle
- core-site.xml
- 一键启停脚本(保存为 hadoopctl.sh):
- 内容:
- #!/usr/bin/env bash case “$1” in start) $HADOOP_HOME/bin/hdfs namenode -format -nonInteractive $HADOOP_HOME/sbin/start-dfs.sh $HADOOP_HOME/sbin/start-yarn.sh echo “HDFS: http://localhost:9870 YARN: http://localhost:8088” ; ; stop) $HADOOP_HOME/sbin/stop-yarn.sh $HADOOP_HOME/sbin/stop-dfs.sh ; ; status) jps ; ; *) echo “Usage: $0 { start|stop|status} ” exit 1 ; ; esac
- 赋权:chmod +x hadoopctl.sh
- 使用:
- ./hadoopctl.sh start
- ./hadoopctl.sh status
- ./hadoopctl.sh stop
- 内容:
- 首次启动前执行一次格式化;Web 界面:HDFS 9870、YARN 8088。
三 高频操作别名与工作流封装
- 在 ~/.bashrc 增加常用别名与函数,减少敲命令成本:
- alias hls=‘hdfs dfs -ls’
- alias hmkdir=‘hdfs dfs -mkdir -p’
- alias hput=‘hdfs dfs -put’
- alias hget=‘hdfs dfs -get’
- alias hrm=‘hdfs dfs -rm -r’
- alias hreport=‘hdfs dfsadmin -report’
- yarnapp() { yarn application -list | grep -i “$1”; }
- 使配置生效:source ~/.bashrc
- 典型工作流一键化(示例脚本 daily.sh):
- 内容:
- #!/usr/bin/env bash
set -e
hmkdir /user/$USER
hput ./data.csv /user/$USER/input.csv
yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-.jar wordcount
/user/$USER/input.csv /user/$USER/output_$(date +%F_%H%M%S) hls /user/$USER/output_
- #!/usr/bin/env bash
set -e
hmkdir /user/$USER
hput ./data.csv /user/$USER/input.csv
yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-.jar wordcount
- 赋权:chmod +x daily.sh & & ./daily.sh
- 内容:
- 常用运维命令速查:
- 查看 HDFS 健康与报告:hdfs dfsadmin -report
- 查看 YARN 应用:yarn application -list / yarn application -status / yarn application -kill
四 自动化安装脚本与集群扩展
- 一键安装脚本思路(适用于 Ubuntu 20.04/22.04,伪分布式):
- 预置:已安装 JDK,Hadoop 安装包与脚本置于 ~/。
- 脚本要点:创建 hadoop 用户、配置 sudo、安装 SSH 并开启免密(ssh-keygen + ssh-copy-id localhost)、解压 Hadoop、写入环境变量、写入 4 个核心配置文件、设置数据目录权限。
- 运行:首次以当前用户执行脚本,按提示切换到 hadoop 用户再次执行;完成后执行 hadoopctl.sh start 即可。
- 参考实践:社区已有面向 Ubuntu 的自动化脚本与示例,可直接改造使用(注意校验版本与路径)。
五 常见问题快速排查清单
- SSH 免密失败:确认 ~/.ssh/authorized_keys 权限为 600、~/.ssh 为 700,并测试 ssh localhost 无需口令。
- JAVA_HOME 未生效:除 ~/.bashrc 外,必要时写入 /etc/environment;或在 $HADOOP_HOME/etc/hadoop/hadoop-env.sh 中显式 export。
- 页面打不开:确认已启动 start-dfs.sh 与 start-yarn.sh,访问 http://localhost:9870(HDFS)与 http://localhost:8088(YARN)。
- 上传后看不到文件:确认已创建目标目录(如 /user/$USER),并使用 hdfs dfs -ls 检查;若权限不足,使用 hdfs dfs -chmod 调整。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu如何简化Hadoop操作流程
本文地址: https://pptw.com/jishu/789451.html
