Spark无法读取Hadoop 3中的Erasure编码实木复合地板文件

时间:2019-08-13 22:56:11

标签: apache-spark hadoop pyspark hadoop3

我已经使用Intel ISA-L库在RHEL 6.7 linux机器上构建了Hadoop 3.2.0。另外,在Hadoop安装中启用了本机库支持。

我已使用带有RS-6-3-1024k编码器策略的“ haoop fs-copyFromLocal”在此测试群集上复制了一些镶木地板格式文件。但是,当我尝试使用Spark 2.4.3读取这些实木复合地板文件时,出现以下异常。

Caused by: org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-330495766-11.57.1.147-1565544876888:blk_-9223372036854684144_16436 file=/mydata/testenv/app_data/DATE=20190812/part-r-00075-afc16916-7d0c-42bb-bb20-d0240b4431d8.snappy.parquet
          at org.apache.hadoop.hdfs.DFSInputStream.chooseDataNode(DFSInputStream.java:984)
at org.apache.hadoop.hdfs.DFSInputStream.blockSeekTo(DFSInputStream.java:642)
at org.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(DFSInputStream.java:882)
at org.apache.hadoop.hdfs.DFSInputStream.read((DFSInputStream.java:934)
at org.apache.hadoop.hdfs.DFSInputStream.read((DFSInputStream.java:735)
at java.io.FilterInputStream.read(FilterInputStream.java:83)
at org.apache.parquet.io.DelegatingSeekableInputStream.read(DelegatingSeekableInputStream.java:61)
.....

请注意,我可以使用hadoop命令,HDFS Web界面等将这些文件从HDFS复制到本地,而不会出现任何问题。 hadoop fsck表示复制文件的路径也很健康。

注意:尽管我已经在RHEL 6.7上构建了库,但是我正在RHEL 7.5上运行Hadoop集群。但是,当我运行“ hadoop checknative”命令时,没有看到任何错误。我确实看到ISA-L库已正确启用,即在它旁边的输出中确实看到了“ true”文本。

1 个答案:

答案 0 :(得分:0)

尝试在impala上设置“set allow_erasure_coded_files=true”。