配置Hadoop集群-测试使用

发布于:2025-05-13 ⋅ 阅读:(17) ⋅ 点赞:(0)

完成 Hadoop 集群配置后,需要进行全面测试以验证其功能和性能。以下是测试 Hadoop 集群的详细步骤:

1. 基础服务验证

1.1 检查进程状态

在 master 节点执行:

bash

jps

预期输出:

plaintext

NameNode
ResourceManager
SecondaryNameNode

在 slave1/slave2 节点执行:

bash

jps

预期输出:

plaintext

DataNode
NodeManager
1.2 访问 Web 界面
  • HDFS 管理界面:http://master:9870
    检查 Live Nodes 是否显示所有 DataNode(2 个)。

  • YARN 资源管理界面:http://master:8088
    检查 Active Nodes 是否显示所有 NodeManager(2 个)。

2. HDFS 功能测试

2.1 文件操作测试

bash

# 创建测试目录
hdfs dfs -mkdir /user/hadoop/test

# 上传本地文件
hdfs dfs -put /etc/hosts /user/hadoop/test/

# 查看文件列表
hdfs dfs -ls /user/hadoop/test

# 查看文件内容
hdfs dfs -cat /user/hadoop/test/hosts

# 下载文件到本地
hdfs dfs -get /user/hadoop/test/hosts ./hosts_copy

# 删除文件
hdfs dfs -rm /user/hadoop/test/hosts
2.2 高可用性测试

停止 NameNode 并验证 SecondaryNameNode 是否接管:

bash

# 在 master 节点停止 NameNode
hdfs --daemon stop namenode

# 访问 SecondaryNameNode 界面:http://master:9868
# 检查是否显示为 Active 状态

# 恢复 NameNode
hdfs --daemon start namenode

3. MapReduce 测试

3.1 运行 Pi 计算示例

bash

yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 10 100

  • 参数说明
    10 表示 Map 任务数,100 表示每个任务的迭代次数。
  • 预期输出
    最终会计算出 π 的近似值(如 3.141592653589793)。
3.2 运行 WordCount 示例

bash

# 准备测试数据
echo "Hello Hadoop World" > input.txt
echo "Hadoop is awesome" >> input.txt
hdfs dfs -mkdir /user/hadoop/wordcount/input
hdfs dfs -put input.txt /user/hadoop/wordcount/input/

# 执行 WordCount
yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount \
  /user/hadoop/wordcount/input \
  /user/hadoop/wordcount/output

# 查看结果
hdfs dfs -cat /user/hadoop/wordcount/output/part-r-00000

4. 性能测试

4.1 HDFS 写入性能

bash

# 生成 1GB 测试文件
time hdfs dfs -put /dev/zero - | hdfs dfs -appendToFile - /benchmarks/io_write_test

# 计算写入速度(MB/s)
# 总时间 = 输出的 real 时间(秒)
# 写入速度 = 1024MB / 总时间
4.2 HDFS 读取性能

bash

time hdfs dfs -cat /benchmarks/io_write_test > /dev/null
4.3 YARN 资源利用率

在 YARN 管理界面(http://master:8088)查看:

  • 集群资源使用情况:总内存、CPU 核心数
  • 应用程序统计:运行中 / 已完成的作业
  • 节点健康状态:每个 NodeManager 的资源使用

5. 故障恢复测试

5.1 DataNode 故障模拟

bash

# 在 slave1 节点停止 DataNode
hdfs --daemon stop datanode

# 检查 HDFS 界面(http://master:9870)
# 观察 "Dead Nodes" 是否增加到 1 个

# 恢复 DataNode
hdfs --daemon start datanode
5.2 NodeManager 故障模拟

bash

# 在 slave2 节点停止 NodeManager
yarn --daemon stop nodemanager

# 提交一个新作业,观察是否能在剩余节点运行
yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 5 50

# 恢复 NodeManager
yarn --daemon start nodemanager

6. 常见问题排查

  1. 作业失败
    查看 YARN 界面的应用日志(Application Master 日志链接)。

  2. 数据不均衡
    执行 hdfs balancer 命令平衡数据分布。

  3. 内存不足
    调整 yarn-site.xml 中的 yarn.nodemanager.resource.memory-mb 参数。

通过以上测试,你可以全面验证 Hadoop 集群的功能完整性、性能表现和容错能力。如果遇到问题,请参考 Hadoop 日志文件(默认位于 /opt/hadoop/logs)进行详细排查


网站公告

今日签到

点亮在社区的每一天
去签到