配置Hadoop集群-配置历史和日志服务

完成 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)进行详细排查。

编辑

分享

配置Hadoop集群-配置历史和日志服务

在 Hadoop 集群中配置历史服务器和日志聚合服务,可以方便地查看作业历史记录和节点日志。以下是详细配置步骤:

1. 配置 MapReduce 历史服务器

1.1 修改 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
  

1.2 创建 HDFS 目录

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
1.3 启动历史服务器

bash

mr-jobhistory-daemon.sh start historyserver
1.4 验证服务

访问 Web 界面:http://master:19888

2. 配置 YARN 日志聚合服务

2.1 修改 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
  

2.2 创建 HDFS 目录

bash

hdfs dfs -mkdir -p /app-logs
hdfs dfs -chmod 1777 /app-logs  # 确保所有用户可写
2.3 重启 YARN 服务

bash

stop-yarn.sh
start-yarn.sh

3. 配置 HDFS 审计日志

3.1 修改 hdfs-site.xml

在 master 节点上编辑:

xml


  
  
  
  
    dfs.audit.logger
    INFO,RFAAUDIT
  
  
    dfs.audit.log.maxfilesize
    104857600  
  
  
    dfs.audit.log.maxbackupindex
    10  
  

3.2 重启 HDFS 服务

bash

stop-dfs.sh
start-dfs.sh

4. 验证配置

4.1 运行测试作业

bash

yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 10 100
4.2 查看作业历史

访问 http://master:19888,点击 Completed Jobs 查看已完成的作业。

4.3 查看日志聚合

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

  1. 点击 Applications
  2. 选择一个已完成的应用
  3. 点击 ApplicationMaster 链接
  4. 点击 Logs 查看详细日志

你可能感兴趣的:(hadoop,大数据,分布式)