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

Canary does not accept config params from command line

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.98.16
    • 1.2.0, 1.3.0, 0.98.18, 2.0.0
    • canary
    • 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.v1.patch
          2 kB
          Vishal Khandelwal
        2. HBASE-15216.v2.patch
          2 kB
          Vishal Khandelwal

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: