要搭一个离线数仓,把 MySQL 的订单表抽到 HDFS,翻到教程第一步就是装 Sqoop。点开 apache.org 的页面,下载链接全断了,搜索引擎里的镜像站也挂了大半。
它已经被Apache退役了
Sqoop 是早期的关系库与 Hadoop 之间的搬运工具,靠生成 MapReduce 任务来导入导出。随着 Spark、Flink 起来,社区活跃度下滑,最终在 2021 年宣布退役。稳定版本停在 1.4.7,后面的 1.99.x 是另一套架构,两代之间不兼容,选错版本配置都对不上。
还能从哪下
- 官方归档站:去 archive.apache.org 找目录,里面保留着所有历史版本和源码包。
- 国内镜像:清华、阿里云的开源镜像站通常同步了归档目录,下载速度快。
- 发行版自带:CDH、HDP 这类商业发行版包里有编译好的版本,配套依赖少。
解压后要配什么
包名一般是 sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz。解压到固定目录,把 bin 加进 PATH。conf 目录下复制一份 sqoop-env.sh 模板,填上 Hadoop 的安装路径和 Hive 路径。MySQL 驱动 jar 放进 lib 目录,版本和数据库匹配,8.0 的库要用 8.x 的驱动。
验证和常见报错
执行 sqoop version,能打出 1.4.7 就说明环境通了。实测一条 sqoop list-databases 连接数据库。报找不到类通常是驱动没放对位置,报连接被拒要检查数据库是否允许远程访问以及防火墙端口。
新项目别再用它
Sqoop 依赖 MapReduce 启动任务,小批量同步光启动开销就要一分钟。现在更常用 DataX、SeaTunnel 做批量,Flink CDC、Canal 做增量。老集群还在跑就别折腾,工具能用比工具新更重要。