当前位置: 首页 > 知识库问答 >
问题:

没有权限的Uri:hdfs:/data/_spark_metadata在hdfs上使用火花流写入拼板文件时出错

慕容修伟
2023-03-14

我正在尝试从kafka读取数据并保存到HDFS上的parquet文件。我的代码和下面类似,不同的是我是在Java写的。

val df = spark
      .readStream
      .format("kafka")
      .option("kafka.bootstrap.servers", "host1:port1,host2:port2")
      .option("subscribe", "topic1")
      .load()

df.selectExpr("CAST(key AS STRING)","CAST(value AS STRING)").writeStream.format("parquet").option("path",outputPath).option("checkpointLocation", "/tmp/sparkcheckpoint1/").outputMode("append").start().awaiteTermination()

但是,它抛出了URI with Authority:hdfs:/data/_spark_metadata异常,其中hdfs:///data是输出路径。

当我把代码改成spark.readdf.write一次写出parquet文件时,没有任何例外,所以我猜这与我的hdfs配置没有关系。

有人能帮我吗?

共有1个答案

秦宁
2023-03-14

这里有一个建议,从路径中删除hdfs://,但将其保留在检查点中。然而,对我来说,在HDP沙箱中,它在检查点中有hdfs://和没有hdfs://两种情况下都起作用:

.option("path", "/user/username/outpath")
.option("checkpointLocation", "/tmp/checkpoint")
 类似资料:
  • 我正在尝试从这个Scala代码写入csv文件。我使用HDFS作为临时目录,然后writer.write在现有子文件夹中创建一个新文件。我收到以下错误消息: java.io./tfsdl-ghd-wb/raidnd/Incte_19 如果我选择新建文件或退出文件,也会发生同样的情况,我已经检查了路径是否正确,只想在其中创建一个新文件。 问题是,为了使用基于文件系统的源写入数据,您需要一个临时目录,这

  • 我有一个c#应用程序,可以创建拼花地板文件并将其上载到远程HDFS。如果我使用scp将文件复制到安装了HDFS客户端的目标计算机上,然后将文件“HDFS放入”HDFS中,spark可以正确读取文件。 如果我使用curl针对webhdf服务从客户端应用程序直接将文件上传到HDFS,则在尝试读取拼花文件时会从Spark收到以下错误: df=sqlContext。阅读parquet(“/tmp/test

  • 我是大数据生态系统的新手,有点起步。 我读过几篇关于使用spark流媒体阅读Kafka主题的文章,但我想知道是否可以使用spark作业而不是流媒体阅读Kafka主题?如果是的话,你们能帮我指出一些可以让我开始学习的文章或代码片段吗。 问题的第二部分是以拼花格式向hdfs写信。一旦我读了Kafka的书,我想我会有一个rdd。将此rdd转换为数据帧,然后将数据帧写入拼花文件。这是正确的方法吗。 感谢您

  • 我是Spark的新手。我尝试在本地模式(windows)下使用spark java将csv文件保存为parquet。我得到了这个错误。 原因:org.apache.spark.Spark异常:写入行时任务失败 我引用了其他线程并禁用了spark推测 set("spark.speculation "," false ") 我还是会出错。我在csv中只使用了两个专栏进行测试。 输入: 我的代码: 请帮

  • 如果我写信 临时工。拼花文件夹我得到了和行号相同的文件号 我想我不太了解拼花地板,但它是自然的吗?

  • 由于,我检查了一个spark作业的输出拼花文件,该作业总是会发出声音。我在Cloudera 5.13.1上使用了 我注意到拼花地板排的大小是不均匀的。第一排和最后一排的人很多。剩下的真的很小。。。 拼花地板工具的缩短输出,: 这是已知的臭虫吗?如何在Spark中设置拼花地板块大小(行组大小)? 编辑: Spark应用程序的作用是:它读取一个大的AVRO文件,然后通过两个分区键(使用