如何更改默认的appDeployAppmaster属性?
当我尝试通过Spring DataFlow纱线部署应用程序时。我注册了我的应用程序,创建了一个流,然后单击"部署"按钮。这样做时,我会收到以下错误:
。目标主机是:" null":8032;java.net.unknownhostexception;有关更多详细信息,请参见:http://wiki.apache.org/hadoop/unknownhost;嵌套异常是Java.net.UnknownHostException:无效主机名称:本地主机为:(未知);目标主机是:" null":8032;java.net.unknownhostexception;有关更多详细信息,请参见:http://wiki.apache.org/hadoop/unknownhost
,如您所见,部署者无法找到"资源管理器" URI,尽管当Spring DataFlow服务器启动时可以找到它。所以我只在部署时间遇到问题。
我应该设置哪个属性来解决此问题,我将在哪里做?
编辑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的问题。给定的配置将传递给部署,并有效地部署了应用程序。
我会为此写答案。
您没有告诉您的安装是基于Ambari还是正常手动纱线安装,所以我认为这是后者(手册)。
我认为一个问题是,在分发中,您使用config/servers.yml
的resourceManagerHost
设置错误,因为它默认为localhost
。启动流时,该文件仅分布一次到HDFS中。如果您在重新部署/创建流之后已将其更改,则HDFS目录中的应用程序将不会更新。在HDFS中的默认情况下,此文件为/dataflow/apps/stream/app/servers.yml
。
此错误也很有意义,而且控制整个内容的DataFlow纱线服务器也需要访问YARN Resource Manager才能提交应用程序。服务器的设置也来自相同的servers.yml
文件。
事实证明,我需要添加 -Dspring.config.location
jvm arg以使其正常工作。-Dspring.config.location
应指向包含纱线配置的文件,即:
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
然后将此配置传递给Deployer应用程序(如果我正确正确,则appdeployerappmaster
)。