ambari无法启动namenode

k3fezbri  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(665)

我的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 财产。
有什么想法吗?谢谢!

dhxwm5r4

dhxwm5r41#

我有一个解决方案,使其在ambari环境下工作:
在ambari节点中,修改:
/usr/lib/ambari服务器/web/javascripts/app.js
/usr/lib/ambari服务器/web/javascripts/app.js.map
更改自:

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

指定辅助名称节点而不是模板节点的特定值:

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

将/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公司

z5btuh9x

z5btuh9x2#

部分修复:在编辑前必须停止所有hdfs服务(journal node、namenodes和datanode) hdfs-site.xml 文件。然后,当然,ambari“启动按钮”不能使用,因为配置将被破坏。。。因此,有必要手动重新启动所有服务。这不是最终的解决方案,因为它是可取的这种配置的变化可以从ambari用户界面。。。

相关问题