完成 Hadoop 集群配置后,需要进行全面测试以验证其功能和性能。以下是测试 Hadoop 集群的详细步骤:
在 master 节点执行:
bash
jps
预期输出:
plaintext
NameNode
ResourceManager
SecondaryNameNode
在 slave1/slave2 节点执行:
bash
jps
预期输出:
plaintext
DataNode
NodeManager
HDFS 管理界面:http://master:9870
检查 Live Nodes 是否显示所有 DataNode(2 个)。
YARN 资源管理界面:http://master:8088
检查 Active Nodes 是否显示所有 NodeManager(2 个)。
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
停止 NameNode 并验证 SecondaryNameNode 是否接管:
bash
# 在 master 节点停止 NameNode
hdfs --daemon stop namenode
# 访问 SecondaryNameNode 界面:http://master:9868
# 检查是否显示为 Active 状态
# 恢复 NameNode
hdfs --daemon start namenode
bash
yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 10 100
10
表示 Map 任务数,100
表示每个任务的迭代次数。3.141592653589793
)。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
bash
# 生成 1GB 测试文件
time hdfs dfs -put /dev/zero - | hdfs dfs -appendToFile - /benchmarks/io_write_test
# 计算写入速度(MB/s)
# 总时间 = 输出的 real 时间(秒)
# 写入速度 = 1024MB / 总时间
bash
time hdfs dfs -cat /benchmarks/io_write_test > /dev/null
在 YARN 管理界面(http://master:8088)查看:
bash
# 在 slave1 节点停止 DataNode
hdfs --daemon stop datanode
# 检查 HDFS 界面(http://master:9870)
# 观察 "Dead Nodes" 是否增加到 1 个
# 恢复 DataNode
hdfs --daemon start datanode
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
作业失败:
查看 YARN 界面的应用日志(Application Master 日志链接)。
数据不均衡:
执行 hdfs balancer
命令平衡数据分布。
内存不足:
调整 yarn-site.xml
中的 yarn.nodemanager.resource.memory-mb
参数。
通过以上测试,你可以全面验证 Hadoop 集群的功能完整性、性能表现和容错能力。如果遇到问题,请参考 Hadoop 日志文件(默认位于 /opt/hadoop/logs
)进行详细排查。
编辑
分享
配置Hadoop集群-配置历史和日志服务
在 Hadoop 集群中配置历史服务器和日志聚合服务,可以方便地查看作业历史记录和节点日志。以下是详细配置步骤:
mapred-site.xml
在 master 节点上编辑:
xml
mapreduce.jobhistory.address
master:10020
mapreduce.jobhistory.webapp.address
master:19888
mapreduce.jobhistory.intermediate-done-dir
/mr-history/tmp
mapreduce.jobhistory.done-dir
/mr-history/done
bash
hdfs dfs -mkdir -p /mr-history/tmp
hdfs dfs -mkdir -p /mr-history/done
hdfs dfs -chmod 777 /mr-history/tmp
hdfs dfs -chmod 777 /mr-history/done
bash
mr-jobhistory-daemon.sh start historyserver
访问 Web 界面:http://master:19888
yarn-site.xml
在 master 节点上编辑:
xml
yarn.log-aggregation-enable
true
yarn.log.server.url
http://master:19888/jobhistory/logs
yarn.log-aggregation.retain-seconds
604800
yarn.nodemanager.remote-app-log-dir
/app-logs
yarn.nodemanager.remote-app-log-dir-suffix
logs
bash
hdfs dfs -mkdir -p /app-logs
hdfs dfs -chmod 1777 /app-logs # 确保所有用户可写
bash
stop-yarn.sh
start-yarn.sh
hdfs-site.xml
在 master 节点上编辑:
xml
dfs.audit.logger
INFO,RFAAUDIT
dfs.audit.log.maxfilesize
104857600
dfs.audit.log.maxbackupindex
10
bash
stop-dfs.sh
start-dfs.sh
bash
yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 10 100
访问 http://master:19888,点击 Completed Jobs 查看已完成的作业。
在 YARN 管理界面(http://master:8088):