快乐的打工仔 2019-11-20 11:02 采纳率: 0%
浏览 1441

运行mapreduce程序 没有报错 但是map没有输出结果?

用的这个代码:https://blog.csdn.net/daihanglai7622/article/details/84760611

本地运行此程序是正确的 有输出结果
但是 放到集群上运行 输出结果为空 查看日志 应该是 map就出错了
图片说明

本地上能运行 逻辑应该是没问题的 那应该是哪里出了问题?

新手求教

那个啥~我没有c币哎 好像不能悬赏…

  • 写回答

1条回答 默认 最新

  • bug菌¹ Java领域优质创作者 2024-04-02 22:56
    关注

    该回答引用ChatGPT,望对题主有所帮助/启发;若有帮助,还望采纳🤝🤝🤝


    当您在集群上运行MapReduce程序时,如果Map阶段没有输出结果,这可能是由多种原因导致的。以下是一些可能的原因和解决方案:

    1. 输入数据路径问题

    确保集群上指定的输入数据路径是正确的,并且集群节点能够访问该路径。如果输入数据不在HDFS上,您可能需要使用file://路径或者将数据上传到HDFS。

    2. 输入数据格式问题

    检查输入数据的格式是否与MapReduce程序预期的格式相匹配。如果数据格式不正确或存在损坏,Map函数可能无法正确解析输入。

    3. 集群配置问题

    检查集群的配置,确保MapReduce作业的配置正确无误。这包括内存分配、I/O设置、序列化和反序列化类等。

    4. 权限问题

    确保提交作业的用户有足够的权限访问输入数据、输出目录和集群资源。

    5. 环境差异问题

    由于本地环境和集群环境可能存在差异(如Java版本、Hadoop版本、依赖库等),确保集群上的环境与本地测试环境一致。

    6. 日志分析

    仔细检查集群的日志文件,尤其是MapReduce作业的日志。日志中可能包含错误信息或异常堆栈,这些信息对于诊断问题至关重要。

    7. 集群资源问题

    检查集群资源使用情况,如CPU、内存和磁盘空间。资源不足可能导致作业无法正常执行。

    8. 程序错误处理

    确保MapReduce程序中有足够的错误处理逻辑。如果Map函数或Combiner函数中发生异常而没有被捕获,可能导致没有输出。

    9. 集群任务调度问题

    集群的任务调度器可能存在问题,导致Map任务没有被正确分配或执行。检查集群的任务调度器和队列状态。

    10. 重新打包和部署

    重新打包您的MapReduce程序和所有依赖,并确保它们被正确部署到集群上。

    11. 测试集群节点

    如果可能,尝试在集群的单个节点上运行MapReduce程序,以排除集群配置或环境问题。

    12. 联系集群管理员

    如果您无法解决问题,联系集群管理员或技术支持团队寻求帮助。

    在解决这类问题时,通常需要逐步排查和测试。从检查输入数据和配置开始,逐步深入到程序代码和集群环境。确保在每次更改配置或代码后都进行充分的测试,以便找到问题的根源。

    评论

报告相同问题?

悬赏问题

  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站