Support Questions
Find answers, ask questions, and share your expertise

How to change zookeeper default directory during Ambari setup

Highlighted

How to change zookeeper default directory during Ambari setup

Explorer

During the Ambari setup, Ambari is trying to create the home directory for zookeeper at /home/zookeeper. Because our network setup, I cannot use "/home" directory. How can I instruct Ambari to create zookeeper home directory to somewhere else, like /hadoop/zookeeper?

Here is the error message I got

Traceback (most recent call last):
  File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/hooks/before-ANY/scripts/hook.py", line 35, in <module>
    BeforeAnyHook().execute()
  File "/usr/lib/ambari-agent/lib/resource_management/libraries/script/script.py", line 375, in execute
    method(env)
  File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/hooks/before-ANY/scripts/hook.py", line 29, in hook
    setup_users()
  File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/hooks/before-ANY/scripts/shared_initialization.py", line 51, in setup_users
    fetch_nonlocal_groups = params.fetch_nonlocal_groups,
  File "/usr/lib/ambari-agent/lib/resource_management/core/base.py", line 166, in __init__
    self.env.run()
  File "/usr/lib/ambari-agent/lib/resource_management/core/environment.py", line 160, in run
    self.run_action(resource, action)
  File "/usr/lib/ambari-agent/lib/resource_management/core/environment.py", line 124, in run_action
    provider_action()
  File "/usr/lib/ambari-agent/lib/resource_management/core/providers/accounts.py", line 84, in action_create
    shell.checked_call(command, sudo=True)
  File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 76, in inner
    result = function(command, **kwargs)
  File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 108, in checked_call
    tries=tries, try_sleep=try_sleep, timeout_kill_strategy=timeout_kill_strategy)
  File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 156, in _call_wrapper
    result = _call(command, **kwargs_copy)
  File "/usr/lib/ambari-agent/lib/resource_management/core/shell.py", line 309, in _call
    raise ExecutionFailed(err_msg, code, out, err)
resource_management.core.exceptions.ExecutionFailed: Execution of 'useradd -m -G hadoop -g hadoop zookeeper' returned 12. useradd: cannot create directory /home/zookeeper
Error: Error: Unable to run the custom hook script ['/usr/bin/python', '/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/hooks/before-ANY/scripts/hook.py', 'ANY', '/var/lib/ambari-agent/data/command-251.json', '/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/hooks/before-ANY', '/var/lib/ambari-agent/data/structured-out-251.json', 'INFO', '/var/lib/ambari-agent/tmp', 'PROTOCOL_TLSv1', '']
2 REPLIES 2
Highlighted

Re: How to change zookeeper default directory during Ambari setup

Rising Star

@Harry Li

This is not something where ambari needs to be instructed. From ambari, all it is doing is execurting the OS command - "useradd".
The useradd command of Linux create the directory at the default locaiton which is /home.

I assume here that you are using the Linux mostly - RHEL or CentOS. If so, then in order to change the default directory location from /home to /hadoop, you need to edit the OS files - "/etc/default/useradd".

# cat /etc/default/useradd

GROUP=100
HOME=/home
INACTIVE=30
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

The file "/etc/default/useradd" as seen from above has the default HOME directory location set as /home.

You can edit it to make it as

# vi /etc/default/useradd

GROUP=100
HOME=/hadoop
INACTIVE=30
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

Hope this helps.

Re: How to change zookeeper default directory during Ambari setup

Rising Star

# cat /etc/default/useradd

GROUP=100
HOME=/home
INACTIVE=30
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

# vi /etc/default/useradd

GROUP=100
HOME=/hadoop
INACTIVE=30
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

Make any other default changes which you like.