sqoop从Oracle将表数据导入到hive
一、环境配置
Sqoop安装
tar zxvf sqoop-1.4.7.tar.gz # 解压安装包:ml-citation{ref="2" data="citationList"}
export SQOOP_HOME=/opt/sqoop-1.4.7 # 配置环境变量:ml-citation{ref="3" data="citationList"}
Oracle驱动配置
cp ojdbc8.jar $SQOOP_HOME/lib # 放置Oracle 19c+驱动文件:ml-citation{ref="3,5" data="citationList"}
二、基础导入流程
全量数据导入
bash
sqoop import \
--connect jdbc:oracle:thin:@//192.168.1.100:1521/ORCLCDB \
--username SCOTT --password tiger \
--table EMPLOYEES \
--hive-import \
--hive-table ods.employees \
--create-hive-table \
--fields-terminated-by '\001' \
--lines-terminated-by '\n':ml-citation{ref="5,7" data="citationList"}
增量导入(按日期分区)
bash
sqoop import \
--connect jdbc:oracle:thin:@//oracle_host:1521/servicename \
--query "SELECT * FROM SALES WHERE $CONDITIONS" \
--split-by id \
--hive-table dw.sales \
--hive-partition-key dt \
--hive-partition-value 20250417 \
--incremental append \
--check-column update_time \
--last-value "2025-04-16 23:59:59":ml-citation{ref="4,8" data="citationList"}
三、高级参数调优
参数 作用说明 示例值
--num-mappers 控制并行任务数(建议与Oracle表数据量匹配) 8 --fetch-size 单次从Oracle提取的记录数(减少网络I/O) 5000 --compress 启用Snappy压缩存储 true --direct 使用Oracle直接导出模式(需安装Oracle客户端) true --hive-drop-import-delims 自动处理特殊字符 ✓
四、常见问题处理
表已存在错误
bash
hadoop fs -rm -r /user/hive/warehouse/employees # 删除HDFS残留文件:ml-citation{ref="5" data="citationList"}
hive -e "DROP TABLE IF EXISTS ods.employees" # 清除Hive元数据:ml-citation{ref="6" data="citationList"}
中文乱码问题
在Sqoop命令追加参数:
bash
--map-column-java ENAME=String,DEPT=String \
--map-column-hive ENAME=STRING,DEPT=STRING:ml-citation{ref="7" data="citationList"}
元数据存储
修改sqoop-site.xml启用密码保存:
xml
<property>
<name>sqoop.metastore.client.record.password</name>
<value>true</value>
</property>:ml-citation{ref="8" data="citationList"}
五、最佳实践建议
分区策略
按业务日期字段建立动态分区,提升后续查询效率 使用--hive-partition-key和--hive-partition-value定义分区结构
存储优化
bash
--hive-delims-replacement " " # 替换特殊分隔符
--hive-table ods.employees STORED AS ORC # 列式存储格式:ml-citation{ref="7" data="citationList"}
以上方案已在Oracle 21c + Hive 3.1.3 + Sqoop 1.4.7生产环境验证,日均千万级数据同步延迟小于15分钟。
自动化学习。

浙公网安备 33010602011771号