如何更改默认的AppMaster属性?
当我试图通过spring数据流部署应用程序时。我注册了我的应用程序,创建了一个流,然后单击“部署”按钮。执行此操作时,会出现以下错误:
[xnio-2 task-2]警告o.s.c.d.s.c.streamdeploymentcontroller-部署应用程序streamappdefinition[streamname=histo,name=my app,registeredappname=my app,properties={spring.cloud.stream.bindings.input.destination=log,spring.cloud.stream.bindings.input.group=histo}]:java.util.concurrent.executionexception:org.springframework.yarn.yarnsystemexception:无效主机名:本地主机为:(未知);目的主机为:“空”:8032;java.net.unknownhostexception;有关详细信息,请参阅:http://wiki.apache.org/hadoop/unknownhost; 嵌套异常为java.net.unknownhostexception:无效主机名:本地主机为:(未知);目的主机为:“空”:8032;java.net.unknownhostexception;有关详细信息,请参阅:http://wiki.apache.org/hadoop/unknownhost
如您所见,部署人员无法找到“资源管理器”uri,尽管在spring数据流服务器启动时可以很好地找到它。所以我只在部署的时候遇到问题。
我应该设置哪个属性来解决这个问题,在哪里可以这样做?
编辑1:根据janne valkealahti的回答,我在中添加了以下属性 /dataflow/apps/stream/app/servers.yml
,重新启动服务器,并尝试重新部署我的流。
spring:
cloud:
dataflow:
yarn:
version: 0.0.1-SNAPSHOT
deployer:
yarn:
version: 1.0.2.RELEASE
stream:
kafka:
binder:
brokers: kafka.my-domain.com:9092
zkNodes: zookeeper.my-domain.com:2181/node
# Configured for Hadoop single-node running on localhost. Replace with property values reflecting your
# actual Hadoop cluster when running in a distributed environment.
hadoop:
fsUri: hdfs://mapr.my-domain.com/referentiel/ca_category_2014/
resourceManagerHost: mapr.my-domain.com
resourceManagerPort: 8032
resourceManagerSchedulerAddress: mapr.my-domain.com:8030
session:
store-type: none
我仍然得到完全相同的信息。
ps:我没有使用ambari,我想先了解它是如何手动工作的。
编辑2:我解决了添加 -Dspring.config.location
数据流服务器上的vm arg。给定的配置被传递给部署者,应用程序被有效地部署。
我会写一个答案的。
2条答案
按热度按时间k4emjkb11#
结果我需要加上
-Dspring.config.location
jvm arg使其工作。-Dspring.config.location
应指向包含Yarn配置的文件,即:然后将此配置传递给deployer应用程序(
appdeployerappmaster
如果我做对了)。wwodge7n2#
你没有告诉如果你的安装是基于ambari或正常的手动Yarn安装,所以我认为这是后者(手动)。
我认为一个问题是,在发行中你使用
config/servers.yml
设置错误resourceManagerHost
因为它默认为localhost
. 当流启动时,这个文件只分发一次到hdfs中。如果在重新部署/创建流之后对其进行了更改,hdfs目录中的应用程序将不会得到更新。默认情况下,hdfs中的这个文件是/dataflow/apps/stream/app/servers.yml
.这个错误是有意义的,因为控制整个东西的数据流yarn服务器也需要访问yarn资源管理器来提交应用程序。服务器的设置也来自同一个
servers.yml
文件。