Hadoop 如何修复在pyspark中对配置单元表执行操作时的大小限制错误

Hadoop 如何修复在pyspark中对配置单元表执行操作时的大小限制错误,hadoop,apache-spark,hive,pyspark,hbase,Hadoop,Apache Spark,Hive,Pyspark,Hbase,我有一个包含40亿行的hive表,需要将其加载到pyspark中。当我尝试执行任何操作(例如对该表计数)时,我会得到以下异常(后面是TaskKilledexceptions): 我的HBase版本是1.1.2.2.6.1.0-129,目前无法升级 有没有什么方法可以在不升级的情况下解决这个问题,比如修改某个环境变量或配置,或者通过命令行将参数传递给pyspark?我会说没有 根据以下JIRAs,增加protobuf大小似乎需要代码更改,因为所有这些JIRAs都是使用异常建议的CodedInput

我有一个包含40亿行的hive表,需要将其加载到pyspark中。当我尝试执行任何操作(例如对该表计数)时,我会得到以下异常(后面是
TaskKilled
exceptions):

我的HBase版本是1.1.2.2.6.1.0-129,目前无法升级

有没有什么方法可以在不升级的情况下解决这个问题,比如修改某个环境变量或配置,或者通过命令行将参数传递给pyspark?

我会说没有

根据以下JIRAs,增加protobuf大小似乎需要代码更改,因为所有这些JIRAs都是使用异常建议的
CodedInputStream
代码补丁解决的

  • 降低每个目录的默认最大项目数以修复图像加载
  • 由于64 MB protobuf最大长度限制,大数据块报告可能无法在NameNode解码
  • 结果当序列化大于64MB的细胞时,序列化和突变序列化可能引发无效的IdProtocolBufferException
  • ORC元数据部分有时可能超过protobuf消息大小限制
  • ORC元数据部分有时可能超过protobuf消息大小限制
Py4JJavaError: An error occurred while calling o89.count.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 6732 in stage 13.0 failed
4 times, most recent failure: Lost task 6732.3 in stage 13.0 (TID 30759, some_server.XX.net, executor 38): org.apache.hive.com.google.protobuf.InvalidProtocolBufferException: Protocol mess
age was too large.  May be malicious.  Use CodedInputStream.setSizeLimit() to increase the size limi
t.