Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-4603

Installation on Solaris needs additional PATH setting

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s: 0.18.2
    • Fix Version/s: None
    • Component/s: fs
    • Labels:
      None
    • Environment:

      Solaris 10 x86

    • Hadoop Flags:
      Incompatible change

      Description

      A default installation as outlined in the docs won't start on Solaris 10 x86. The "whoami" utility is in path "/usr/ucb" on Solaris 10, which isn't in the standard PATH environment variable unless the user has added that specifically. The documentation should reflect this.

      Solaris 10 also seemed to throw NPEs if you didn't explicitly set the IP address to bind the servers to. Simply overriding the IP address fixes the problem.

      1. id_instead_of_whoami.diff
        2 kB
        Kai Mosebach
      2. HADOOP-4603
        1 kB
        Kohsuke Kawaguchi

        Issue Links

          Activity

          Hide
          steve_l Steve Loughran added a comment -

          Stack traces of any NPEs would be handy.

          Show
          steve_l Steve Loughran added a comment - Stack traces of any NPEs would be handy.
          Hide
          mokai Kai Mosebach added a comment -

          Uses sh, id, sed, cut instead of whoami

          Show
          mokai Kai Mosebach added a comment - Uses sh, id, sed, cut instead of whoami
          Hide
          szetszwo Tsz Wo Nicholas Sze added a comment -

          Currently, we don't require sh, cut and sed. These changes may break existing systems. BTW, we do assume bash.

          Show
          szetszwo Tsz Wo Nicholas Sze added a comment - Currently, we don't require sh, cut and sed. These changes may break existing systems. BTW, we do assume bash.
          Hide
          mokai Kai Mosebach added a comment -

          ok, good to know...

          bash might be missing on systems like Solaris and BSD though and/or in a different path.

          Show
          mokai Kai Mosebach added a comment - ok, good to know... bash might be missing on systems like Solaris and BSD though and/or in a different path.
          Hide
          kohsuke Kohsuke Kawaguchi added a comment -

          I think a better change is for Hadoop to simply try /usr/ucb/whoami if exec whoami fails. This code executes only once, so I don't see any downside of trying multiple locations for better user experience.

          Another possibility is to use JNA (http://jna.dev.java.net/) and make a libc call from within Java.

          Show
          kohsuke Kohsuke Kawaguchi added a comment - I think a better change is for Hadoop to simply try /usr/ucb/whoami if exec whoami fails. This code executes only once, so I don't see any downside of trying multiple locations for better user experience. Another possibility is to use JNA ( http://jna.dev.java.net/ ) and make a libc call from within Java.
          Hide
          kohsuke Kohsuke Kawaguchi added a comment -
          Show
          kohsuke Kohsuke Kawaguchi added a comment - A patch to call /usr/ucb/whoami is at http://github.com/kohsuke/hadoop/commit/0fe42e97df3a3d4fec9bb503f3eee266eadd1e02
          Hide
          kohsuke Kohsuke Kawaguchi added a comment -

          Patch extracted from Git

          Show
          kohsuke Kohsuke Kawaguchi added a comment - Patch extracted from Git
          Hide
          aw Allen Wittenauer added a comment -

          Calling /usr/ucb/whoami directly is definitely the way to go, IMO. It is going to exist on all but the most hardened of Solaris boxes.

          Show
          aw Allen Wittenauer added a comment - Calling /usr/ucb/whoami directly is definitely the way to go, IMO. It is going to exist on all but the most hardened of Solaris boxes.
          Hide
          qwertymaniac Harsh J added a comment -

          Hey Allen, if you can +1, we can commit changes similar to Kohsuke's into the trunk to at least have whoami working on Solaris (its a start…).

          Let me know if there really is no better way for sure.

          Show
          qwertymaniac Harsh J added a comment - Hey Allen, if you can +1, we can commit changes similar to Kohsuke's into the trunk to at least have whoami working on Solaris (its a start…). Let me know if there really is no better way for sure.
          Hide
          aw Allen Wittenauer added a comment -

          This is essentially fixed by using the native libraries in newer releases of Hadoop. The problem is that the native code is completely non-portable and the committer community has shown no real desire to make that code portable. I don't believe we should encourage folks to run without the native code because the performance is likely to be seriously horrendous. (My anecdotal experience says the NN in 0.20.20x is 10-15% slower compared to 0.20.2).

          At this point, I'd close this as won't fix, just like I did all of my portability JIRAs (including some with patches). I think pretending that we care about portability is sort of silly at this point when it has been demonstrated over and over that we don't.

          Show
          aw Allen Wittenauer added a comment - This is essentially fixed by using the native libraries in newer releases of Hadoop. The problem is that the native code is completely non-portable and the committer community has shown no real desire to make that code portable. I don't believe we should encourage folks to run without the native code because the performance is likely to be seriously horrendous. (My anecdotal experience says the NN in 0.20.20x is 10-15% slower compared to 0.20.2). At this point, I'd close this as won't fix, just like I did all of my portability JIRAs (including some with patches). I think pretending that we care about portability is sort of silly at this point when it has been demonstrated over and over that we don't.
          Hide
          aw Allen Wittenauer added a comment -

          Now I really am going to close this as Won't Fix, especially since we finally removed the requirement for whoami.

          Show
          aw Allen Wittenauer added a comment - Now I really am going to close this as Won't Fix, especially since we finally removed the requirement for whoami.

            People

            • Assignee:
              Unassigned
              Reporter:
              jbrisbin Jon Brisbin
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development