Uploaded image for project: 'Bigtop'
  1. Bigtop
  2. BIGTOP-2743

hbase shell does not work on ppc64le

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.2.0
    • 1.2.1
    • hbase
    • None

    Description

      After upgrading HBase to 1.1.9 in BIGTOP-2740, the HMaster and RegionServer processes look good on ppc64le. This is a significant improvement, as the previous version (1.1.3) did not work at all.

      However, hbase shell still fails like this with 1.1.9:

      $ hbase shell
      OpenJDK 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
      include_class is deprecated. Use java_import.
      include_class is deprecated. Use java_import.
      include_class is deprecated. Use java_import.
      NoMethodError: undefined method `getTerminal' for Java::Jline::Terminal:Module
        refresh_width at /usr/lib/hbase/lib/ruby/shell/formatter.rb:34
           initialize at /usr/lib/hbase/lib/ruby/shell/formatter.rb:48
               (root) at /usr/lib/hbase/bin/hirb.rb:116
      

      This stems from an incompatibility in the JLine version that ships with the updated JRuby lib (which is required for ppc64le). See HBASE-13338 and jruby issue for details.

      You can work around this by patching formatter.rb:

      --- /usr/lib/hbase/lib/ruby/shell/formatter.rb.old  2017-04-17 23:28:49.339383104 +0000
      +++ /usr/lib/hbase/lib/ruby/shell/formatter.rb    2017-04-17 23:30:46.749288423 +0000
      @@ -31,8 +31,7 @@
             def refresh_width()
               require 'readline'
               if $stdout.tty?
      -          @max_width = Java::jline.Terminal.getTerminal().getTerminalWidth()
      +          @max_width = 0
      

      It's not ideal, but it's a simple enough workaround for anyone needing hbase shell on ppc64le.

      I'm opening this jira to determine how best to apply this workaround, or where to document this as a limitation of HBase 1.1.x on ppc64le.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            oflebbe Olaf Flebbe
            kwmonroe Kevin Monroe
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment