Sqoop 安装与测试

Sqoop 安装与测试 Demo(MySQL → HDFS)

本文通过一个完整 Demo,演示 Sqoop 的安装、配置以及从 MySQL 导入数据到 HDFS 的全过程。


一、实验环境说明

组件 版本
OS Linux / 虚拟机
Hadoop 3.x
MySQL 8.x
Sqoop 1.4.7
Java JDK 8

二、安装 Sqoop

下载并解压

tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
mv sqoop-1.4.7.bin__hadoop-2.6.0 /opt/sqoop

配置环境变量

编辑 ~/.bashrc

export SQOOP_HOME=/opt/sqoop
export PATH=$PATH:$SQOOP_HOME/bin

刷新:

source ~/.bashrc

三、配置 MySQL 驱动(非常关键)

Sqoop 不自带 MySQL 驱动,需要手动添加。

cp mysql-connector-j-8.0.xx.jar $SQOOP_HOME/lib/

驱动版本需与 MySQL 版本兼容。


四、验证 Sqoop 是否安装成功

sqoop version

正常输出:

Sqoop 1.4.7

五、准备 MySQL 测试数据

创建数据库与表

CREATE DATABASE testdb;

USE testdb;

CREATE TABLE user (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  age INT
);

INSERT INTO user VALUES
(1,'Alice',20),
(2,'Bob',22),
(3,'Tom',25);

六、Sqoop 连接 MySQL 测试

sqoop list-databases \
--connect jdbc:mysql://localhost:3306/?useSSL=false&serverTimezone=UTC \
--username root \
--password 123456

如果能看到数据库列表,说明连接成功。


七、Demo:MySQL → HDFS 数据导入

sqoop import \
--connect jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC \
--username root \
--password 123456 \
--table user \
--target-dir /sqoop/user \
--fields-terminated-by ',' \
--num-mappers 1

参数说明:

  • --table:导入表名
  • --target-dir:HDFS 目录
  • --num-mappers:Map 数量(测试用 1)

八、查看 HDFS 中的数据

hdfs dfs -ls /sqoop/user
hdfs dfs -cat /sqoop/user/part-m-00000

输出:

1,Alice,20
2,Bob,22
3,Tom,25

九、常见问题与解决

MySQL 8.x 连接报错

  • 添加 serverTimezone=UTC
  • 使用新版 MySQL Connector

HDFS 目录已存在

--delete-target-dir

十、小结

本文通过一个完整 Demo 演示了 Sqoop 的安装、配置与使用流程,实现了从 MySQL 到 HDFS 的数据导入。通过实践可以发现,Sqoop 在离线数据采集中具有高效、稳定的优势,是大数据学习与工程实践中的重要工具。

posted @ 2025-10-26 19:30  元始天尊123  阅读(7)  评论(0)    收藏  举报