2015-02-04 9 views
2

У меня проблема с моим сервером Ambari, он не может запустить Namenode. Я использую HDP 2.0.6, Ambari 1.4.1. Стоит упомянуть, что это происходит, когда я включил безопасность Kerberos, я имею в виду, когда он отключен, ошибки нет.Ambari не может запустить Namenode

Ошибка:

2015-02-04 16:01:48,680 ERROR namenode.EditLogInputStream (EditLogFileInputStream.java:nextOpImpl(173)) - caught exception initializing http://int-iot-hadoop-fe-02.novalocal:8480/getJournal?jid=integration&segmentTxId=1&storageInfo=-47%3A1493795199%3A0%3ACID-a5152e6c-64ab-4978-9f1c-e4613a09454d org.apache.hadoop.hdfs.server.namenode.TransferFsImage$HttpGetFailedException: Fetch of http://int-iot-hadoop-fe-02.novalocal:8480/getJournal?jid=integration&segmentTxId=1&storageInfo=-47%3A1493795199%3A0%3ACID-a5152e6c-64ab-4978-9f1c-e4613a09454d failed with status code 500 Response message: getedit failed. java.lang.IllegalArgumentException: Does not contain a valid host:port authority: null at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:211) at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:163) at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:152) at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.getHttpAddress(SecondaryNameNode.java:210) at org.apache.hadoop.hdfs.qjournal.server.GetJournalEditServlet.isValidRequestor(GetJournalEditServlet.java:93) at org.apache.hadoop.hdfs.qjournal.server.GetJournalEditServlet.checkRequestorOrSendError(GetJournalEditServlet.java:128) at org.apache.hadoop.hdfs.qjournal.server.GetJournalEditServlet.doGet(GetJournalEditServlet.java:174) at ...

Кажется, проблема о получении вторичного NameNode HTTP адрес, который фактически установлен в нуль в hdfs-site-xml (не знаю почему):

<property> 
    <name>dfs.namenode.secondary.http-address</name> 
    <value>null</value> 
</property> 

Я попытался установить значение этого параметра в соответствующий одному, но ничего не работает:

  • Ручным редактированием файлов hdfs-site.xml и запуском hdfs namenode, но ничего не происходит.
  • Ручным редактированием файлов hdfs-site.xml и началом всего HDFS от Ambari, но ничего не происходит. Даже параметр dfs.namenode.secondary.http-address снова имеет значение null!
  • Через Ambari UI> службы HDFS> вкладка конфигурации>hdfs-site.xml list> добавить новое свойство ... проблема в том, что dfs.namenode.secondary.http-address не указан в пользовательском интерфейсе, не позволяет мне добавлять его, потому что он говорит ... он уже существует ! :)
  • Я попытался добавить значение в /usr/lib/ambari-server/web/data/configuration/hdfs-site.json, думая, что это может быть то место, где Ambari хранит значения, которые отображаются в пользовательский интерфейс, но не успех.

Я также отметил, что site-XXXX.pp файл создается при /var/lib/ambari-agent/data/ каждый раз, когда служба HDFS перезапуске из Amabri UI, и я нашел, каждый из этих файлов имеет:

[[email protected] ~]# cat /var/lib/ambari-agent/data/site-3228.pp | grep dfs.namenode.secondary.http-address 
"dfs.namenode.secondary.http-address" => 'null', 

Я думаю, что другим файлом-кандидатом для настройки этого свойства может быть /var/lib/ambari-agent/puppet/modules/hdp-hadoop/manifests/params.pp. Существует раздел ### hdfs-site, но я не могу определить, что является именем марионеточной переменной, связанной с свойством dfs.namenode.secondary.http-address.

Любые идеи? Благодаря!

ответ

2

У меня есть обходной путь, чтобы заставить его работать под ambari среды:

  • В узле ambari изменить:

    • /usr/lib/ambari-server/web/javascripts/app.js
    • /usr/lib/ambari-server/web/javascripts/app.js.карта

меняется от:

{ 
"name": "dfs.namenode.secondary.http-address", 
"templateName": ["snamenode_host"], 
"foreignKey": null, 
"value": "<templateName[0]>:50090", 
"filename": "hdfs-site.xml" 
}, 

к определенному значению для вторичной NameNode и не один шаблон:

{ 
"name": "dfs.namenode.secondary.http-address", 
"templateName": ["snamenode_host"], 
"foreignKey": null, 
"value": "my.secondary.namenode.domain:50090", 
"filename": "hdfs-site.xml" 
}, 
  • переименовывать/USR/Библиотека/ambari-server/web/javascripts/app.js.gz в /usr/lib/ambari-server/web/javascripts/app.js.gz.old

  • GZIP в app.js поэтому новый app.js.gz генерируется в том же каталоге

  • Обновите ambari сеть и заставить рестарт HDFS, это восстановит необходимый Вам/и т.д./Hadoop/конф /hdfs-site.xml, если это не так, вы добавите в ambari web новое свойство, а затем удалите его, чтобы принудительно внести изменения при нажатии кнопки сохранения.

Надеюсь, это поможет.

--mLG

0

Частично исправлено: перед редактированием файла hdfs-site.xml необходимо остановить все службы HDFS (узел журнала, Namenodes и Datanodes). Тогда, конечно, «стартовая кнопка» Ambari не может быть использована, потому что конфигурация будет разбита ... таким образом, необходимо перезапустить все службы вручную. Это не окончательное решение, так как желательно это изменение конфигурации может быть сделано из Ambari UI ...