Hbase KeyValue 大小太大

标签 hbase

我正在使用 Spark Streaming 下载网页并插入到 Hbase 中。我遇到以下异常:

WARN scheduler.TaskSetManager: Lost task 13.1 in stage 21.0 (TID 121,test1.server): java.lang.IllegalArgumentException: KeyValue size too large
    at org.apache.hadoop.hbase.client.HTable.validatePut(HTable.java:1378)
    at org.apache.hadoop.hbase.client.HTable.validatePut(HTable.java:1364)
    at org.apache.hadoop.hbase.client.HTable.doPut(HTable.java:974)
    at org.apache.hadoop.hbase.client.HTable.put(HTable.java:941)
    at org.apache.hadoop.hbase.mapreduce.TableOutputFormat$TableRecordWriter.write(TableOutputFormat.java:126)
    at org.apache.hadoop.hbase.mapreduce.TableOutputFormat$TableRecordWriter.write(TableOutputFormat.java:87)
    at org.apache.spark.rdd.PairRDDFunctions$$anonfun$12.apply(PairRDDFunctions.scala:1000)
    at org.apache.spark.rdd.PairRDDFunctions$$anonfun$12.apply(PairRDDFunctions.scala:979)
    at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:61)
    at org.apache.spark.scheduler.Task.run(Task.scala:64)
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:203)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

我试过增加hbase.client.keyvalue.maxsize,设置hbase.client.keyvalue.maxsize=0表示没有限制。此外,我增加了 hdfs.blocksize=256M。但是当我重启集群的时候,还是遇到同样的错误:keyvalue to large。 请有任何想法,提前致谢!

最佳答案

hbase.client.keyvalue.maxsize 是客户端属性。您需要在客户端节点上的 hbase-site.xml 中设置此属性。或者您可以在 Configuration 对象的代码中设置此属性。 无需为该属性重新启动 HBase。

关于Hbase KeyValue 大小太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29819266/

相关文章:

hadoop - Apache Spark : Which data storage and data format to choose

hadoop - Pig脚本过滤文件出错

java - HBase 中按创建日期而不是时间戳删除行

logging - HBase 中的日志文件

hadoop - 用于 Hadoop 作业的 Cassandra 与 HBase

java - 从java连接hbase时出错

hadoop - 用于实时分析解决方案的 HBase 架构/ key

java - 为什么在java中使用 Protocol Buffer

hadoop - 用于实时统计的 elasticsearch vs hbase/hadoop

java - setHeader 不改变文件名