flink 读hive报这个,有那位大佬遇到过?
Caused by: java.lang.NullPointerException at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl$StringDictionaryTreeReader.startStripe(RecordReaderImpl.java:1560) at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl$StringTreeReader.startStripe(RecordReaderImpl.java:1332) at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl$StructTreeReader.startStripe(RecordReaderImpl.java:1912) at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.readStripe(RecordReaderImpl.java:2662) at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.advanceStripe(RecordReaderImpl.java:3081) at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.advanceToNextRow(RecordReaderImpl.java:3123) at org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.(RecordReaderImpl.java:289) at org.apache.hadoop.hive.ql.io.orc.ReaderImpl.rowsOptions(ReaderImpl.java:534) at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.createReaderFromFile(OrcInputFormat.java:225) at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat$OrcRecordReader.(OrcInputFormat.java:157)
这个异常是在读取Hive中ORC格式数据时出现的。可能是因为数据文件中有损坏或丢失的数据导致的。你可以尝试以下几种方法来解决这个问题:
1.检查数据文件是否存在损坏或丢失的数据。可以使用Hive命令行工具或Hadoop命令行工具来检查数据文件。
2.尝试使用其他方式读取数据。例如,你可以使用Hive的文本格式或Parquet格式来存储数据,并使用Flink读取。
3.升级Hive版本。如果你使用的是旧版本的Hive,可能存在一些已知的问题。尝试升级到最新版本的Hive,看看是否能解决问题。
4.检查Flink的配置是否正确。如果Flink的配置不正确,可能会导致无法正确读取数据。请确保Flink的配置正确,并且与Hive和Hadoop的配置相匹配。
希望以上方法能够帮助你解决问题。
这个错误可能是由于读取Hive数据时,Flink无法正确解析ORC格式的数据,导致出现空指针异常。您可以尝试以下方法解决这个问题:
我感觉是是由于 Hive 查询引擎与 Flink 运行时之间的兼容性问题导致的。
少ORC的包依赖,在flink的lib上加下orc-shims相关的jar。
此答案来自钉钉群“【2】Apache Flink China 社区”
空指针异常