温馨提示×

Ubuntu Hadoop 怎样进行测试

小樊
39
2025-12-12 21:13:13
栏目: 智能运维

Ubuntu Hadoop 测试流程

一 环境与前置检查

  • 检查安装与版本:确认 JAVA_HOMEPATH 已设置,执行 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 等端口未被占用且防火墙已放行(或在内网环境测试)。
  • 重复运行作业:输出目录必须不存在,先执行
    • hdfs dfs -rm -r <输出路径>
  • SSH 问题:首次 start-dfs.sh 会走 SSH,若未配置免密会频繁要求输入密码,按“二”中步骤配置免密后再试。

0