問題描述
使用 spark‑submit 為 Spark Job 設置 HBase 屬性 (set HBase properties for Spark Job using spark‑submit)
在 Hbase 數據遷移過程中,我遇到了一個java.lang.IllegalArgumentException: KeyValue size too large
長期來看:
我需要增加/etc/hbase/conf/hbase‑site.xml
中的屬性hbase.client.keyvalue.maxsize
(從1048576到10485760)但我現在無法更改此文件(我需要驗證)。
短期內:
我已成功使用命令導入數據:
hbase org.apache.hadoop.hbase.mapreduce.Import \
‑Dhbase.client.keyvalue.maxsize=10485760 \
myTable \
myBackupFile
現在我需要使用 spark‑submit 運行 Spark 作業
有什麼更好的方法:
- 在 HBase 屬性前面加上 'spark. ' (我不確定它是否可能,如果它是'
參考解法
方法 1:
If you can change your code, you should be able to set these properties programmatically. I think something like this used to work for me in the past in 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);
參考文件