首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >简单的基于Java的星火程序没有完成

简单的基于Java的星火程序没有完成
EN

Stack Overflow用户
提问于 2017-03-29 11:07:19
回答 2查看 355关注 0票数 2

我创建了一个非常简单的基于Java的星火程序“单词计数”,并在一个运行在纱线上的集群中运行它,其中包含以下详细信息:

Hadoop详细信息:

主节点(NN,SNN,RM) - 192.168.0.100

从节点(DN,NM) - 192.168.0.105,192.168.0.108

火花细节:

大师跑: 192.168.0.100

流动工人: 192.168.0.105,192.168.0.108

我已经创建了一个客户端机器,在这里我提交了Spark作业(客户端机器的IP地址是-> 192.168.0.240)。

下面的命令用于将作业提交给Spark:

代码语言:javascript
运行
复制
spark-submit --class com.example.WordCountTask --master yarn /root/SparkCodeInJava/word-count/target/word-count-1.0-SNAPSHOT.jar /spark/input/inputText.txt /spark/output

然而,程序完全没有终止,数据集非常小(10行文本),我希望它不会花费太多时间完成。

下面是提交作业后在控制台上看到的输出:

代码语言:javascript
运行
复制
17/03/26 19:54:42 INFO yarn.Client: Application report for application_1490572543329_0001 (state: ACCEPTED)
17/03/26 19:54:43 INFO yarn.Client: Application report for application_1490572543329_0001 (state: ACCEPTED)
17/03/26 19:54:44 INFO yarn.Client: Application report for application_1490572543329_0001 (state: ACCEPTED)
17/03/26 19:54:45 INFO yarn.Client: Application report for application_1490572543329_0001 (state: ACCEPTED)
17/03/26 19:54:46 INFO yarn.Client: Application report for application_1490572543329_0001 (state: ACCEPTED)

这种情况将永远持续下去。我不知道为什么这件事没有完成。

这就是我在GUI中看到的这个应用程序:

以下是:纱线原木-applicationId application_1490572543329_0002的输出

代码语言:javascript
运行
复制
17/03/26 20:24:09 WARN util.NativeCodeLoader: Unable to load native-hadoop libra
/tmp/logs/root/logs/application_1490572543329_0002 does not exist.

日志聚合尚未完成或未启用。

这是我的第一个星火程序,我配置成在纱线集群上运行它。

我使用运行在Virtualbox上的4VM‘s分操作系统来模拟分布式环境。

有人能帮我解释一下为什么这个程序不能正常运行吗?

更新:

我在AWS中设置了环境,有两个启动实例,配置良好(8 Vcpu和32 GB RAM),但工作仍未完成。

(A)纱线-site.xml

代码语言:javascript
运行
复制
    <property>
            <name>yarn.nodemanager.auxservices</name>
            <value>mapreduce_shuffle</value>
    </property>

    <property>
            <name>yarn.resourcemanager.address</name>
            <value>ip-XXX-YYYY-ZZZ-AAA.us-west-2.compute.internal:8032</value>
    </property>

(B)在使用spark提交作业之后,我在控制台上显示的输出中看到了这一点:

代码语言:javascript
运行
复制
17/03/29 15:51:35 INFO yarn.Client: Requesting a new application from cluster with **0 NodeManagers**

这和工作还没有完成有什么关系吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-29 20:56:54

ERROR消息中,

纱线应用状态:接受,等待AM容器的分配

代码语言:javascript
运行
复制
17/03/29 15:51:35 INFO yarn.Client: Requesting a new application from cluster with **0 NodeManagers**

由于没有可用的活动NodeManager(s),纱线无法为Spark应用程序分配容器。

诺德曼用户使用属性yarn.resourcemanager.resource-tracker.addressResourceManager通信。默认情况下,此属性的值设置为

代码语言:javascript
运行
复制
<property>
   <name>yarn.resourcemanager.resource-tracker.address</name>
   <value>${yarn.resourcemanager.hostname}:8031</value>
</property> 

引用属性yarn.resourcemanager.hostname默认为0.0.0.0。除非正确定义RM主机名,否则Nodemanagers将无法与RM通信。

yarn-site.xml中为所有节点修改此属性

代码语言:javascript
运行
复制
 <property>
   <name>yarn.resourcemanager.hostname</name>
   <value>rm_hostname</value> <!-- Hostname of the node where Resource Manager is started -->
</property> 

此外,属性yarn.nodemanager.auxservices必须是yarn.nodemanager.aux-services

更改后重新启动服务。

票数 1
EN

Stack Overflow用户

发布于 2017-03-29 11:48:22

如果“接受”状态在任何时候继续,而不存在任何“失败”状态,这意味着群集资源分配允许您提交作业,但是当前没有空闲资源来启动容器中的作业。状态机看起来类似于hadoop任务

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43091806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档