Hadoop运行Mapreduce问题集锦——Ubuntu虚拟机配置

发布于:2024-12-18 ⋅ 阅读:(99) ⋅ 点赞:(0)

一、端口访问问题

        问题描述

        运行任务前一直重连。具体来说,错误发生在尝试从czs-virtual-machine虚拟机127.0.1.1地址连接到同一台机器的8032端口时,连接被拒绝。

        如下:

2024-11-17 23:05:45,800 INFO retry.RetryInvocationHandler: java.net.ConnectException: Call
 From czs-virtual-machine/127.0.1.1 to czs-virtual-machine:8032 failed on connection 
exception: java.net.ConnectException: 拒绝连接; For more details see:  
http://wiki.apache.org/hadoop/ConnectionRefused, while invoking 
ApplicationClientProtocolPBClientImpl.getNewApplication over null after 1 failover 
attempts. Trying to failover after sleeping for 42459ms

        问题原因

        ResourceManager的地址和端口未设置错误或设置错误。端口8032通常是YARN ResourceManager的RPC端口。如果ResourceManager没有启动或不能被虚拟机的环回地址访问到,就无法在该端口上接受连接,运行yarn相关操作。

        解决方法

        在yarn-site.xml中添加相关配置项。较为重要的,第二项:本机IP:端口号

        《虚拟机名称:端口号》可能是不被识别的!

<configuration>  
<property>  
        <name>yarn.nodemanager.aux-services</name>  
        <value>mapreduce_shuffle</value>  
</property>  
<property>
        <name>yarn.resourcemanager.address</name>
        <value>192.168.147.130:8032</value>
</property>
<property>  
        <name>yarn.resourcemanager.webapp.address</name>  
        <value>192.168.147.130:8099</value>  
        <description>这个地址是mr管理界面的</description>  
</property>  
</configuration>

      解释

        yarn.resourcemanager.address属性指定了ResourceManager的RPC(远程过程调用)地址。客户端(该虚拟机)和其他Hadoop组件(如NodeManager)将使用这个地址来与ResourceManager通信。如上,ResourceManager运行在IP地址为192.168.147.130的虚拟机上,监听8032端口。 

        相关注释:127.0.1.1 通常是一个环回(loopback)地址,它与更常见的 127.0.0.1 类似,都用于指代本机地址。环回地址是一种特殊的IP地址,用于网络设备(如计算机)在与自身通信时使用。

二、Runing job停顿问题

      问题描述

        在运行任务时卡住不动。

        如下:

      问题原因

        首先可以明确是内存资源不足的问题,一个可能的原因是虚拟机磁盘占用过满,原本分配的20GB确已将满,不过在粗暴地重新添加分配内存至40GB没有解决。可见,涉及mapreduce内部资源调配问题。

        问题解决流程:经查阅,将原本的mapred-site.xml中的内容进行更正或可以解决问题?更正过程如下:

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

更改为:

<configuration>
        <!-- 指定MapReduce程序运行在Yarn上  -->
        <!-- 历史服务器端地址  -->
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>hadoop100:10020</value>
        </property>
        <!-- 历史服务器web端地址   -->
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>hadoop100:19888</value>
        </property>
</configuration>

再次运行代码,可以运行,但是其实是在本地运行,并没有解决问题。

之后几经周折(找人帮忙),有时正常运行有时报错,大概追究至代码问题,现已不愿再调试找错。(实在累了)。给个建议:还是先多查查代码,先确认本地能运行。还有就是先了解基本原理再实操,事半功倍,遇到问题也不会毫无头绪。

希望有大佬能加以点拨,之后有时间弄懂的话也会加更。

日志:

 

三、VScode远程运行连接断联问题 

        注意vscode远程连接端口不要和配置文件中可能的端口重复。


网站公告

今日签到

点亮在社区的每一天
去签到