Support Questions

Find answers, ask questions, and share your expertise

Ambari custom install failure

avatar
Master Mentor

failed-cluster-install.pdfHi all,

I have test driven the sandbox for a while and I decided to take my knowledge to another level. I got 4 refurbished PowerEdge servers 2 Dell 2850 and 2 Dell 2950. The Ambari server preparation and host discovery was successful see attached pdf. In the assign master I realised the Ambari server was overloaded so I reassigned some components to other servers. I was lost when it came to assign slave and client ONLY one of the servers have been check so I decided to go with the default. The Install start and smoke test failed.(Attached pdf)

I don't intend to create multiple users across the cluster ,how do I achieve this which file should I edit prior to the launch ? Below extract of the user creation error

2016-01-14 00:25:23,320 - Group['hadoop'] {'ignore_failures': False}

2016-01-14 00:25:23,320 - Group['users'] {'ignore_failures': False}

2016-01-14 00:25:23,320 - Group['knox'] {'ignore_failures': False}

2016-01-14 00:25:23,320 - User['hive'] {'gid': 'hadoop', 'ignore_failures': False, 'groups': ['hadoop']}

2016-01-14 00:25:23,321 - User['storm'] {'gid': 'hadoop', 'ignore_failures': False, 'groups': ['hadoop']}

2016-01-14 00:25:23,322 - User['zookeeper'] {'gid': 'hadoop', 'ignore_failures': False, 'groups': ['hadoop']}

Any advice is welcome

1 ACCEPTED SOLUTION

avatar

@Geoffrey Shelton Okot

During the installation, you can (and should) specify where the data for HDFS resides by editing the HDFS configuration parameters before deploying the cluster. By default, Ambari picks up any filesystems besides / and puts them in the list. If you don't edit the namenode and datanode directories, you will be using /tmp, /var, /usr, etc., to store data and metadata if those are separate filesystems on your system.

The bits get installed under /usr/hdp. That can not be modified. The packages (RPMs) are built to put things in this standard location, and any 3rd party applications that expect the binaries and configs to be in the standard locations will not be able to function otherwise.

Likewise, during the installation, you can specify the service user accounts if you don't wish to use the default usernames. Since, in an unsecured cluster, any user can access the data stored in HDFS, you don't need to consolidate the service accounts in order to be productive right off the bat. If you are securing your cluster, then you won't want to run these services as the same username anyway because it can cause a security hole if you want to separate the users who can access certain functions on the cluster.

There is a python script that can be used to clean up a failed installation. If Ambari detects users that already exist or a few other conditions that suggest a failed install, it will recommend that you run this script to clean up the systems before proceeding with the installation. Here is where the script lives and the help information for running it:

[root@sandbox ~]# python /usr/lib/python2.6/site-packages/ambari_agent/HostCleanup.py --help
Usage: HostCleanup.py [options]
Options:
  -h, --help            show this help message and exit
  -v, --verbose         output verbosity.
  -f FILE, --file=FILE  host check result file to read.
  -o FILE, --out=FILE   log file to store results.
  -k SKIP, --skip=SKIP  (packages|users|directories|repositories|processes|alt
                        ernatives). Use , as separator.
  -s, --silent          Silently accepts default prompt values

View solution in original post

5 REPLIES 5

avatar
Master Mentor

it's easier to do a reinstall as you may have multiple issues. Otherwise, go through each node and install clients, etc. @Geoffrey Shelton Okot

avatar
Master Mentor
@Geoffrey Shelton Okot

resource_management.core.exceptions.Fail: Applying File['/usr/hdp/current/hadoop-client/conf/hadooppolicy.xml'] failed, parent directory /usr/hdp/current/hadoop-client/conf doesn't exist

If it's multiple attempt to install the cluster then I recommend to look into the option to cleanup the install completely and reinstall.

avatar
Master Mentor

@Artem@neeraj Thanks guys for your responses as you realise HDP creates a couple of users and bit difficult to manage across the cluster.

1. I want to have only one user eg.tom to own all the hive,hdfs,pig etc as it easy to ssh to any server and quickly be effective avoiding the su or sudo which file should I edit to achieve this ?

2. I have done a lot of Linux installs the default HDP FS layout doesn't please me at all I want to install HDP outside the /var /usr or /etc directories so if anything goes wrong I can just delete all files in that partition and and relaunch after some minor cleanup. My reasoning is I would like to allocate /u01 like 300 GB HDD on each of the 4 server in the cluster so I end up with 1.2 T after HDFS format for data.

avatar

@Geoffrey Shelton Okot

During the installation, you can (and should) specify where the data for HDFS resides by editing the HDFS configuration parameters before deploying the cluster. By default, Ambari picks up any filesystems besides / and puts them in the list. If you don't edit the namenode and datanode directories, you will be using /tmp, /var, /usr, etc., to store data and metadata if those are separate filesystems on your system.

The bits get installed under /usr/hdp. That can not be modified. The packages (RPMs) are built to put things in this standard location, and any 3rd party applications that expect the binaries and configs to be in the standard locations will not be able to function otherwise.

Likewise, during the installation, you can specify the service user accounts if you don't wish to use the default usernames. Since, in an unsecured cluster, any user can access the data stored in HDFS, you don't need to consolidate the service accounts in order to be productive right off the bat. If you are securing your cluster, then you won't want to run these services as the same username anyway because it can cause a security hole if you want to separate the users who can access certain functions on the cluster.

There is a python script that can be used to clean up a failed installation. If Ambari detects users that already exist or a few other conditions that suggest a failed install, it will recommend that you run this script to clean up the systems before proceeding with the installation. Here is where the script lives and the help information for running it:

[root@sandbox ~]# python /usr/lib/python2.6/site-packages/ambari_agent/HostCleanup.py --help
Usage: HostCleanup.py [options]
Options:
  -h, --help            show this help message and exit
  -v, --verbose         output verbosity.
  -f FILE, --file=FILE  host check result file to read.
  -o FILE, --out=FILE   log file to store results.
  -k SKIP, --skip=SKIP  (packages|users|directories|repositories|processes|alt
                        ernatives). Use , as separator.
  -s, --silent          Silently accepts default prompt values

avatar
Master Mentor

@emaxwel @Artem @neeraj

Gentlemen thanks for all your responses.Its unfortunate the bits can't be installed elsewhere except in /usr/hdp and furthermore administration of the various named used could have been simplified I am from the Oracle Application background at most there are 2 users for the ebs application and database. I will reformat the 4 servers. @emaxwell you have a very valid argument on the segregation of duties I will try to incorporate that "security concern" I dont want some dark angel poke holes in my production cluster