Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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 kafka spark流式卡夫卡kerberos_Apache Kafka_Spark Streaming_Spark Streaming Kafka - Fatal编程技术网

Apache kafka spark流式卡夫卡kerberos

Apache kafka spark流式卡夫卡kerberos,apache-kafka,spark-streaming,spark-streaming-kafka,Apache Kafka,Spark Streaming,Spark Streaming Kafka,我在卡夫卡做poc spark流媒体工作。我可以对不安全的kafka 0.10群集使用相同的代码,但是当我切换到针对ssl/kerberos(hdp 2.5)设置运行时,我遇到了一个异常: Caused by: javax.security.auth.login.LoginException: Could not login: the client is being asked for a password, but the Kafka client code does not currentl

我在卡夫卡做poc spark流媒体工作。我可以对不安全的kafka 0.10群集使用相同的代码,但是当我切换到针对ssl/kerberos(hdp 2.5)设置运行时,我遇到了一个异常:

Caused by: javax.security.auth.login.LoginException: Could not login: the client is being asked for a password, but the Kafka client code does not currently support obtaining a password from the user. not available to garner  authentication information from the user
at com.sun.security.auth.module.Krb5LoginModule.promptForPass(Krb5LoginModule.java:940)
at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:760)
at com.sun.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:617)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:755)
at javax.security.auth.login.LoginContext.access$000(LoginContext.java:195)
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682)
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
at javax.security.auth.login.LoginContext.login(LoginContext.java:587)
at org.apache.kafka.common.security.authenticator.AbstractLogin.login(AbstractLogin.java:69)
at org.apache.kafka.common.security.kerberos.KerberosLogin.login(KerberosLogin.java:110)
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)
... 29 more
如果有帮助的话,我将跟随卡夫卡教程的火花流


不确定哪些内容需要传递给执行者,而我还没有传递,或者可能只是jaas配置问题?

尝试按照下面提供的步骤进行操作:-

  • 从spark submit命令中删除
    --keytab
    --principal
    ,因为此信息已存在于JAAS配置中
  • 运行
    kinit-kt bilsch.keytabbilsch@HDP.SOME.ORG
    然后尝试运行spark submit命令

尝试按照以下步骤操作:-

  • 从spark submit命令中删除
    --keytab
    --principal
    ,因为此信息已存在于JAAS配置中
  • 运行
    kinit-kt bilsch.keytabbilsch@HDP.SOME.ORG
    然后尝试运行spark submit命令

事实上,我自己至少部分地解决了这个问题。我不得不把jaas配置放在所有工作人员的home目录中(对keytab做了同样的操作),这感觉真的很不对。我在这里遗漏了什么-我认为spark提交的文件部分会将这些文件放入分布式缓存中,并使它们在集群上对我可用(例如使用./foo.keytab)不——spark不使用HDFS将资源传递给执行者;它只传递一个URL,执行者可以在该URL中以HTTP的形式从驱动程序下载资源。我猜其目的是在Thread、Mesos或standalone Spark中使用相同的代码库。并且这些文件没有在当前的工作目录中下载--cf。实际上,我自己至少部分地解决了这个问题。我不得不把jaas配置放在所有工作人员的home目录中(对keytab做了同样的操作),这感觉真的很不对。我在这里遗漏了什么-我认为spark提交的文件部分会将这些文件放入分布式缓存中,并使它们在集群上对我可用(例如使用./foo.keytab)不——spark不使用HDFS将资源传递给执行者;它只传递一个URL,执行者可以在该URL中以HTTP的形式从驱动程序下载资源。我猜它的目的是在Thread、Mesos或standalone Spark中使用相同的代码库,而这些文件并没有在当前的工作目录中下载——参见详细文章详细文章
spark-submit \
--master yarn \
--keytab ./bilsch.keytab \
--principal bilsch@HDP.SOME.ORG \
--files kafka_client_jaas.conf,bilsch.keytab \
--packages org.apache.spark:spark-streaming-kafka-0-10_2.11:2.0.2 \
--repositories http://repo.hortonworks.com/content/repositories/releases \
--num-executors 1 \
--class producer \
--driver-java-options "-Djava.security.auth.login.config=./kafka_client_jaas.conf -Dhdp.version=2.5.3.0-37" \
--conf "spark.executor.extraJavaOptions=-Djava.security.auth.login.config=./kafka_client_jaas.conf" \
streaming_0331_2.11-1.0.jar 2>&1 | tee out