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

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

MapReduce编程
大数据处理技术:MapReduce案例WordCount遇到的问题_第1张图片
大数据处理技术:MapReduce案例WordCount遇到的问题_第2张图片

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
大数据处理技术:MapReduce案例WordCount遇到的问题_第3张图片
解决方法:
1、检查你的输入主类有没有写错。
大数据处理技术:MapReduce案例WordCount遇到的问题_第4张图片
如果没有输错执行第二步

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-mbname>
        <value>22528value>
        <discription>每个节点可用内存,单位MBdiscription>
    property>
 
    <property>
        <name>yarn.scheduler.minimum-allocation-mbname>
        <value>1500value>
        <discription>单个任务可申请最少内存,默认1024MBdiscription>
    property>
 
    <property>
        <name>yarn.scheduler.maximum-allocation-mbname>
        <value>16384value>
        <discription>单个任务可申请最大内存,默认8192MBdiscription>
    property>

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

    <property>
        <name>mapreduce.map.memory.mbname>
        <value>1500value>
        <description>每个Map任务的物理内存限制description>
    property>
 
    <property>
        <name>mapreduce.reduce.memory.mbname>
        <value>3000value>
        <description>每个Reduce任务的物理内存限制description>
    property>
 
    <property>
        <name>mapreduce.map.java.optsname>
        <value>-Xmx1200mvalue>
    property>
 
    <property>
        <name>mapreduce.reduce.java.optsname>
        <value>-Xmx2600mvalue>
    property>
    <property>
        <name>mapreduce.framework.namename>
        <value>yarnvalue>
    property>

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

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

我在调用MapReduce程序执行程序时报了如下错误:
大数据处理技术:MapReduce案例WordCount遇到的问题_第5张图片
这里显示我的reduce程序读取数据类型设置不对,Text是大数据类型不是javax下的类型。

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

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

你可能感兴趣的:(日记,hadoop,mapreduce,java,大数据)