установить свойства HBase для Spark Job, используя spark-submit - PullRequest
1 голос
/ 04 февраля 2020

Во время миграции данных 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, используя spark-submit

Что лучше:

  • Префикс свойств HBase с помощью ' искра «. (Я не уверен, что это возможно, и если это работает)
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

1 Ответ

1 голос
/ 04 февраля 2020

Если вы можете изменить свой код, вы сможете установить эти свойства программно. Я думаю, что-то подобное раньше работало на меня в 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);
...