阅读量:4
在 Ubuntu 上运行 Hadoop 程序的完整步骤
一 环境准备与安装
- 安装 Java(Hadoop 3.x 建议使用 OpenJDK 8 或 11):
- 安装命令:
sudo apt update && sudo apt install openjdk-11-jdk - 验证版本:
java -version
- 安装命令:
- 下载并解压 Hadoop(示例版本 3.3.1):
- 下载:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz - 解压与移动:
tar -xzf hadoop-3.3.1.tar.gz && sudo mv hadoop-3.3.1 /usr/local/hadoop
- 下载:
- 配置环境变量(写入
~/.bashrc或/etc/profile.d/hadoop.sh):- 内容:
export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop - 使生效:
source ~/.bashrc
- 内容:
- 说明:Hadoop 由 HDFS、YARN、MapReduce 组成,本流程以单机伪分布式为例,便于学习与开发。
二 配置 Hadoop 伪分布式
- 配置文件路径:
$HADOOP_CONF_DIR(即/usr/local/hadoop/etc/hadoop) - 核心配置示例:
- core-site.xml
fs.defaultFS hdfs://localhost:9000 - hdfs-site.xml
dfs.replication 1 dfs.namenode.name.dir /usr/local/hadoop/data/namenode - mapred-site.xml(如文件为模板,先重命名为 mapred-site.xml)
mapreduce.framework.name yarn - yarn-site.xml
yarn.resourcemanager.hostname localhost yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler
- core-site.xml
- 初始化与启动:
- 格式化 HDFS:
hdfs namenode -format - 启动 HDFS:
start-dfs.sh - 启动 YARN:
start-yarn.sh - 验证进程:
jps(应看到 NameNode、DataNode、ResourceManager、NodeManager) - Web 界面:HDFS http://localhost:9870,YARN http://localhost:8088。
- 格式化 HDFS:
三 运行第一个 MapReduce 程序 WordCount
- 准备输入数据到 HDFS:
hdfs dfs -mkdir -p /user/$USER/input- 可使用本地示例:
hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /user/$USER/input
- 方式一 使用 Hadoop 自带示例 JAR(最简便)
- 执行:
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /user/$USER/input /user/$USER/output
- 执行:
- 方式二 自行编译打包运行(示例)
- 编译:
$HADOOP_HOME/bin/hadoop com.sun.tools.javac.Main WordCount.java - 打包:
jar cf wc.jar WordCount*.class - 运行:
hadoop jar wc.jar WordCount /user/$USER/input /user/$USER/output2
- 编译:
- 查看结果:
hdfs dfs -cat /user/$USER/output/part-r-00000
- 注意:输出目录不能已存在,否则作业会失败。
四 常用管理与排错命令
- 服务启停:
- 启动:
start-dfs.sh、start-yarn.sh - 停止:
stop-dfs.sh、stop-yarn.sh
- 启动:
- HDFS 常用:
- 列目录:
hdfs dfs -ls / - 上传:
hdfs dfs -put localfile /user/$USER/ - 下载:
hdfs dfs -get /user/$USER/file ./
- 列目录:
- 作业与资源:
- 查看应用:
yarn application -list - 查看日志:
yarn logs -applicationId
- 查看应用:
- 进程检查与端口:
jps确认守护进程- 访问 9870/8088 检查 HDFS/YARN 是否正常。
五 常见问题与优化建议
- Java 版本不匹配:Hadoop 3.3.x 常见搭配为 JDK 8 或 11,版本差异可能导致启动或运行异常,建议统一版本并正确设置 JAVA_HOME。
- SSH 与权限:伪分布式通常需配置本机 SSH 免密登录;如使用专用用户运行 Hadoop,注意目录与数据的权限设置。
- 目录权限与路径:为 dfs.namenode.name.dir 等目录预先创建并赋予 hadoop 用户读写权限,避免因权限导致格式化或启动失败。
- 资源不足:单机环境内存紧张时,可在 yarn-site.xml 调低容器内存参数(如
yarn.nodemanager.resource.memory-mb),或减少作业并发。 - 输出目录冲突:每次运行前确保输出目录不存在,或使用不同输出路径,避免作业报错退出。
以上就是关于“怎样在 Ubuntu 上运行 Hadoop 程序”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm