我的ambari服务器有问题,它无法启动namenode。我使用的是hdp2.0.6,ambari1.4.1。值得一提的是,一旦我启用了kerberos安全性,就会发生这种情况,我的意思是,当它被禁用时,就没有错误了。
错误是: 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地址,该地址实际上在中设置为null hdfs-site-xml
(我不知道为什么):
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>null</value>
</property>
我尝试将该参数的值设置为适当的值,但没有任何效果:
通过手动编辑 hdfs-site.xml
文件和运行 hdfs namenode
,但什么也没发生。
通过手动编辑 hdfs-site.xml
从ambari启动整个hdfs,但是什么都没有发生。即使是 dfs.namenode.secondary.http-address
参数再次设置为空!
通过ambari ui>hdfs服务>配置选项卡> hdfs-site.xml
列表>添加新属性。。。问题是 dfs.namenode.secondary.http-address
没有列出的用户界面不允许我添加它,因为它说。。。它已经存在!:)
我尝试在/usr/lib/ambari-server/web/data/configuration/hdfs-site.json中添加值,认为这可能是ambari存储ui中显示的值的地方,但没有成功。
我还注意到 site-XXXX.pp
文件创建于 /var/lib/ambari-agent/data/
每次从amabri ui重新启动hdfs服务时,我发现这些文件中的每一个都有:
[root@int-iot-hadoop-fe-02 ~]# 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条答案
按热度按时间dhxwm5r41#
我有一个解决方案,使其在ambari环境下工作:
在ambari节点中,修改:
/usr/lib/ambari服务器/web/javascripts/app.js
/usr/lib/ambari服务器/web/javascripts/app.js.map
更改自:
指定辅助名称节点而不是模板节点的特定值:
将/usr/lib/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重新启动,这将重新生成appropiate/etc/hadoop/conf/hdfs-site.xml,如果没有,您可以在ambari站点中添加一个新属性,然后删除它,以便在按save按钮时强制更改。
希望这有帮助。
--mlg公司
z5btuh9x2#
部分修复:在编辑前必须停止所有hdfs服务(journal node、namenodes和datanode)
hdfs-site.xml
文件。然后,当然,ambari“启动按钮”不能使用,因为配置将被破坏。。。因此,有必要手动重新启动所有服务。这不是最终的解决方案,因为它是可取的这种配置的变化可以从ambari用户界面。。。