Uploaded image for project: 'CDH (READ-ONLY)'
  1. CDH (READ-ONLY)
  2. DISTRO-527

Issues while running Secure Lily HBase Indexer

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: search-1.1.0
    • Fix Version/s: None
    • Component/s: Search
    • Labels:
      None

      Description

      @Gregory and myself found some problems while trying to validate Lily HBase indexer on Secure cluster.

      Here are the steps followed:

      • We validated the Secure HBase replication (master-slave) against two secure HBase clusters
      • We setup the lily hbase indexer by creating a JAAS conf and setting java.security.auth.login.config via Java config options.
      • We wrote new data to hbase and verified that it still showed up in the slave cluster, but nothing showed up in solr.
      • Looking in the hbase logs, it appears that the issue is the hbase RS from the master cluster wasn't able to connect via kerberos to the fake Lily RS. So, we edited hbase-indexer-site.xml to add the properties necessary for secure RPC in hbase.
      • We restarted the hbase indexer but the process failed with an NPE. It appears that the RPCServer in the hbase indexer doesn't try to read the Configuration - it just returns a null configuration.
        2013-10-08 18:42:25,378 INFO org.apache.solr.client.solrj.impl.HttpClientUtil: Creating new http client, config:
        2013-10-08 18:42:25,378 INFO org.apache.solr.client.solrj.impl.HttpClientUtil: Setting up SPNego auth with config: /etc/hbase-solr/conf/jaas.conf
        2013-10-08 18:42:25,391 INFO org.apache.hadoop.ipc.RpcServer: regionserver/hbase-master.ent.cloudera.com/10.20.193.95:0: started 10 reader(s).
        2013-10-08 18:42:25,392 ERROR com.ngdata.hbaseindexer.supervisor.IndexerSupervisor: Problem starting indexer myIndexer
        java.lang.NullPointerException
        	at org.apache.hadoop.hbase.ipc.RpcServer.createSecretManager(RpcServer.java:2113)
        	at org.apache.hadoop.hbase.ipc.RpcServer.startThreads(RpcServer.java:2076)
        	at org.apache.hadoop.hbase.ipc.RpcServer.start(RpcServer.java:2058)
        	at com.ngdata.sep.impl.SepConsumer.start(SepConsumer.java:141)
        	at com.ngdata.hbaseindexer.supervisor.IndexerSupervisor$IndexerHandle.start(IndexerSupervisor.java:386)
        	at com.ngdata.hbaseindexer.supervisor.IndexerSupervisor.startIndexer(IndexerSupervisor.java:244)
        	at com.ngdata.hbaseindexer.supervisor.IndexerSupervisor.access$900(IndexerSupervisor.java:82)
        	at com.ngdata.hbaseindexer.supervisor.IndexerSupervisor$EventWorker.run(IndexerSupervisor.java:424)
        	at java.lang.Thread.run(Thread.java:724)
        

      Here's the RPCServer trying to read the Configuration to setup secure rpc:
      https://github.com/apache/hbase/blob/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java#L2112
      Here's the SEPConsumer setting up the rpcServer:
      https://github.com/NGDATA/hbase-indexer/blob/master/hbase-sep/hbase-sep-impl-0.95/src/main/java/com/ngdata/sep/impl/SepConsumer.java#L139
      Here's the RPCServer always returning null:
      https://github.com/NGDATA/hbase-indexer/blob/master/hbase-sep/hbase-sep-impl-0.95/src/main/java/com/ngdata/sep/impl/BaseHRegionServer.java#L109
      So, this may be not too difficult to fix if we can just get the proper configuration returned, but it definitely requires more investigation.

        Attachments

          Activity

            People

            • Assignee:
              gchanan Gregory Chanan
              Reporter:
              vamsee Vamsee Yarlagadda
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: