大数据处理技术:MapReduce案例WordCount遇到的问题

博主分享了初次接触大数据处理技术时使用MapReduce编写单词统计案例的经历。遇到的问题包括:主类找不到、内存不足以及Reduce读取数据类型错误。通过检查主类、调整Hadoop配置参数以及修正数据类型导入,最终成功运行程序。源码已开源,欢迎指正。
摘要由CSDN通过智能技术生成

在第一次接触大数据处理技术时,跟着老师的步骤写了一个MapReduce程序的统计单词案例,由于能力有限,一开始在hadoop集群上运行时就遇到了各种问题,所幸后面再老师和同学帮助下都一一解决了

MapReduce编程
在这里插入图片描述
在这里插入图片描述

MapReduce编写程序的步骤:

1,首先要自定义一个Map逻辑,即自定义一个MyMap类,这个自定义MyMap类去继承hadoop的Map类,然后重写Map类的map方法。

2,自定义一个MyReduce类,该类去继承hadoop的Reduce类,然后重写Reduce类的reduce方法。

3,定义一个myJob主类,这个主类要继承hadoop的Configuration类,实现Tool 接口,并重写Tool接口中的run方法。

在运行时遇到的问题:
一、运行时找不到主类
Exception in thread "main" java.lang.ClassNotFoundException: com.zdz.mayreduce.myJob
在这里插入图片描述
解决方法:
1、检查你的输入主类有没有写错。
在这里插入图片描述
如果没有输错执行第二步

2、在myJob主类中加入 job.setJarByClass(主类名xxx.class)

二、运行时虚拟机的内存不足,终端显示一直在杀进程。

报错信息:

Container killed on request. Exit code is 143
yarn.nodemanager.resource.

解决方法:更改hadoop的相关配置文件。

首先在yarn-site.xml中添加下面内容:

    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>22528</value>
        <discription>每个节点可用内存,单位MB</discription>
    </property>
 
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>1500</value>
        <discription>单个任务可申请最少内存,默认1024MB</discription>
    </property>
 
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>16384</value>
        <discription>单个任务可申请最大内存,默认8192MB</discription>
    </property>

再在mapred-site.xml中添加下面内容:

    <property>
        <name>mapreduce.map.memory.mb</name>
        <value>1500</value>
        <description>每个Map任务的物理内存限制</description>
    </property>
 
    <property>
        <name>mapreduce.reduce.memory.mb</name>
        <value>3000</value>
        <description>每个Reduce任务的物理内存限制</description>
    </property>
 
    <property>
        <name>mapreduce.map.java.opts</name>
        <value>-Xmx1200m</value>
    </property>
 
    <property>
        <name>mapreduce.reduce.java.opts</name>
        <value>-Xmx2600m</value>
    </property>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

覆盖集群中的这两个文件,重启yarn再启动mapreduce任务,成功运行。

三、调用MapReduce程序INFO mapreduce.Job: Task Id : attempt_1607842602362_0032_m_000000_2, Status : FAIL

我在调用MapReduce程序执行程序时报了如下错误:
在这里插入图片描述
这里显示我的reduce程序读取数据类型设置不对,Text是大数据类型不是javax下的类型。

解决方法:在MyReduce程序中对Text重新导包,导入org.apache.hadoop.io.Text这个包,重新启动,就能重新运行了。

我写的WordsCount案例的源码:https://gitee.com/zhu-dezhong/briup_mapreduce欢迎大佬斧正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A_Zhong20

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值