hadoop提交jar包卡住不会往下执行的解决方案


这里写图片描述
打开微信扫一扫,关注微信公众号【数据与算法联盟】


转载请注明出处:http://blog.csdn.net/gamer_gyt
博主微博:http://weibo.com/234654758
Github:https://github.com/thinkgamer


写在前边的话

这是一个很蛋疼的问题,说实话在以前玩这个hadoop集群,不管是伪分布式还是集群都没有注意过分配内存这个问题,即job执行时的内存分配,然后在今天遇到了,搞了好久

错误描述

执行jar包时,卡住不会动一般卡在两个地方
第一个是提交不到集群

[breakpad@master hadoop]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input /output
16/09/22 12:12:15 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.162.89:8032
16/09/22 12:12:16 INFO input.FileInputFormat: Total input paths to process : 1
16/09/22 12:12:16 INFO mapreduce.JobSubmitter: number of splits:1
16/09/22 12:12:17 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1474517485267_0001
16/09/22 12:12:17 INFO impl.YarnClientImpl: Submitted application application_1474517485267_0001
16/09/22 12:12:17 INFO mapreduce.Job: The url to track the job: http://master:8088/proxy/application_1474517485267_0001/
16/09/22 12:12:17 INFO mapreduce.Job: Running job: job_1474517485267_0001
16/09/22 12:12:25 INFO mapreduce.Job: Job job_1474517485267_0001 running in uber mode : false

第二种是提交到集群之后,不会往下运行

[breakpad@master hadoop]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input /output
16/09/22 12:12:15 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.162.89:8032
16/09/22 12:12:16 INFO input.FileInputFormat: Total input paths to process : 1
16/09/22 12:12:16 INFO mapreduce.JobSubmitter: number of splits:1
16/09/22 12:12:17 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1474517485267_0001
16/09/22 12:12:17 INFO impl.YarnClientImpl: Submitted application application_1474517485267_0001
16/09/22 12:12:17 INFO mapreduce.Job: The url to track the job: http://master:8088/proxy/application_1474517485267_0001/
16/09/22 12:12:17 INFO mapreduce.Job: Running job: job_1474517485267_0001
16/09/22 12:12:25 INFO mapreduce.Job: Job job_1474517485267_0001 running in uber mode : false
16/09/22 12:12:25 INFO mapreduce.Job:  map 0% reduce 0%

解决办法

这两种错误的本质是一样的,就是在运行jar包时,节点为期分配的内存不够,且也没有指定最大最小值
官网上有三个这样的配置项 yarn-site.xml

yarn.nodemanager.resource.memory-mb
8192
Amount of physical memory, in MB, that can be allocated for containers.
---
yarn.scheduler.minimum-allocation-mb
1024
The minimum allocation for every container request at the RM, in MBs. Memory requests lower than this will throw a InvalidResourceRequestException.
---
yarn.nodemanager.vmem-pmem-ratio
2.1
Ratio between virtual memory to physical memory when setting memory limits for containers. Container allocations are expressed in terms of physical memory, and virtual memory usage is allowed to exceed this allocation by this ratio.

这里我们在集群的yarn-site.xml中添加配置

<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>4096</value>
</property>

<property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>2048</value>
</property>

<property>
    <name>yarn.nodemanager.vmem-pmem-ratio</name>
    <value>2.1</value>
</property>

重新启动集群,运行jar包即可

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/413043

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。