Archives of Support Questions (Read Only)

This is an archived board for historical reference. Information and links may no longer be available or relevant
Announcements
This board is archived and read-only for historical reference. To ask a new question, please post a new topic on the appropriate active board.

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

avatar
New Member

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
New Member

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
New Member

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
New Member

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
New Member

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 Member

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 Member

@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 Member

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

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"]:
  ......