背景: 下面导致数据倾斜的sqoop任务,这个数据倾斜是由于源数据导致的- 源表的index1 分布不均匀,不均匀指每一块的数据量不均匀,范围[min(index),max(index)]被分为m块,每块index[0,7]的值在 [min+index*range/8,min+(index+1)*range] 间,如第一块100MB,最后一块1GB的数据量,数据量可在hdfs查看map文件大小。
(数据量,用时):(一千万+条,20分钟)
sqoop import \
--connect "jdbc:mysql://${mysql_host}:${mysql_port}/${mysql_db}?zeroDateTimeBehavior=convertToNull&dontTrackOpenResources=true&tinyInt1isBit=false&defaultFetchSize=10000&useCursorFetch=true&autoReconnect=true&failOverReadOnly=false&useSSL=false" \
--driver com.mysql.jdbc.Driver \
--username ${mysql_user} \
--password ${mysql_password} \
--table ${mysql_table} \
--columns 'field1,field2,...,fieldn' \
--hcatalog-database test \
--hcatalog-table ${hive_table} \
--hcatalog-partition-keys