Конфликты, вызванные использованием kafka и HBase - PullRequest
0 голосов
/ 15 ноября 2018

Когда я использую «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. Кто-нибудь может дать мне какой-нибудь совет?

1 Ответ

0 голосов
/ 22 ноября 2018

Кажется, я нашел ответ: https://issues.apache.org/jira/browse/KAFKA-5294

Затем я вручную указываю зависимости (версия, которую я использовал, была 0.10.2.1)

<dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka_2.11</artifactId>
        <version>0.11.0.0</version>
        <scope>compile</scope>
</dependency>

работает

...