Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-15216

Canary does not accept config params from command line

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.98.16
    • Fix Version/s: 1.2.0, 1.3.0, 0.98.18, 2.0.0
    • Component/s: canary
    • Labels:
      None

      Description

      At present there are few configs which needs to be present in hbase-site or default xml for it to work. following are the list.
      hbase.canary.threads.num
      hbase.canary.sink.class
      hbase.client.keytab.file
      hbase.client.kerberos.principal

      Execution in secure expects keytab and princ to be present

      2016-02-05 05:58:44,024 ERROR [main] hbase.AuthUtil - Error while trying to perform the initial login: Running in secure mode, but config doesn't have a keytab
      java.io.IOException: Running in secure mode, but config doesn't have a keytab
      	at org.apache.hadoop.security.SecurityUtil.login(SecurityUtil.java:236)
      	at org.apache.hadoop.hbase.security.User$SecureHadoopUser.login(User.java:392)
      	at org.apache.hadoop.hbase.security.User.login(User.java:259)
      	at org.apache.hadoop.hbase.security.UserProvider.login(UserProvider.java:116)
      	at org.apache.hadoop.hbase.AuthUtil.launchAuthChore(AuthUtil.java:64)
      	at org.apache.hadoop.hbase.tool.Canary.main(Canary.java:1146)
      Exception in thread "main" java.io.IOException: Running in secure mode, but config doesn't have a keytab
      	at org.apache.hadoop.security.SecurityUtil.login(SecurityUtil.java:236)
      	at org.apache.hadoop.hbase.security.User$SecureHadoopUser.login(User.java:392)
      	at org.apache.hadoop.hbase.security.User.login(User.java:259)
      	at org.apache.hadoop.hbase.security.UserProvider.login(UserProvider.java:116)
      	at org.apache.hadoop.hbase.AuthUtil.launchAuthChore(AuthUtil.java:64)
      	at org.apache.hadoop.hbase.tool.Canary.main(Canary.java:1146)
      
      public static void main(String[] args) throws Exception {
          final Configuration conf = HBaseConfiguration.create();
          AuthUtil.launchAuthChore(conf);
          int numThreads = conf.getInt("hbase.canary.threads.num", MAX_THREADS_NUM);
          ExecutorService executor = new ScheduledThreadPoolExecutor(numThreads);
      
          Class<? extends Sink> sinkClass =
              conf.getClass("hbase.canary.sink.class", StdOutSink.class, Sink.class);
          Sink sink = ReflectionUtils.newInstance(sinkClass);
      
          int exitCode = ToolRunner.run(conf, new Canary(executor, sink), args);
          executor.shutdown();
          System.exit(exitCode);
        }
      

      In main class these params should be parsed and updated. else for any change to these value hbase-stie.xml needs to be updated

        Attachments

        1. HBASE-15216.v2.patch
          2 kB
          Vishal Khandelwal
        2. HBASE-15216.v1.patch
          2 kB
          Vishal Khandelwal

          Activity

            People

            • Assignee:
              vishk Vishal Khandelwal
              Reporter:
              vishk Vishal Khandelwal
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: