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

一、端口访问问题

问题描述

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

如下:

bash 复制代码
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:端口号

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

XML 复制代码
<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中的内容进行更正或可以解决问题?更正过程如下:

XML 复制代码
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

更改为:

XML 复制代码
<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远程连接端口不要和配置文件中可能的端口重复。

相关推荐
李宥小哥4 分钟前
ElasticSearch06-分片节点分配
数据库
武子康10 分钟前
大数据-253 离线数仓 - Airflow 任务调度 核心概念与实际案例测试 Py脚本编写
java·大数据·数据仓库·hive·hadoop·springboot
Dream251228 分钟前
【MySQL数据基础】
数据库·mysql
chengxuyuan1213_1 小时前
高级SQL技巧
java·数据库·sql
weixin_SAG1 小时前
21天掌握javaweb-->第15天:综合项目实战启动与需求分析
数据库
杨超越luckly1 小时前
利用高德API获取整个城市的公交路线并可视化(七)
大数据·算法·arcgis·信息可视化·数据挖掘·数据分析
nbplus_0072 小时前
Redis Set操作
数据库·redis·bootstrap
逸曦玥泱2 小时前
搭建分布式HBase集群
数据库·分布式·hbase
逆天小北鼻2 小时前
配置一个外网yum源及常用命令
服务器·数据库·windows
weisian1512 小时前
Redis篇-11--数据结构篇3--字符串内存模型(简单动态字符串SDS)
数据结构·数据库·redis