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
Apache spark 为什么_spark_元数据将所有拼花地板分区文件都放在0中,但集群有2个工作进程?_Apache Spark_Apache Kafka_Spark Streaming_Parquet - Fatal编程技术网

Apache spark 为什么_spark_元数据将所有拼花地板分区文件都放在0中,但集群有2个工作进程?

Apache spark 为什么_spark_元数据将所有拼花地板分区文件都放在0中,但集群有2个工作进程?,apache-spark,apache-kafka,spark-streaming,parquet,Apache Spark,Apache Kafka,Spark Streaming,Parquet,我有一个小火花簇,有一个主火花簇和两个工作火花簇。我有一个卡夫卡流应用程序,它从卡夫卡流数据,并以拼花格式和附加模式写入目录 到目前为止,我能够读取卡夫卡流,并使用下面的关键行将其写入拼花地板文件 val streamingQuery = mydf.writeStream.format("parquet").option("path", "/root/Desktop/sampleDir/myParquet").outputMode(OutputMode.Append).option("check

我有一个小火花簇,有一个主火花簇和两个工作火花簇。我有一个卡夫卡流应用程序,它从卡夫卡流数据,并以拼花格式和附加模式写入目录

到目前为止,我能够读取卡夫卡流,并使用下面的关键行将其写入拼花地板文件

val streamingQuery = mydf.writeStream.format("parquet").option("path", "/root/Desktop/sampleDir/myParquet").outputMode(OutputMode.Append).option("checkpointLocation", "/root/Desktop/sampleDir/myCheckPoint").start()
两个工人我都登记了。创建了3-4个snappy拼花文件,文件名前缀为part-00006-XXX.snappy.parquet

但当我尝试使用以下命令读取此拼花地板文件时:

val dfP = sqlContext.read.parquet("/root/Desktop/sampleDir/myParquet")
它显示了一些拼花地板分割文件的“未找到文件”异常。奇怪的是,这些文件已经存在于其中一个工作节点中

当在日志中进一步检查时,发现spark正在尝试仅从一个工作节点获取所有拼花文件,并且由于并非所有拼花文件都存在于一个工作节点中,因此正在命中,但在提到的拼花路径中未找到这些文件

我是否在流式查询或读取数据时遗漏了一些关键步骤


注意:我没有HADOOP基础设施。我只想使用文件系统。

您需要一个共享文件系统

Spark假设所有节点、驱动程序和工作程序都可以看到相同的文件系统。 如果您使用的是基本文件系统,那么每个节点都会看到自己的文件系统,这与其他节点的文件系统不同

HDFS是获取公共共享文件系统的一种方法,另一种方法是使用公共NFS装载,即将同一远程文件系统从所有节点装载到同一路径。还存在其他共享文件系统