You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ambari.apache.org by JOAQUIN GUANTER GONZALBEZ <xi...@tid.es> on 2013/04/08 14:58:12 UTC

has_key(): expects the first argument to be a hash, got \"\" which is of type String

Hello,

In one of my Ambari installations, I'm getting the following error after during the installation task of the NameNodes and the DataNodes:

has_key(): expects the first argument to be a hash, got \"\" which is of type String at /var/lib/ambari-agent/puppet/modules/hdp/manifests/init.pp:38

I've taken a look at the Puppet script, but I can't understand where the $configuration variable is supposed to be defined. The site.pp file which is invoked by the ambari-agent doesn't seem to define it, and yet it seems someone is instantiating it as the empty string. I am using the current code in Amabri's trunk. Also, if I run the same script against the HDP version of Ambari, HDFS gets installed without any problems (and the init.pp script doesn't not contain any references to the $configuration variable)

Any idea on how to debug this situation or what could be causing it?

Thanks,
Ximo

________________________________

Este mensaje se dirige exclusivamente a su destinatario. Puede consultar nuestra pol?tica de env?o y recepci?n de correo electr?nico en el enlace situado m?s abajo.
This message is intended exclusively for its addressee. We only send and receive email on the basis of the terms set out at:
http://www.tid.es/ES/PAGINAS/disclaimer.aspx

Re: has_key(): expects the first argument to be a hash, got \"\" which is of type String

Posted by Siddharth Wagle <sw...@hortonworks.com>.
Hi Ximo,

The $configuration variable is injected in the puppet manifest by the
ambari-agent's python module manifestGenerator.py.

ambari-agent/src/main/python/ambari-agent/manifestGenerator.py

This error would mean that one of the *-site = {} has maps is not present
in the JSON sent from the ambari-server. The server sends all the
*-site.xml configuration data as a JSON string and the python agent injects
the *-site information as a hashmap in the puppet manifest. Example,
hbase-site.xml that is configured using Ambari UI will be send as JSON
object to the agent and will appear as hbase-site => {} variable in every
puppet manifest we generate (site.pp).

This is definitely a bug, if you look at non_global_configuration_types in
the python file it should tell you what JSON objects are actually missing.
I would bet on "hue-site" since it was recently added. The UI code is
probably not yet checked into trunk so it is not creating the hue
configuration.

A workaround would be to try taking the "hue-site" out of the
non_global_configuration_types variable definition.
Note on a installed cluster you should find the python scripts at,
/usr/lib/python2.6/site-packages/ambari_agent.
Remember to restart the agent.

Regards,
Sid

On Mon, Apr 8, 2013 at 5:58 AM, JOAQUIN GUANTER GONZALBEZ <xi...@tid.es>wrote:

>  Hello,
>
>
>
> In one of my Ambari installations, I’m getting the following error after
> during the installation task of the NameNodes and the DataNodes:
>
>
>
> has_key(): expects the first argument to be a hash, got \"\" which is of
> type String at /var/lib/ambari-agent/puppet/modules/hdp/manifests/init.pp:38
>
>
>
> I’ve taken a look at the Puppet script, but I can’t understand where the
> $configuration variable is supposed to be defined. The site.pp file which
> is invoked by the ambari-agent doesn’t seem to define it, and yet it seems
> someone is instantiating it as the empty string. I am using the current
> code in Amabri’s trunk. Also, if I run the same script against the HDP
> version of Ambari, HDFS gets installed without any problems (and the
> init.pp script doesn’t not contain any references to the $configuration
> variable)
>
>
>
> Any idea on how to debug this situation or what could be causing it?
>
>
>
> Thanks,
>
> Ximo
>
> ------------------------------
>
> Este mensaje se dirige exclusivamente a su destinatario. Puede consultar
> nuestra política de envío y recepción de correo electrónico en el enlace
> situado más abajo.
> This message is intended exclusively for its addressee. We only send and
> receive email on the basis of the terms set out at:
> http://www.tid.es/ES/PAGINAS/disclaimer.aspx
>