使用spark submit为spark作业设置hbase属性

r7knjye2  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(467)

在hbase数据迁移期间,我遇到了 java.lang.IllegalArgumentException: KeyValue size too large 长期来看:
我需要增加财产 hbase.client.keyvalue.maxsize (从1048576到10485760) /etc/hbase/conf/hbase-site.xml 但我现在无法更改此文件(我需要验证)。
短期内:
我已成功使用以下命令导入数据:

hbase org.apache.hadoop.hbase.mapreduce.Import \
  -Dhbase.client.keyvalue.maxsize=10485760 \
  myTable \
  myBackupFile

现在我需要使用spark submit运行spark作业
更好的方法是什么:
在hbase属性前面加上“spark”。(我不确定这是否可行,也不确定它是否有效)

spark-submit \
  --conf spark.hbase.client.keyvalue.maxsize=10485760

使用“spark.executor.extrajavaoptions”和“spark.driver.extrajavaoptions”显式传输hbase属性

spark-submit \
  --conf spark.executor.extraJavaOptions=-Dhbase.client.keyvalue.maxsize=10485760 \
  --conf spark.driver.extraJavaOptions=-Dhbase.client.keyvalue.maxsize=10485760
roejwanj

roejwanj1#

如果可以更改代码,则应该能够以编程方式设置这些属性。我认为类似的东西过去在java中对我有用:

Configuration conf = HBaseConfiguration.create();
conf.set("hbase.client.scanner.timeout.period", SCAN_TIMEOUT); // set BEFORE you create the connection object below:
Connection conn = ConnectionFactory.createConnection(conf);

相关问题