Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Hadoop 无法获取主Kerberos主体以用作Talend批处理作业的续订者_Hadoop_Apache Spark_Kerberos_Talend - Fatal编程技术网

Hadoop 无法获取主Kerberos主体以用作Talend批处理作业的续订者

Hadoop 无法获取主Kerberos主体以用作Talend批处理作业的续订者,hadoop,apache-spark,kerberos,talend,Hadoop,Apache Spark,Kerberos,Talend,我们正在尝试使用talend批处理spark作业来访问Kerberos集群中的配置单元,但我们得到以下错误:无法获取主Kerberos主体以用作续订者错误 通过使用talend中的标准jobsnon spark,我们可以毫无问题地访问hive 以下是观察结果: 当我们运行spark作业时,talend可以连接到hive 元存储和验证语法。如果我提供了错误的表格 未找到返回表的名称。 当我们从并没有返回数据的表中选择count*时 NULL,但如果Hdfstable中存在某些数据,则会失败并出现错

我们正在尝试使用talend批处理spark作业来访问Kerberos集群中的配置单元,但我们得到以下错误:无法获取主Kerberos主体以用作续订者错误

通过使用talend中的标准jobsnon spark,我们可以毫无问题地访问hive

以下是观察结果:

当我们运行spark作业时,talend可以连接到hive 元存储和验证语法。如果我提供了错误的表格 未找到返回表的名称。 当我们从并没有返回数据的表中选择count*时 NULL,但如果Hdfstable中存在某些数据,则会失败并出现错误 无法获取用作续订者的主Kerberos主体。 我不确定究竟是什么问题导致了代币问题。有人能帮我们找出根本原因吗


如果我使用spark批处理作业对hdfs进行读/写操作,那么还有一件事需要添加,而不是配置单元。因此,唯一的问题是配置单元和Kerberos。

您应该在类路径:/path/hadoop配置中包含hadoop配置。您应该在该hadoop配置目录中包含所有配置文件,而不仅仅是core-site.xml和hdfs-site.xml文件。这件事发生在我身上,解决了问题

步骤1:只需通过谷歌搜索该错误消息,即无法获取作为续订者使用的主Kerberos主体>>步骤2:浏览一些答案,包括Cloudera或HortonWorks发行版,以获得一些观点,即Cloudera术语,网关节点只是意味着Hadoop客户端libs+Hadoop配置文件>>第3步:了解您可能会错过一些关键配置文件,如core-site.xml、hdfs-site.xml、mapred-site.xml、swean-site.xml和hive-site.xml-hive生成MapReduce作业,记住@Samson Scharfrichter我真的错过了一些东西,但不是很确定,我在hdfs连接中传递了整个hive-site.xml,mapred-site.xml到hive连接,warn-site.xml,core-site.xml,hdfs-site.xml,但仍然失败,出现了相同的错误,在开始spark作业之前,在日志中还有一件事需要注意:HADOOP_HOME或HADOOP.HOME.dir未设置为警告。我传递了整个xxx-site.xml-传递给什么?怎么通过的?Hadoop库不关心Spark配置,也不关心Talend配置。它们在运行时依赖于类路径;运行时有时发生在Spark驱动程序启动之前。这就是为什么spark submit shell需要一些环境变量,比如HADOOP_CONF_DIR。使用Talend,我想您需要直接在作业类路径中添加conf文件所在的目录。。。。另外,还要在spark.driver.extraClassPath和spark.executor.extraClassPath中添加该目录,因为在驱动程序和/或执行器中也可能需要conf。它必须是一个本地目录,即在Thread client或Thread cluster模式下,您需要指向/etc/hadoop/conf:/etc/hive/conf