错误keyprovidercache:找不到具有密钥的uri

ht4b089n  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(504)

下面是创建配置单元表并在其中加载数据的简单代码。

  1. import java.util.Properties
  2. import org.apache.spark.SparkContext
  3. import org.apache.spark.SparkConf
  4. import org.apache.spark.sql.SQLContext
  5. import sqlContext.implicits._
  6. val conf = new SparkConf().setAppName("HIVE_Test").setMaster("local").set("spark.executor.memory","1g").set("spark.driver.allowMultipleContexts", "true");
  7. val sc = new SparkContext(conf);
  8. val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc);
  9. sqlContext.sql("CREATE TABLE test_amit_hive12(VND_ID INT,VND_NM STRING,VND_SHORT_NM STRING,VND_ADR_LN_1_TXT STRING,VND_ADR_LN_2_TXT STRING,VND_CITY_CD STRING,VND_ZIP_CD INT,LOAD_TS FLOAT,UPDT_TS FLOAT, PROMO_STTS_CD STRING, VND_STTS_CD STRING)");
  10. sqlContext.sql("LOAD DATA LOCAL INPATH 'path_to/amitesh/part.txt' INTO TABLE test_amit_hive12");
  11. exit()

我有两个问题:
1) 在“createtable”中,我硬编码了表名,但是代码如何理解文件的分隔符呢?当我们通过配置单元提示符创建一个配置单元表时,我们会写以下几行

  1. FIELDS TERMINATED BY ‘’
  2. LINES TERMINATED BY ‘’

所以,我们在使用spark/scala时不需要这样做吗?
2) 在通过sparkshell执行代码时,出现以下错误:

  1. ERROR KeyProviderCache: Could not find uri with key [dfs.encryption.key.provider.uri] to create a keyProvider !!
  2. res1: org.apache.spark.sql.DataFrame = [result: string]

我在stackoverflow上找到一个帖子,但没有人回复。在另一个网站上,我发现这是hadoop2.7.1的一个bug。我查了我的,我有2.7.2。那么,我的版本中存在bug的可能性有多大呢。我正在使用ibms biginsight。以下是我的版本详细信息

  1. Hadoop 2.7.2-IBM-12

但是,有没有人能帮我解决这个问题,我必须有一个非常有力的证据来证明这是一个错误,我的经理。
下面是一个链接,人们说错误是一个错误
`https://talendexpert.com/talend-spark-error/

jmo0nnb3

jmo0nnb31#

有点晚了,但这能解决你的问题吗?
我也犯了同样的错误,但对我来说并不是什么问题。出错后,代码运行正常。有时它会弹出,有时不会,所以它可能连接到集群上参与特定spark作业的executor节点。
它与hadoop版本没有直接关系,但是它基于您运行的spark版本。
错误和解决方案报告如下:https://issues.apache.org/jira/browse/spark-20594.
也就是说,升级到spark 2.2.0可能会解决这个问题。

相关问题