Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 火花“;无法构造kafka consumer“;通过SSL_Apache Spark_Ssl_Apache Kafka_Jaas - Fatal编程技术网

Apache spark 火花“;无法构造kafka consumer“;通过SSL

Apache spark 火花“;无法构造kafka consumer“;通过SSL,apache-spark,ssl,apache-kafka,jaas,Apache Spark,Ssl,Apache Kafka,Jaas,我正试图建立一个Spark工作来使用卡夫卡的数据。Kafka代理已设置SSL,但我无法正确构建/验证消费者 spark shell命令: spark-2.3.4-bin-hadoop2.7/bin/spark-shell --packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.3.4 --files "spark-kafka.jaas" --driver-java-options "-Djava.secur

我正试图建立一个Spark工作来使用卡夫卡的数据。Kafka代理已设置SSL,但我无法正确构建/验证消费者

spark shell
命令:

spark-2.3.4-bin-hadoop2.7/bin/spark-shell 
    --packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.3.4 
    --files "spark-kafka.jaas"   
    --driver-java-options "-Djava.security.auth.login.config=./spark-kafka.jaas"   
    --conf "spark.executor.extraJavaOptions=-Djava.security.auth.login.config=./spark-kafka.jaas"
spark kafka.jaas

KafkaClient {
   org.apache.kafka.common.security.plain.PlainLoginModule required
   username="myusername"
   password="mypwd"
};
Shell命令:

val df = spark
    .read
    .format("kafka")
    .option("kafka.bootstrap.servers", "host1:port1, host2:port2")
    .option("kafka.security.protocol", "SASL_SSL")
    .option("kafka.ssl.truststore.location", "./truststore.jks")
    .option("kafka.ssl.truststore.password", "truststore-pwd")
    .option("kafka.ssl.endpoint.identification.algorithm", "")
    .option("kafka.sasl.mechanism", "SCRAM-SHA-256")
    .option("subscribe", "mytopic")
    .option("startingOffsets", "earliest")
    .load()

df.show()
错误:

2019-09-23 16:32:19 WARN  ObjectStore:568 - Failed to get database global_temp, returning NoSuchObjectException
org.apache.kafka.common.KafkaException: Failed to construct kafka consumer
  at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:702)
  at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:557)
  at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:540)
  at org.apache.spark.sql.kafka010.SubscribeStrategy.createConsumer(ConsumerStrategy.scala:62)
  at org.apache.spark.sql.kafka010.KafkaOffsetReader.createConsumer(KafkaOffsetReader.scala:314)
  at org.apache.spark.sql.kafka010.KafkaOffsetReader.<init>(KafkaOffsetReader.scala:78)
  at org.apache.spark.sql.kafka010.KafkaRelation.buildScan(KafkaRelation.scala:62)
  at org.apache.spark.sql.execution.datasources.DataSourceStrategy.apply(DataSourceStrategy.scala:308)
  at org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$1.apply(QueryPlanner.scala:63)
  at org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$1.apply(QueryPlanner.scala:63)
  at scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:434)
  at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440)
  at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
  at org.apache.spark.sql.catalyst.planning.QueryPlanner.plan(QueryPlanner.scala:93)
  at org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2$$anonfun$apply$2.apply(QueryPlanner.scala:78)
  at org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2$$anonfun$apply$2.apply(QueryPlanner.scala:75)
  at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:157)
  at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:157)
  at scala.collection.Iterator$class.foreach(Iterator.scala:893)
  at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
  at scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:157)
  at scala.collection.AbstractIterator.foldLeft(Iterator.scala:1336)
  at org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2.apply(QueryPlanner.scala:75)
  at org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2.apply(QueryPlanner.scala:67)
  at scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:434)
  at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440)
  at org.apache.spark.sql.catalyst.planning.QueryPlanner.plan(QueryPlanner.scala:93)
  at org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2$$anonfun$apply$2.apply(QueryPlanner.scala:78)
  at org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2$$anonfun$apply$2.apply(QueryPlanner.scala:75)
  at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:157)
  at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:157)
  at scala.collection.Iterator$class.foreach(Iterator.scala:893)
  at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
  at scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:157)
  at scala.collection.AbstractIterator.foldLeft(Iterator.scala:1336)
  at org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2.apply(QueryPlanner.scala:75)
  at org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2.apply(QueryPlanner.scala:67)
  at scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:434)
  at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440)
  at org.apache.spark.sql.catalyst.planning.QueryPlanner.plan(QueryPlanner.scala:93)
  at org.apache.spark.sql.execution.QueryExecution.sparkPlan$lzycompute(QueryExecution.scala:72)
  at org.apache.spark.sql.execution.QueryExecution.sparkPlan(QueryExecution.scala:68)
  at org.apache.spark.sql.execution.QueryExecution.executedPlan$lzycompute(QueryExecution.scala:77)
  at org.apache.spark.sql.execution.QueryExecution.executedPlan(QueryExecution.scala:77)
  at org.apache.spark.sql.Dataset.withAction(Dataset.scala:3260)
  at org.apache.spark.sql.Dataset.head(Dataset.scala:2495)
  at org.apache.spark.sql.Dataset.take(Dataset.scala:2709)
  at org.apache.spark.sql.Dataset.showString(Dataset.scala:254)
  at org.apache.spark.sql.Dataset.show(Dataset.scala:729)
  at org.apache.spark.sql.Dataset.show(Dataset.scala:688)
  at org.apache.spark.sql.Dataset.show(Dataset.scala:697)
  ... 49 elided
Caused by: org.apache.kafka.common.KafkaException: java.lang.SecurityException: java.io.IOException: Configuration Error:
    Line 5: expected [option key]
  at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:86)
  at org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:70)
  at org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:83)
  at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:623)
  ... 99 more
Caused by: java.lang.SecurityException: java.io.IOException: Configuration Error:
    Line 5: expected [option key]
  at sun.security.provider.ConfigFile$Spi.<init>(ConfigFile.java:137)
  at sun.security.provider.ConfigFile.<init>(ConfigFile.java:102)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
  at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
  at java.lang.Class.newInstance(Class.java:442)
  at javax.security.auth.login.Configuration$2.run(Configuration.java:255)
  at javax.security.auth.login.Configuration$2.run(Configuration.java:247)
  at java.security.AccessController.doPrivileged(Native Method)
  at javax.security.auth.login.Configuration.getConfiguration(Configuration.java:246)
  at org.apache.kafka.common.security.authenticator.AbstractLogin.login(AbstractLogin.java:61)
  at org.apache.kafka.common.security.authenticator.LoginManager.<init>(LoginManager.java:46)
  at org.apache.kafka.common.security.authenticator.LoginManager.acquireLoginManager(LoginManager.java:68)
  at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:78)
  ... 102 more
Caused by: java.io.IOException: Configuration Error:
    Line 5: expected [option key]
  at sun.security.provider.ConfigFile$Spi.ioException(ConfigFile.java:666)
  at sun.security.provider.ConfigFile$Spi.match(ConfigFile.java:562)
  at sun.security.provider.ConfigFile$Spi.parseLoginEntry(ConfigFile.java:477)
  at sun.security.provider.ConfigFile$Spi.readConfig(ConfigFile.java:427)
  at sun.security.provider.ConfigFile$Spi.init(ConfigFile.java:329)
  at sun.security.provider.ConfigFile$Spi.init(ConfigFile.java:271)
  at sun.security.provider.ConfigFile$Spi.<init>(ConfigFile.java:135)
  ... 116 more
2019-09-23 16:32:19警告对象存储:568-无法获取数据库全局温度,返回NoSuchObjectException
org.apache.kafka.common.KafkaException:无法构造kafka使用者
位于org.apache.kafka.clients.consumer.KafkaConsumer.(KafkaConsumer.java:702)
位于org.apache.kafka.clients.consumer.KafkaConsumer.(KafkaConsumer.java:557)
位于org.apache.kafka.clients.consumer.KafkaConsumer.(KafkaConsumer.java:540)
在org.apache.spark.sql.kafka010.subscribbeststrategy.createConsumer(ConsumerStrategy.scala:62)
位于org.apache.spark.sql.kafka010.KafkaOffsetReader.createConsumer(KafkaOffsetReader.scala:314)
位于org.apache.spark.sql.kafka010.KafkaOffsetReader(KafkaOffsetReader.scala:78)
位于org.apache.spark.sql.kafka010.KafkaRelation.buildScan(KafkaRelation.scala:62)
位于org.apache.spark.sql.execution.datasources.DataSourceStrategy.apply(DataSourceStrategy.scala:308)
位于org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$1.apply(QueryPlanner.scala:63)
位于org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$1.apply(QueryPlanner.scala:63)
位于scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:434)
位于scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440)
位于scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:439)
位于org.apache.spark.sql.catalyst.planning.QueryPlanner.plan(QueryPlanner.scala:93)
在org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2$$anonfun$apply$2.apply(QueryPlanner.scala:78)
在org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2$$anonfun$apply$2.apply(QueryPlanner.scala:75)
在scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply处(TraversableOnce.scala:157)
在scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply处(TraversableOnce.scala:157)
位于scala.collection.Iterator$class.foreach(Iterator.scala:893)
位于scala.collection.AbstractIterator.foreach(迭代器.scala:1336)
位于scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:157)
位于scala.collection.AbstractIterator.foldLeft(Iterator.scala:1336)
在org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2.apply上(QueryPlanner.scala:75)
在org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2.apply上(QueryPlanner.scala:67)
位于scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:434)
位于scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440)
位于org.apache.spark.sql.catalyst.planning.QueryPlanner.plan(QueryPlanner.scala:93)
在org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2$$anonfun$apply$2.apply(QueryPlanner.scala:78)
在org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2$$anonfun$apply$2.apply(QueryPlanner.scala:75)
在scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply处(TraversableOnce.scala:157)
在scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply处(TraversableOnce.scala:157)
位于scala.collection.Iterator$class.foreach(Iterator.scala:893)
位于scala.collection.AbstractIterator.foreach(迭代器.scala:1336)
位于scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:157)
位于scala.collection.AbstractIterator.foldLeft(Iterator.scala:1336)
在org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2.apply上(QueryPlanner.scala:75)
在org.apache.spark.sql.catalyst.planning.QueryPlanner$$anonfun$2.apply上(QueryPlanner.scala:67)
位于scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:434)
位于scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:440)
位于org.apache.spark.sql.catalyst.planning.QueryPlanner.plan(QueryPlanner.scala:93)
位于org.apache.spark.sql.execution.QueryExecution.sparkPlan$lzycompute(QueryExecution.scala:72)
位于org.apache.spark.sql.execution.QueryExecution.sparkPlan(QueryExecution.scala:68)
位于org.apache.spark.sql.execution.QueryExecution.ExecutePlan$lzycompute(QueryExecution.scala:77)
位于org.apache.spark.sql.execution.QueryExecution.ExecutePlan(QueryExecution.scala:77)
位于org.apache.spark.sql.Dataset.withAction(Dataset.scala:3260)
位于org.apache.spark.sql.Dataset.head(Dataset.scala:2495)
位于org.apache.spark.sql.Dataset.take(Dataset.scala:2709)
位于org.apache.spark.sql.Dataset.showString(Dataset.scala:254)
在org.apache.spark.sql.Dataset.show(Dataset.scala:729)上
在org.apache.spark.sql.Dataset.show(Dataset.scala:688)上
在org.apache.spark.sql.Dataset.show(Dataset.scala:697)上
... 49删去
原因:org.apache.kafka.common.KafkaException:java.lang.SecurityException:java.io.IOException:配置错误:
第5行:预期[选项键]
位于org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:86)
位于org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:70)
位于org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:83)
位于org.apache.kafka.clients.consumer.KafkaConsumer.(KafkaConsumer.java:623)
... 99多
原因:java.lang.SecurityException:java.io.IOException:配置错误:
第5行:预期[选项键]
位于sun.security.provider.ConfigFile$Spi。(ConfigFile.java:137)
位于sun.security.provider.ConfigFile。(ConfigFile.java:102)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
位于java.lang.Class.newInstance(Class.java:442)
位于javax.security.auth.login.Configuration$2.run(Configuration.java:255)
在javax.security.auth.login.Configuratio