Ubuntu Hadoop 怎样进行测试
小樊
39
2025-12-12 21:13:13
Ubuntu Hadoop 测试流程
一 环境与前置检查
- 检查安装与版本:确认 JAVA_HOME 与 PATH 已设置,执行 hadoop version 能输出版本号。示例:
- echo $HADOOP_HOME; echo $PATH
- hadoop version
- 伪分布式建议配置 SSH 免密登录(本机 localhost 测试必需):
- sudo apt-get install -y openssh-server
- ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- ssh localhost 验证免密是否成功。
二 启动与进程健康检查
- 首次启动前格式化 HDFS:hdfs namenode -format(仅首次)。
- 启动服务(按你的 Hadoop 版本二选一):
- Hadoop 2.x/3.x(YARN):start-dfs.sh && start-yarn.sh
- Hadoop 1.x:start-all.sh
- 进程健康检查:
- Hadoop 2.x/3.x:jps 应看到 NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager
- Hadoop 1.x:jps 应看到 NameNode、DataNode、SecondaryNameNode、JobTracker、TaskTracker
- 页面健康检查(默认端口,主机名/IP 替换为你的实际地址):
- HDFS NameNode:http://<主机名或IP>:50070
- YARN ResourceManager:http://<主机名或IP>:8088
- MapReduce JobHistory(若启用):http://<主机名或IP>:19888
- 旧版 MapReduce JobTracker:http://<主机名或IP>:50030(Hadoop 1.x)
三 功能性测试示例
- 准备输入数据(Hadoop 3.x 常用内置配置与示例 JAR 路径):
- mkdir input
- cp $HADOOP_HOME/etc/hadoop/*.xml input/
- 运行示例作业(不同版本 JAR 路径略有差异,以下为常见路径示例):
- Hadoop 3.x:
- hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.1.jar grep ./input ./output ‘df[a-z.]+’
- hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.1.jar wordcount ./input ./output
- Hadoop 2.x:
- hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.x.jar wordcount ./input ./output
- Hadoop 1.x:
- hadoop jar hadoop-examples-1.2.1.jar wordcount in out
- 查看结果:
- hdfs dfs -ls ./output
- hdfs dfs -cat ./output/part-r-00000
- 清理输出目录(避免重复运行报错):hdfs dfs -rm -r ./output。
四 基准性能测试
- HDFS 吞吐基准 TestDFSIO(写/读/清理):
- 写测试:hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-*.jar TestDFSIO -write -nrFiles 10 -fileSize 10000
- 读测试:hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-*.jar TestDFSIO -read -nrFiles 10 -fileSize 10000
- 清理数据:hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-*.jar TestDFSIO -clean
- 关注输出中的 Throughput mb/sec、Average IO rate mb/sec、Test exec time sec 等指标。
- 运行前确保离开安全模式(若处于安全模式):hdfs dfsadmin -safemode leave。
五 常见问题与排查要点
- 权限与目录:若报权限或配额错误,按需设置用户目录权限与空间配额,例如
- hdfs dfs -chown <用户>:<组> /user/<用户>
- hdfs dfsadmin -setSpaceQuota 1t /user/<用户>
- 安全模式:HDFS 启动初期可能处于安全模式,测试前执行
- hdfs dfsadmin -safemode leave
- 端口与防火墙:确认 50070/8088/19888 等端口未被占用且防火墙已放行(或在内网环境测试)。
- 重复运行作业:输出目录必须不存在,先执行
- SSH 问题:首次 start-dfs.sh 会走 SSH,若未配置免密会频繁要求输入密码,按“二”中步骤配置免密后再试。