spark无法读取Hadoop3中的擦除编码Parquet文件

s4chpxco  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(282)

我已经使用intel isa-l库在rhel 6.7 linux机上构建了hadoop 3.2.0。另外,在hadoop安装中启用了本机库支持。
我使用“haoop fs-copyfromlocal”和rs-6-3-1024k编码器策略在这个测试集群上复制了一些Parquet格式的文件。然而,当我尝试使用spark2.4.3读取这些Parquet文件时,我得到了如下异常。

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)
.....

请注意,我能够复制这些文件从hdfs到本地使用hadoop命令,hdfs网络接口等没有任何问题。hadoop fsck认为复制文件的路径也是健康的。
注意:我在RHEL7.5上运行hadoop集群,不过我已经在RHEL6.7上构建了库。但是,当我运行“hadoop checknative”命令时,我没有看到任何错误。我确实看到isa-l库被正确地启用了,也就是说,我确实在它旁边的输出中看到了“true”文本。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题