开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink 读hive报这个,有那位大佬遇到过?

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)

展开
收起
云问追踪 2023-04-13 16:04:34 1374 0
5 条回答
写回答
取消 提交回答
  • 这个异常是在读取Hive中ORC格式数据时出现的。可能是因为数据文件中有损坏或丢失的数据导致的。你可以尝试以下几种方法来解决这个问题:

    1.检查数据文件是否存在损坏或丢失的数据。可以使用Hive命令行工具或Hadoop命令行工具来检查数据文件。

    2.尝试使用其他方式读取数据。例如,你可以使用Hive的文本格式或Parquet格式来存储数据,并使用Flink读取。

    3.升级Hive版本。如果你使用的是旧版本的Hive,可能存在一些已知的问题。尝试升级到最新版本的Hive,看看是否能解决问题。

    4.检查Flink的配置是否正确。如果Flink的配置不正确,可能会导致无法正确读取数据。请确保Flink的配置正确,并且与Hive和Hadoop的配置相匹配。

    希望以上方法能够帮助你解决问题。

    2023-04-20 13:45:54
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    这个错误可能是由于读取Hive数据时,Flink无法正确解析ORC格式的数据,导致出现空指针异常。您可以尝试以下方法解决这个问题:

    检查ORC文件格式:首先,您需要检查您的Hive表中存储的数据是否为ORC格式。如果不是ORC格式,您需要将其转换为ORC格式后再进行读取。
    
    检查Flink版本:如果您使用的是较老的Flink版本,可能会存在ORC格式的兼容性问题。您可以尝试升级到最新的Flink版本,以解决这个问题。
    
    检查Hadoop版本:Flink依赖于Hadoop的相关组件来读取Hive数据。如果您的Hadoop版本过低,可能会导致Flink无法正确读取ORC格式的数据。您可以尝试升级到最新的Hadoop版本,以解决这个问题。
    
    检查ORC文件中的数据类型:如果ORC文件中的数据类型与Flink中定义的数据类型不匹配,也可能会导致读取数据时出现空指针异常。您可以检查ORC文件中的数据类型,并将其与Flink中定义的数据类型进行匹配。
    
    检查Flink代码:如果以上方法都无法解决问题,您可以检查Flink代码,查看是否存在其他问题。您可以尝试打印日志,以便更好地定位问题所在。
    
    2023-04-15 11:38:08
    赞同 展开评论 打赏
  • 我感觉是是由于 Hive 查询引擎与 Flink 运行时之间的兼容性问题导致的。

    2023-04-13 21:09:12
    赞同 展开评论 打赏
  • 少ORC的包依赖,在flink的lib上加下orc-shims相关的jar。

    此答案来自钉钉群“【2】Apache Flink China 社区"

    2023-04-13 17:12:13
    赞同 展开评论 打赏
  • 空指针异常

    2023-04-13 16:06:51
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Hive Bucketing in Apache Spark 立即下载
    spark替代HIVE实现ETL作业 立即下载
    2019大数据技术公开课第五季—Hive迁移到MaxCompute最佳实践 立即下载