apache-spark - 使用 spark-submit 为 Spark Job 设置 HBase 属性
问题描述
在 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 Job
什么是更好的方法:
- 使用“spark”为 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
解决方案
如果您可以更改您的代码,您应该能够以编程方式设置这些属性。我认为过去在 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);
推荐阅读
- python - 在pyspark中获取每月的周数
- android - FirebaseMessagingService onMessageReceived 在应用程序被杀死或应用程序未启动时不调用
- java - 手动打开的 Excel / 记事本文件(由用户打开),如何通过 java 程序识别
- javascript - 找不到模块 ./environment
- sql-server - 读取 excel 源代码并根据 ssis 中的标题运行 sp
- pandas - 将 Nan 替换为 group'd 值
- flutter - 使用颤振从视频创建缩略图时图像无效
- python-3.x - 从二维 NUMPY 数组中条件提取行
- mysql - 在 sql alchemy 中获取列的 json 长度?
- c# - Azure - 错误 CS0433:“IAsyncDisposable”类型存在于“Microsoft.Bcl.AsyncInterfaces”中,