Sqoop解决宽表内存溢出OutOfMemoryError

oracle里面导入一张大款表,字段数非常多,而且有很多长文本,这些文本都需要用到,导入的时候报错OutOfMemoryError,内存溢出错误。
解决办法之一是增加内存,目前情况来说不允许,于是我采用另一种方法:减小
cache到内存的记录条数,即使用–fetch-size选项调整fetchSize。fetchSize默认值为1000,这里我们把它调小到200:

sqoop import  \
--connect "jdbc:oracle:thin:@10.24.1.180:1521/orcl" \
--username system \
--password Oracle \
--table  sqp_test \
--fetch-size 200 \
--null-string '\\N'   \
--null-non-string '\\N'   \
--hive-drop-import-delims \
--split-by id \
--hive-import \
--hive-overwrite \
--hive-database default \
--hive-table sqp_test_txt

对于大多数表来说默认的fetchSize根本不能充分利用数据库的性能,可以根据表的实际情况适当调整–fetch-size,提升数据库访问效率,从而缩短sqoop任务执行时间。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值