Apache Sqoop 简介
Sqoop(SQL-to-Hadoop)是 Apache 开源项目,主要用于:
-
将关系型数据库中的数据导入 Hadoop 分布式文件系统(HDFS)或相关组件(如 Hive、HBase)。
-
将 Hadoop 处理后的数据导出回关系型数据库。
核心特性
-
批量数据传输
支持从数据库表到 HDFS/Hive 的全量或增量数据迁移。 -
并行化处理
基于 MapReduce 实现并行导入导出,提升大数据量场景的效率。 -
自动类型映射
自动将数据库字段类型转换为 Hadoop 兼容类型(如INT
→IntegerWritable
)。 -
事务一致性
保证数据导出到数据库时的原子性(通过--staging-table
等机制)。 -
灵活扩展
支持自定义插件,适配不同数据库或数据格式(如 Avro、Parquet)。
使用场景
-
数据仓库构建:将业务数据库数据导入 Hive 进行分析。
-
ETL 流程:配合 Spark、MapReduce 处理后的数据回写至数据库。
-
日志归档:将历史日志从数据库迁移到 HDFS 长期存储。
安装与配置
-
依赖环境
-
Hadoop 集群(HDFS、YARN)
-
Java 环境(JDK 8+)
-
目标数据库的 JDBC 驱动(如 MySQL 的
mysql-connector-java.jar
)
-
-
安装 Sqoop
-
从 Apache 官网 下载二进制包。
-
解压并配置环境变量:
-
tar -zxvf sqoop-1.4.5.bin__hadoop-0.23.tar.gz -C ~/training/
找到安装路径为了便于操作修改文件名称
mv sqoop-1.4.5.bin__hadoop-0.23/ sqoop/
设置环境变量vi ~/.bash_profileSQOOP_HOME=/root/training/sqoopexport SQOOP_HOMEPATH=$SQOOP_HOME/bin:$PATHexport PATH生效环境变量 source ~/.bash_profile
输入 sqoop 按2次 Tab 按键如下所示 安装成功
-
将数据库 JDBC 驱动复制到
$SQOOP_HOME/lib
目录。
与其他工具对比
工具 | 适用场景 | 特点 |
---|---|---|
Sqoop | 结构化数据库 ↔ Hadoop | 批量导入导出,强类型支持 |
Flume | 日志流 → HDFS | 实时流数据传输 |
Kafka | 实时数据流 | 高吞吐消息队列 |