2016-12-01 4 views
0

Как можно изменить свойства appdeployappmaster по умолчанию?Весенний поток и пряжа: как правильно установить свойства?

Когда я пытаюсь развернуть приложение через Spring DataFlow YARN. Я зарегистрировал свое приложение, создал поток и нажал кнопку «развернуть». При этом, я получаю следующее сообщение об ошибке:

[XNIO-2 задачи-2] WARN oscdscStreamDeploymentController - исключение при развертывании приложения StreamAppDefinition [streamName = Histo, имя = мое приложение, registeredAppName = мое приложение , properties = {spring.cloud.stream.bindings.input.destination = log, spring.cloud.stream.bindings.input.group = histo}]: java.util.concurrent.ExecutionException: org.springframework.yarn.YarnSystemException: Недопустимое имя хоста: локальный хост: (неизвестно); хост назначения: «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

Как вы можете видеть, Установщик не может найти «Resource Manager» URI, хотя он хорошо найден, когда начинается весна DataFlow сервера. Так что я получаю проблему только во время развертывания.

Какую собственность я должен установить, чтобы исправить эту проблему, и где бы я это сделал?

EDIT 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: Я не использую Амбари, я хотел бы понять, как это работает вручную.

EDIT 2: Я решил проблему путем прибавления -Dspring.config.location VM агд на DataFlow Server. Данная конфигурация передается развертывателю, и приложение эффективно развертывается.

Я напишу для этого ответ.

ответ

0

Оказалось, мне нужно добавить 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, если я получаю это право).

0

Вы не указали, была ли ваша установка основана на установке ambari или обычной ручной установке YARN, поэтому я предполагаю, что она была последней (ручной).

Я думаю, проблема в том, что в дистрибутиве вы используете config/servers.yml, имеет неправильную настройку для resourceManagerHost по умолчанию localhost. Этот файл распространяется только один раз в hdfs при запуске потоков. Если вы изменили его после повторного развертывания/создания потока, приложение в hdfs-каталоге не будет обновляться. По умолчанию этот файл в hdfs равен /dataflow/apps/stream/app/servers.yml.

Эта ошибка имеет смысл, так же как и сервер нитки потока данных, контролирующий весь материал, также требуется доступ к менеджеру ресурсов пряжи для отправки приложений. Настройки для сервера также поступают из одного и того же файла servers.yml.

+0

Спасибо за ваш ответ. Я пробовал то, что вы предлагали, и, к сожалению, это ничего не меняет. Я редактировал свой вопрос, чтобы добавить шаги, которые я пробовал. Вы видите что-то не так с тем, что я сделал? –

+0

Ничего, я нашел решение. Спасибо за вашу помощь –