Support Questions

Find answers, ask questions, and share your expertise
Announcements
Celebrating as our community reaches 100,000 members! Thank you!

Install of HDP fails with "ValueError: invalid literal for int() with base 10: 'usr'" for App Timeline Server Install

avatar

Hi,

the HDP install (with ambari) fails in step "App Timeline Server Install". The error message is:

resource_management.core.exceptions.Fail: Execution of 'ambari-sudo.sh  -H -E touch /var/lib/ambari-agent/data/hdp-select-set-all.performed ; ambari-sudo.sh /usr/bin/hdp-select set all `ambari-python-wrap /usr/bin/hdp-select versions | grep ^2.3 | tail -1`' returned 1. Traceback (most recent call last):
  File "/usr/bin/hdp-select", line 378, in <module>
    printVersions()
  File "/usr/bin/hdp-select", line 235, in printVersions
    result[tuple(map(int, versionRegex.split(f)))] = f
ValueError: invalid literal for int() with base 10: 'usr'
ERROR: set command takes 2 parameters, instead of 1

usage: hdp-select [-h] [<command>] [<package>] [<version>]

Set the selected version of HDP.

positional arguments:

Does it matter if the /usr/hdp directory already exists (is a symlink to a partition with enough space and is empty) ?

Thanks Peter.

1 ACCEPTED SOLUTION

avatar

I have added the value "usr" to the list on line 234 in script /usr/bin/hdp-select and it seems to work. I did not run any cleanup. The HDP version is 2.3.2.0-2950

View solution in original post

14 REPLIES 14

avatar

I have added the value "usr" to the list on line 234 in script /usr/bin/hdp-select and it seems to work. I did not run any cleanup. The HDP version is 2.3.2.0-2950

avatar
Contributor

Peter can you add your code snippet here that you changed? I'm seeing the same issue with trying to install HDP 2.4.0.0-169

avatar
Explorer

Below is code snippet

def printVersions():
  result = {}
  for f in os.listdir(root):
    if f not in [".", "..", "current", "share", "lost+found","usr"]:
      result[tuple(map(int, versionRegex.split(f)))] = f
  keys = result.keys()
  keys.sort()
  for k in keys:
     print result[k]

avatar
New Contributor

I found a similar issue, where /usr/hdp contained a file derby.log

The issue is printVersions should filter based on a directory pattern of "(\d+\.{0,1}.*)-(\d+)"

234 if f notin [".", "..", "current", "share", "lost+found"]:

235 result[tuple(map(int, versionRegex.split(f)))] = f

avatar
New Contributor

@Peter Bartal Am not a python person so bare with me

I think if there was a regex compile

----

filter = regex.compile((\d+\.{0,1}.*)-(\d+))

if filter.match(f)

result[tuple(map(int, versionRegex.split(f)))] = f

----

That should solve the problem

avatar
New Contributor

I found a similar issue, where /usr/hdp contained a file derby.log

The issue is printVersions should filter based on a directory pattern of "(\d+\.{0,1}.*)-(\d+)"

234 if f notin [".", "..", "current", "share", "lost+found"]:

235 result[tuple(map(int, versionRegex.split(f)))] = f

avatar
Expert Contributor
def printVersions():
  result = {}
  for f in os.listdir(root):
    if f not in [".", "..", "current", "share", "lost+found","docker"]:
      result[tuple(map(int, versionRegex.split(f)))] = f
  keys = result.keys()
 ....

This fixed my issue. Happened to me when i was restarting Hbase to deploy a service on Ambari and hbase client wouldn't install.It said "docker" in printVersions function, instead of "usr". Thanks!

avatar
This fixed my issue. Happened to me when i was restarting Hbase to deploy a service on Ambari and hbase client wouldn't install.It said "hadoop" in printVersions function, instead of "usr" or "docker". I have observed that we need to give that user that prompts
in the error msg when we run this command from /var/lib/ambari-agent : ./ambari-sudo.sh
/usr/bin/hdp-select set all `ambari-python-wrap /usr/bin/hdp-select versions |
grep ^2.3.2.0-2950 | tail -1` 

Thanks!


go to /usr/bin/

vi hdp-select

Change Print the installed packages code to appropriate error user:

	# Print the installed packages
def printVersions():
  result = {}
  for f in os.listdir(root):
    if f not in [".", "..", "current", "share", "lost+found","hadoop"]:
      result[tuple(map(int, versionRegex.split(f)))] = f
  keys = result.keys()
  keys.sort()
  for k in keys:
     print result[k]

avatar
New Contributor

Faced this issue while installing HDP 2.4.2 on Centos 7.x.

Fix for this issue depends on details in error message.

ValueError: invalid literal forint()withbase10:'hadoop' <-- base on this vale need to modify function - printVersions in file /usr/bin/hdp-select on all nodes.

Easy part is this file is same on all nodes ,you can do changes on one node and clush it to all nodes.

clush -ab md5sum /usr/bin/hdp-select
vim /usr/bin/hdp-select
#modify below function..
Clush -ab -c /usr/bin/hdp-select
def printVersions():
  ......
  ......
    if f not in [".", "..", "current", "share", "lost+found","hadoop"]:
  ......