Когда я использую «Stream Streaming» для чтения «kafka» (требующего проверки sasl) и затем сохраняю данные в «HBase», «HBase» выдает следующую ошибку
java.io.IOException: java.lang.reflect.InvocationTargetException
в org.apache.hadoop.hbase.client.ConnectionFactory.createConnection (ConnectionFactory.java:240)
в org.apache.hadoop.hbase.client.ConnectionFactory.createConnection (ConnectionFactory.java:218)
в org.apache.hadoop.hbase.client.ConnectionFactory.createConnection (ConnectionFactory.java:181)
в com.xueersi.datamining.ups.database.implement.HbaseClient.connect (HbaseClient.scala: 91)
на com.xueersi.datamining.ups.stream.start.BaseInfoLogAnalysisStart $$ anonfun $ main $ 1 $$ anonfun $ apply $ 2.apply (BaseInfoLogAnalysisStart.scala: 78)
на com.xueersi.datamining.ups.stream.start.BaseInfoLogAnalysisStart $$ anonfun $ main $ 1 $$ anonfun $ apply $ 2.apply (BaseInfoLogAnalysisStart.scala: 75)
в org.apache.spark.rdd.RDD $$ anonfun $ foreachPartition $ 1 $$ anonfun $ apply $ 29.apply (RDD.scala: 925)
в org.apache.spark.rdd.RDD $$ anonfun $ foreachPartition $ 1 $$ anonfun $ apply $ 29.apply (RDD.scala: 925)
в org.apache.spark.SparkContext $$ anonfun $ runJob $ 5.apply (SparkContext.scala: 1956)
в org.apache.spark.SparkContext $$ anonfun $ runJob $ 5.apply (SparkContext.scala: 1956)
в org.apache.spark.scheduler.ResultTask.runTask (ResultTask.scala: 87)
в org.apache.spark.scheduler.Task.run (Task.scala: 99)
в org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 325)
в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)
в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624)
на java.lang.Thread.run (Thread.java:748)
Вызывается: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (собственный метод)
at sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45)
в java.lang.reflect.Constructor.newInstance (Constructor.java:423)
в org.apache.hadoop.hbase.client.ConnectionFactory.createConnection (ConnectionFactory.java:238)
... еще 15
Вызвано: java.lang.ExceptionInInitializerError
в org.apache.hadoop.hbase.ClusterId.parseFrom (ClusterId.java:64)
в org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode (ZKClusterId.java:75)
в org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId (ZooKeeperRegistry.java:105)
в org.apache.hadoop.hbase.client.ConnectionManager $ HConnectionImplementation.retrieveClusterId (ConnectionManager.java:931)
в org.apache.hadoop.hbase.client.ConnectionManager $ HConnectionImplementation. (ConnectionManager.java:658)
... еще 20
Вызывается: java.lang.NullPointerException
в org.apache.kafka.common.security.plain.PlainSaslServer $ PlainSaslServerFactory.getMechanismNames (PlainSaslServer.java:163)
в org.apache.hadoop.security.SaslRpcServer $ FastSaslServerFactory. (SaslRpcServer.java:381)
в org.apache.hadoop.security.SaslRpcServer.init (SaslRpcServer.java:186)
в org.apache.hadoop.ipc.RPC.getProtocolProxy (RPC.java:570)
в org.apache.hadoop.hdfs.NameNodeProxies.createNNProxyWithClientProtocol (NameNodeProxies.java:418)
в org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy (NameNodeProxies.java:314)
в org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider $ DefaultProxyFactory.createProxy (ConfiguredFailoverProxyProvider.java:68)
в org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider.getProxy (ConfiguredFailoverProxyProvider.java:152)в org.apache.hadoop.io.retry.RetryInvocationHandler. (RetryInvocationHandler.java:75) в org.apache.hadoop.io.retry.RetryInvocationHandler. (RetryInvocationHandler.java:66) в org.apache.ryadoop.RetryProxy.create (RetryProxy.java:58) в org.apache.hadoop.hdfs.NameNodeProxies.createProxy (NameNodeProxies.java:181) в org.apache.hadoop.hdfs.DFSClient. (DFSClient.java:762).apache.hadoop.hdfs.DFSClient. (DFSClient.java:693) в org.apache.hadoop.hdfs.DistributedFileSystem.initialize (DistributedFileSystem.java:158) в org.apache.hadoop.fs.FileSystem.createFileSystem (Java: 2816) в org.apache.hadoop.fs.FileSystem.access $ 200 (FileSystem.java:98) в org.apache.hadoop.fs.FileSystem $ Cache.getInternal (FileSystem.java:2853) в org.apache.hadoop.fs.FileSystem $ Cache.get (FileSystem.java:2835) в org.apache.hadoop.fs.FileSystem.get (FileSystem.java:387) в org.apache.hadoop.fs.FileSystem.get (FileSystem.Java: 186) в org.apache.hadoop.fs.FileSystem.get (FileSystem.java:371) в org.apache.hadoop.fs.Path.getFileSystem (Path.java:296) в org.apache.hadoop.hbase.util.DynamicClassLoader.initTempDir (DynamicClassLoader.java:120) в org.apache.hadoop.hbase.util.DynamicClassLoader (DynamicClassLoader.java:98) at org.apache.hadoop.hbase.protobuf.ProtobufUtil. (ProtobufUtil.java:246) ... еще 25
Но когда я читаю другую «Кафку» (безsasl validation), не было проблем с "HBase.Кроме того, для аутентификации kerberos требуется HBase. Я думаю, что существует конфликт между сертификацией safl kafka и сертификацией kerberos hbase. Кто-нибудь может дать мне какой-нибудь совет?