spring数据流和Yarn:如何正确设置属性?

7z5jn7bk  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(385)

如何更改默认的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。给定的配置被传递给部署者,应用程序被有效地部署。
我会写一个答案的。

k4emjkb1

k4emjkb11#

结果我需要加上 -Dspring.config.location jvm arg使其工作。 -Dspring.config.location 应指向包含Yarn配置的文件,即:

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 如果我做对了)。

wwodge7n

wwodge7n2#

你没有告诉如果你的安装是基于ambari或正常的手动Yarn安装,所以我认为这是后者(手动)。
我认为一个问题是,在发行中你使用 config/servers.yml 设置错误 resourceManagerHost 因为它默认为 localhost . 当流启动时,这个文件只分发一次到hdfs中。如果在重新部署/创建流之后对其进行了更改,hdfs目录中的应用程序将不会得到更新。默认情况下,hdfs中的这个文件是 /dataflow/apps/stream/app/servers.yml .
这个错误是有意义的,因为控制整个东西的数据流yarn服务器也需要访问yarn资源管理器来提交应用程序。服务器的设置也来自同一个 servers.yml 文件。

相关问题