Sqoop 安装完整教程(基于 WSL2 + Ubuntu 24.04)

作者:穆金秋日期:2026/5/30

本教程详细介绍了在WSL2+Ubuntu24.04环境下安装配置Sqoop1.4.7的完整流程:

  1. 环境准备
  • Java8+、Hadoop3.3.6、MySQL8.0.45已安装
  • 验证命令:java -version/hadoop version/mysql --version
  1. 安装步骤
  • 下载Sqoop1.4.7并解压到/usr/local
  • 配置环境变量(SQOOP_HOME和PATH)
  • 安装MySQL JDBC驱动到Sqoop/lib目录
  • 解决依赖问题(commons-lang等jar包)
  1. 功能验证
  • 测试连接MySQL:sqoop list-databases
  • 数据导入测试:MySQL→HDFS
  • 数据导出测试:HDFS→MySQL
  1. 常见问题
  • NoClassDefFoundError:需添加commons-lang等依赖
  • MySQL连接问题:检查服务状态和权限
  • 警告信息:HBase等组件缺失警告可忽略
  1. 后续建议
  • 学习增量导入、条件过滤等高级功能
  • 探索与Hive的集成
  • 掌握并行度控制和数据格式处理

安装完成后,用户已具备在Hadoop和关系型数据库间迁移数据的能力。


教程包含完整的一键安装脚本和详细的排错指南。


(AI 总结版)Windows 11 WSL Ubuntu 环境:安装 Hadoop 完整指南


(AI 总结版)在 Windows 11 WSL Ubuntu 上安装和使用 Hive 完整教程


Sqoop 安装完整教程(基于 WSL2 + Ubuntu 24.04)


本教程基于之前的安装过程整理,适用于 Windows 11 + WSL2 + Ubuntu 24.04 环境。


一、前置环境要求

在安装 Sqoop 之前,请确保以下环境已就绪:

环境要求检查命令版本要求
Javajava -versionJava 8 或更高版本
Hadoophadoop versionHadoop 2.x 或 3.x
MySQLmysql --versionMySQL 5.x 或 8.x

bash

检查各组件版本

java -version hadoop version mysql --version


1mumu@MuJinqiu:~$ hadoop version
2Hadoop 3.3.6
3Source code repository https://github.com/apache/hadoop.git -r 1be78238728da9266a4f88195058f08fd012bf9c
4Compiled by ubuntu on 2023-06-18T08:22Z
5Compiled on platform linux-x86_64
6Compiled with protoc 3.7.1
7From source with checksum 5652179ad55f76cb287d9c633bb53bbd
8This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-3.3.6.jar

🎉完美!Hadoop 3.3.6 已经安装好了!


二、下载 Sqoop

bash

进入用户目录

cd ~

下载 Sqoop 1.4.7(稳定版本,针对 Hadoop 2.6.0 的二进制包)

wget https://archive.apache.org/dist/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

如果 wget 下载较慢,可以用浏览器下载后,通过 MobaXterm 拖拽到 WSL 目录。


三、安装 Sqoop

bash

1. 解压到 /usr/local 目录

sudo tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /usr/local/

2. 进入 /usr/local 目录

cd /usr/local

3. 重命名文件夹(方便后续使用)

sudo mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop

4. 修改所有者(将 mumu 换成你的用户名)

sudo chown -R $(whoami):$(whoami) sqoop


四、配置环境变量

bash

编辑 .bashrc 文件

nano ~/.bashrc

在文件末尾添加以下内容:

bash

Sqoop 环境变量

export SQOOP_HOME=/usr/local/sqoop export PATH=$PATH:$SQOOP_HOME/bin

保存退出(Ctrl+XY → 回车),然后执行:

bash

source ~/.bashrc


五、验证安装

bash

sqoop version

预期输出:

text

Sqoop 1.4.7 ...

如果出现关于 HBase、HCatalog 等的警告,属于正常现象,不影响核心功能。


六、配置 Sqoop

bash

1. 进入配置目录

cd $SQOOP_HOME/conf

2. 复制配置文件模板

cp sqoop-env-template.sh sqoop-env.sh

3. 编辑配置文件

nano sqoop-env.sh

找到并修改以下配置(取消注释并填写路径):

bash

设置 Hadoop 安装路径

export HADOOP_COMMON_HOME=/usr/local/hadoop export HADOOP_MAPRED_HOME=/usr/local/hadoop

如果以后需要连接 Hive,取消下面这行的注释

export HIVE_HOME=/usr/local/hive


七、安装 MySQL JDBC 驱动

Sqoop 需要 JDBC 驱动才能连接 MySQL。

bash

1. 下载 JDBC 驱动

cd ~ wget https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.33/mysql-connector-j-8.0.33.jar

2. 复制到 Sqoop 的 lib 目录

sudo cp mysql-connector-j-8.0.33.jar /usr/local/sqoop/lib/


通过 apt 安装的 MySQL 客户端(mysql 命令)和 Sqoop 需要的 MySQL JDBC 驱动 是两回事,互不影响。

1mumu@MuJinqiu:~$ mysql --version
2mysql  Ver 8.0.45-0ubuntu0.24.04.1 for Linux on x86_64 ((Ubuntu))

简单解释

项目是什么你用的是什么状态
MySQL 客户端 (mysql 命令)用来连接和管理数据库的命令行工具已安装 ✅不需要重装
MySQL JDBC 驱动一个 .jar 文件,让 Java 程序(如 Sqoop)能连接 MySQL未安装 ⏳需要下载安装

结论:你不需要重新安装 MySQL 客户端,但需要下载 JDBC 驱动放到 Sqoop 的 lib 目录下。


八、解决依赖缺失问题

1May 18 14:23:37 MuJinqiu systemd[1]: Starting mysql.service - MySQL Community Server...
2May 18 14:23:37 MuJinqiu systemd[1]: Started mysql.service - MySQL Community Server.
3mumu@MuJinqiu:~$ ^C
4mumu@MuJinqiu:~$ sqoop list-databases \
5--connect jdbc:mysql://localhost:3306/ \
6--username root \
7--password 123456
8Warning: /usr/local/sqoop/../hbase does not exist! HBase imports will fail.
9Please set $HBASE_HOME to the root of your HBase installation.
10Warning: /usr/local/sqoop/../hcatalog does not exist! HCatalog jobs will fail.
11Please set $HCAT_HOME to the root of your HCatalog installation.
12Warning: /usr/local/sqoop/../accumulo does not exist! Accumulo imports will fail.
13Please set $ACCUMULO_HOME to the root of your Accumulo installation.
14Warning: /usr/local/sqoop/../zookeeper does not exist! Accumulo imports will fail.
15Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.
162026-05-25 17:16:05,910 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7
172026-05-25 17:16:05,937 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
182026-05-25 17:16:06,020 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
19Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils
20        at org.apache.sqoop.manager.MySQLManager.initOptionDefaults(MySQLManager.java:73)
21        at org.apache.sqoop.manager.SqlManager.<init>(SqlManager.java:89)
22        at com.cloudera.sqoop.manager.SqlManager.<init>(SqlManager.java:33)
23        at org.apache.sqoop.manager.GenericJdbcManager.<init>(GenericJdbcManager.java:51)
24        at com.cloudera.sqoop.manager.GenericJdbcManager.<init>(GenericJdbcManager.java:30)
25        at org.apache.sqoop.manager.CatalogQueryManager.<init>(CatalogQueryManager.java:46)
26        at com.cloudera.sqoop.manager.CatalogQueryManager.<init>(CatalogQueryManager.java:31)
27        at org.apache.sqoop.manager.InformationSchemaManager.<init>(InformationSchemaManager.java:38)
28        at com.cloudera.sqoop.manager.InformationSchemaManager.<init>(InformationSchemaManager.java:31)
29        at org.apache.sqoop.manager.MySQLManager.<init>(MySQLManager.java:65)
30        at org.apache.sqoop.manager.DefaultManagerFactory.accept(DefaultManagerFactory.java:67)
31        at org.apache.sqoop.ConnFactory.getManager(ConnFactory.java:184)
32        at org.apache.sqoop.tool.BaseSqoopTool.init(BaseSqoopTool.java:272)
33        at org.apache.sqoop.tool.ListDatabasesTool.run(ListDatabasesTool.java:44)
34        at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
35        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:82)
36        at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
37        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)
38        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)
39        at org.apache.sqoop.Sqoop.main(Sqoop.java:252)
40Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils
41        at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
42        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
43        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
44        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
45        ... 20 more

这个错误是因为 Sqoop 缺少一个依赖库:commons-lang。这是 Sqoop 运行必需的,但安装包没有自动包含。


如果还有其他缺失的依赖

Sqoop 可能还需要其他 commons 相关的包。如果上面的命令执行后还报类似的错误(比如 NoClassDefFoundError: org/apache/commons/xxx),依次下载以下包:

1# commons-lang 已下载
2wget https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
3
4# commons-logging(日志相关)
5wget https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
6
7# commons-configuration(配置相关)
8wget https://repo1.maven.org/maven2/commons-configuration/commons-configuration/1.10/commons-configuration-1.10.jar
9
10# 复制到 lib 目录
11sudo cp commons-*.jar /usr/local/sqoop/lib/

一次性解决(推荐)

为了避免逐个下载,可以执行以下命令批量下载常用的 Sqoop 依赖

1cd ~
2
3# 下载多个依赖
4wget https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
5wget https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
6wget https://repo1.maven.org/maven2/commons-configuration/commons-configuration/1.10/commons-configuration-1.10.jar
7wget https://repo1.maven.org/maven2/commons-cli/commons-cli/1.2/commons-cli-1.2.jar
8
9# 全部复制到 Sqoop lib
10sudo cp commons-*.jar /usr/local/sqoop/lib/
11
12# 再次测试
13sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password 123456

Sqoop 安装后可能缺少 commons-lang 等依赖,需要手动添加:

bash

cd ~

下载常用依赖

wget https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar wget https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar wget https://repo1.maven.org/maven2/commons-configuration/commons-configuration/1.10/commons-configuration-1.10.jar wget https://repo1.maven.org/maven2/commons-cli/commons-cli/1.2/commons-cli-1.2.jar

全部复制到 Sqoop lib 目录

sudo cp commons-*.jar /usr/local/sqoop/lib/


1mumu@MuJinqiu:~$ sqoop version
2Warning: /usr/local/sqoop/../hbase does not exist! HBase imports will fail.
3Please set $HBASE_HOME to the root of your HBase installation.
4Warning: /usr/local/sqoop/../hcatalog does not exist! HCatalog jobs will fail.
5Please set $HCAT_HOME to the root of your HCatalog installation.
6Warning: /usr/local/sqoop/../accumulo does not exist! Accumulo imports will fail.
7Please set $ACCUMULO_HOME to the root of your Accumulo installation.
8Warning: /usr/local/sqoop/../zookeeper does not exist! Accumulo imports will fail.
9Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.
102026-05-25 17:14:10,892 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7
11Sqoop 1.4.7
12git commit id 2328971411f57f0cb683dfb79d19d4d19d185dd8
13Compiled by maugli on Thu Dec 21 15:59:58 STD 2017

Sqoop 已经成功安装了! 版本是 1.4.7。

那些 Warning 警告信息是正常的,因为你的环境里没有安装 HBase、HCatalog、Accumulo、Zookeeper 这些组件。这些警告不影响 Sqoop 的核心功能(MySQL ↔ HDFS/Hive 的数据导入导出),可以暂时忽略。


1mumu@MuJinqiu:~$ sudo service mysql status
2 mysql.service - MySQL Community Server
3     Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; preset: enabled)
4     Active: active (running) since Mon 2026-05-18 14:23:37 CST; 1 week 0 days ago
5   Main PID: 666735 (mysqld)
6     Status: "Server is operational"
7      Tasks: 58 (limit: 19181)
8     Memory: 426.4M (peak: 447.5M)
9        CPU: 16min 15.889s
10     CGroup: /system.slice/mysql.service
11             └─666735 /usr/sbin/mysqld
12
13May 18 14:23:37 MuJinqiu systemd[1]: Starting mysql.service - MySQL Community Server...
14May 18 14:23:37 MuJinqiu systemd[1]: Started mysql.service - MySQL Community Server.

MySQL 服务已经在运行了!状态是 active (running),很好。

九、测试 Sqoop 连接 MySQL

bash

1sqoop list-databases \
2--connect jdbc:mysql://localhost:3306/ \
3--username root \
4--password 你的MySQL密码

预期输出:列出 MySQL 中的所有数据库(如 mysql, information_schema, test 等)。

12026-05-25 17:17:09 (377 KB/s) - ‘commons-lang-2.6.jar’ saved [284220/284220]
2
3mumu@MuJinqiu:~$ sudo cp commons-lang-2.6.jar /usr/local/sqoop/lib/
4mumu@MuJinqiu:~$ sqoop list-databases \
5--connect jdbc:mysql://localhost:3306/ \
6--username root \
7--password 123456
8Warning: /usr/local/sqoop/../hbase does not exist! HBase imports will fail.
9Please set $HBASE_HOME to the root of your HBase installation.
10Warning: /usr/local/sqoop/../hcatalog does not exist! HCatalog jobs will fail.
11Please set $HCAT_HOME to the root of your HCatalog installation.
12Warning: /usr/local/sqoop/../accumulo does not exist! Accumulo imports will fail.
13Please set $ACCUMULO_HOME to the root of your Accumulo installation.
14Warning: /usr/local/sqoop/../zookeeper does not exist! Accumulo imports will fail.
15Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.
162026-05-25 17:17:28,793 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7
172026-05-25 17:17:28,824 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
182026-05-25 17:17:28,910 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
19Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
20mysql
21information_schema
22performance_schema
23sys
24lee
25A2608
26metastore

🎉 成功了! Sqoop 已经可以正常连接 MySQL 了!

从输出可以看到,Sqoop 成功列出了 MySQL 中的所有数据库


关于那些警告

你现在看到的警告分为两类,都不影响核心功能:

警告类型含义需要处理吗?
Warning: /usr/local/sqoop/../hbase does not exist没有安装 HBase❌ 不需要,除非你要用 HBase
Loading class com.mysql.jdbc.Driver'...旧的驱动类名写法❌ 不需要,只是提示驱动已自动注册

十、完整安装脚本(一键复制)

如果你已经配置好 Hadoop 和 MySQL,可以一次性执行以下命令完成安装:

bash

1#!/bin/bash
2# Sqoop 一键安装脚本
3
4cd ~
5
6# 下载 Sqoop
7wget https://archive.apache.org/dist/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
8
9# 解压安装
10sudo tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /usr/local/
11cd /usr/local
12sudo mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop
13sudo chown -R $(whoami):$(whoami) sqoop
14
15# 配置环境变量
16echo 'export SQOOP_HOME=/usr/local/sqoop' >> ~/.bashrc
17echo 'export PATH=$PATH:$SQOOP_HOME/bin' >> ~/.bashrc
18source ~/.bashrc
19
20# 配置 Sqoop
21cd $SQOOP_HOME/conf
22cp sqoop-env-template.sh sqoop-env.sh
23
24# 下载并复制依赖
25cd ~
26wget https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.33/mysql-connector-j-8.0.33.jar
27wget https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
28wget https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
29wget https://repo1.maven.org/maven2/commons-configuration/commons-configuration/1.10/commons-configuration-1.10.jar
30wget https://repo1.maven.org/maven2/commons-cli/commons-cli/1.2/commons-cli-1.2.jar
31
32sudo cp mysql-connector-j-*.jar /usr/local/sqoop/lib/
33sudo cp commons-*.jar /usr/local/sqoop/lib/
34
35# 验证安装
36sqoop version
37
38echo "Sqoop 安装完成!"

十一、测试导入/导出功能

导入 MySQL 数据到 HDFS

bash

1# 1.  MySQL 中准备测试数据
2mysql -u root -p你的密码 -e "CREATE DATABASE IF NOT EXISTS test; USE test; CREATE TABLE IF NOT EXISTS users (id INT, name VARCHAR(20)); INSERT INTO users VALUES (1, 'Alice'), (2, 'Bob');"
3
4# 2.  Sqoop 导入到 HDFS
5sqoop import \
6--connect jdbc:mysql://localhost:3306/test \
7--username root \
8--password 你的密码 \
9--table users \
10--target-dir /user/mumu/users \
11--m 1
12
13# 3. 查看导入结果
14hdfs dfs -ls /user/mumu/users
15hdfs dfs -cat /user/mumu/users/part-m-00000

预期输出:

text

1,Alice 2,Bob

快速验证 Sqoop 导入功能

你可以试试从 MySQL 导入一张表到 HDFS:

1. 先在 MySQL 中准备测试数据

bash

mysql -u root -p123456 -e "CREATE DATABASE IF NOT EXISTS test; USE test; CREATE TABLE IF NOT EXISTS users (id INT, name VARCHAR(20)); INSERT INTO users VALUES (1, 'Alice'), (2, 'Bob');"

2. 用 Sqoop 导入到 HDFS

bash

sqoop import
--connect jdbc:mysql://localhost:3306/test
--username root
--password 123456
--table users
--target-dir /user/mumu/users
--m 1

3. 查看导入结果

bash

hdfs dfs -ls /user/mumu/users hdfs dfs -cat /user/mumu/users/part-m-00000

1mumu@MuJinqiu:~/bigdata/2026$ mysql
2ERROR 1045 (28000): Access denied for user 'mumu'@'localhost' (using password: NO)
3mumu@MuJinqiu:~/bigdata/2026$ mysql -u root -p123456 -e "CREATE DATABASE IF NOT EXISTS test; USE test; CREATE TABLE IF NOT EXISTS users (id INT, name VARCHAR(20)); INSERT INTO users VALUES (1, 'Alice'), (2, 'Bob');"
4mysql: [Warning] Using a password on the command line interface can be insecure.

这个命令执行成功了!虽然有两个提示,但都是正常的:

  1. 第一个错误Access denied for user 'mumu'):因为你直接输入 mysql 没有指定用户名,系统默认用你当前的 WSL 用户名(mumu)去登录,但这个用户没有 MySQL 权限。这不是问题,你平时都用 mysql -u root -p 登录就行。
  2. 第二个命令的警告Using a password on the command line...):只是提醒你在命令行里直接写密码不够安全,不影响执行。
验证数据是否创建成功

执行以下命令查看刚才创建的表

mysql -u root -p123456 -e "USE test; SELECT * FROM users;"

应该能看到:

1+------+-------+
2| id   | name  |
3+------+-------+
4|    1 | Alice |
5|    2 | Bob   |
6+------+-------+
然后执行 Sqoop 导入到 HDFS

bash

sqoop import
--connect jdbc:mysql://localhost:3306/test
--username root
--password 123456
--table users
--target-dir /user/mumu/users
--m 1

如果成功,你会看到 MapReduce 作业运行的日志,最后显示 Imported ... records


查看导入结果

bash

hdfs dfs -cat /user/mumu/users/part-m-00000

应该输出:

text

1,Alice 2,Bob

1mumu@MuJinqiu:~/bigdata/2026$ hdfs dfs -cat /user/mumu/users/part-m-00000
21,Alice
32,Bob
4mumu@MuJinqiu:~/bigdata/2026$

完美!Sqoop 数据导入成功了!

你已经在 Hadoop 和 MySQL 之间完成了第一次数据迁移。这是一个里程碑式的进展,标志着你的大数据开发环境已经完全配置好并可以正常使用。

常用 Sqoop 命令示例

操作命令
列出数据库sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password 123456
列出表sqoop list-tables --connect jdbc:mysql://localhost:3306/数据库名 --username root --password 123456
导入表到 HDFSsqoop import --connect jdbc:mysql://localhost:3306/数据库名 --username root --password 123456 --table 表名 --target-dir /路径 --m 1
导出到 MySQLsqoop export --connect jdbc:mysql://localhost:3306/数据库名 --username root --password 123456 --table 表名 --export-dir /hdfs上的数据路径
执行 SQL 查询sqoop eval --connect jdbc:mysql://localhost:3306/数据库名 --username root --password 123456 --query "SELECT * FROM 表名"

尝试 Hive 集成:如果后面需要用到 Hive,可以安装 Hive 并配置 Sqoop 直接导入到 Hive 表


十二、常见问题及解决方法

问题解决方法
command not found: sqoop检查环境变量,执行 source ~/.bashrc
NoClassDefFoundError: org/apache/commons/lang/StringUtils下载 commons-lang-2.6.jar 并复制到 Sqoop lib 目录
Access denied for user确认 MySQL 用户名和密码正确
Connection refused确认 MySQL 服务已启动:sudo service mysql status
HBase/HCatalog 警告不影响核心功能,可忽略;或安装对应组件消除警告

十三、安装完成标志

当你能成功执行 sqoop list-databases 并看到数据库列表时,说明 Sqoop 安装配置完成。


我的大数据环境总览

组件版本状态
操作系统Ubuntu 24.04 (WSL2)
JavaOpenJDK 17
Hadoop3.3.6
MySQL8.0.45
Sqoop1.4.7
SSH 服务OpenSSH

现在能做什么

1. 将 MySQL 数据导入 HDFS(已完成)

bash

sqoop import
--connect jdbc:mysql://localhost:3306/test
--username root
--password 123456
--table users
--target-dir /user/mumu/users
--m 1

2. 将 HDFS 数据导出回 MySQL

bash

先在 MySQL 中创建空表

mysql -u root -p123456 -e "USE test; CREATE TABLE IF NOT EXISTS users_backup (id INT, name VARCHAR(20));"

导出

sqoop export
--connect jdbc:mysql://localhost:3306/test
--username root
--password 123456
--table users_backup
--export-dir /user/mumu/users
--input-fields-terminated-by ','

3. 增量导入(只导入新增数据)

bash

假设新增了 id=3 的数据

mysql -u root -p123456 -e "USE test; INSERT INTO users VALUES (3, 'Charlie');"

增量导入

sqoop import
--connect jdbc:mysql://localhost:3306/test
--username root
--password 123456
--table users
--target-dir /user/mumu/users_incremental
--m 1
--check-column id
--last-value 2

4. 导入到 Hive(如果以后安装了 Hive)

bash

sqoop import
--connect jdbc:mysql://localhost:3306/test
--username root
--password 123456
--table users
--hive-import
--hive-table default.users


我的环境配置总结

组件状态验证方式
Javajava -version
Hadoophadoop version + hdfs dfs -ls /
MySQLmysql -u root -p
Sqoopsqoop version + 刚才的导入
MySQL → HDFS 导入已测试成功

后续学习建议

  1. 熟悉 Sqoop 参数--where(条件过滤)、--columns(指定列)、--query(自定义SQL)
  2. 了解控制并行度-m(mapper 数量),大表时可以设置大于 1
  3. 注意格式问题--fields-terminated-by--null-string 处理空值
  4. 学习作业管理--hadoop-home--mapreduce-job-name

Sqoop 安装完整教程(基于 WSL2 + Ubuntu 24.04)》 是转载文章,点击查看原文


相关推荐


Gogs: 打造属于你自己的轻量级 Git 服务
修己xj2026/5/8

在软件开发的世界里,Git 已经成为版本控制的事实标准。GitHub、GitLab 等平台提供了强大的托管服务,但有时候,我们需要一个完全属于自己的私有 Git 仓库——可能是为了代码安全,可能是为了定制化需求,可能是为了集成到现有服务中,也可能只是想在自己的服务器上搭建一个个人代码库。开源gitlab有点重,最近我在GitHub上发现了一个轻量级项目Gogs。 什么是 Gogs? Gogs 是一个用 Go 语言编写的自助 Git 托管服务。它的目标是以最简单、最轻松的方式搭建一个简单、稳定且


【系统架构师案例题-知识点】数据库与缓存设计
roman_日积跬步-终至千里2026/4/28

本文聚焦系统架构师案例题中的数据库与缓存设计,重点说明关系型数据库设计、NoSQL 选型、分库分表、读写分离、缓存策略、缓存故障模式以及缓存与数据库一致性问题,并结合电商、支付、内容平台、搜索系统、推荐系统等真实软件行业场景说明这些技术为什么会出现、各自解决什么问题、工程上该如何取舍。 阅读时可以按三个层次把握:先理解数据为什么会成为瓶颈,再理解数据库和缓存分别解决哪一类问题,最后把题干中的业务信号翻译成卷面表达。 一、先建立整体认识 数据库与缓存设计的核心,不是“会不会背名词”,而是看清系统到


Visual Studio 与 Visual Studio Code 区别
日更嵌入式的打工靓仔2026/4/20

特性Visual Studio (VS)Visual Studio Code (VS Code)本质类型集成开发环境 (IDE)轻量级源代码编辑器核心定位大型、复杂的项目开发(Windows、游戏、企业级应用)快速编辑、脚本编写、Web/云开发主要平台Windows、macOS (功能有差异)Windows、macOS、Linux占用空间大 (安装需要几GB到几十GB空间)小 (安装包约100MB以下)性能/速度启动和加载大型项目较慢启动迅速,打开文件极快价格社区版免费;专业版/企业版付费完全免


OpenClaw Windows 安装详细教程
超低空2026/4/11

OpenClaw(前身为 ClawdBot)是一款本地托管的个人 AI 助手系统,可以通过网关控制平面连接到 WhatsApp、Telegram、Discord 等常见通讯软件,并在本地运行各种工作流。 由于 OpenClaw 深度依赖底层系统的进程管理和文件监听,直接在 Windows 原生环境下运行可能会遇到一些限制。因此,官方推荐使用 WSL2(Windows Subsystem for Linux) 或 Docker 来进行安装。以下是详细的安装教程和避坑指南。 安装方式优缺点对比 在


别让APP名字和图标毁了你的Toast!一招教你Android优化技巧
小码哥_常2026/4/3

别让APP名字和图标毁了你的Toast!一招教你Android优化技巧 为啥要去掉 Toast 里的 APP 名字和图标 在如今这个看脸的时代,APP 的颜值也至关重要。统一、美观的 UI 设计,就像给 APP 穿上了一件漂亮的外衣,不仅能提升用户体验,还能让 APP 在众多竞争对手中脱颖而出。 大家在使用 APP 的时候,应该都遇到过 Toast 消息提示吧。这是一种轻量级的消息提示框,通常出现在屏幕底部,用来告知用户一些操作结果或者系统状态。但是,不知道大家有没有注意到,在某些手机上,比如小


Bun v1.3.11 官方更新全整理:新增功能、关键修复与升级验证
iDao技术魔方2026/3/26

Bun v1.3.11 官方更新全整理:新增功能、关键修复与升级验证 摘要 Bun v1.3.11 不是“小修小补”版本,而是一次“功能新增 + 兼容修复 + 工程稳定性”集中迭代。很多团队升级后只跑了 bun test,却漏掉 Cron、ANSI 字符串裁切、测试路径忽略、Windows ARM64 shim 等高价值更新。本文按官方清单做工程化拆解:新增了什么、修了什么、会影响哪里、怎么快速验证,附可执行命令与排错建议。 大家好,我是 iDao。10 年全栈开发,做过架构、运维,也在落地


web网络安全-每日一练-Training-WWW-Robots
观书喜夜长2026/3/18

练习题目:Training-WWW-Robots 练习网站(攻防世界):https://adworld.xctf.org.cn/ 解题步骤 1、打开题目场景 在这个小小的训练挑战中,你将了解Repbots_exclusion_standard。 robots.txt文件被网络爬虫用于检查它们是否被允许爬取和索引你的网站,或者只是网站的部分内容。 有时这些文件会暴露目录结构,而不是保护内容不被爬取。 祝你玩得开心! 2、利用Robots协议 发现根目录下有一个 f10g


Dockerfile构建SQL-Labs靶场及Docker安全管控
文刀竹肃2026/3/9

Dockerfile构建SQL-Labs靶场及Docker安全管控 一、前言 SQL注入是网络安全领域最常见的漏洞之一,SQL-Labs是一款经典的SQL注入练习靶场,包含了各种类型的SQL注入场景(联合查询、盲注、报错注入等),是网安学习、漏洞验证的必备环境。本文将通过Dockerfile自定义构建SQL-Labs靶场镜像,完整演示从基础镜像选择、依赖安装、靶场部署到镜像优化的全过程,同时重点讲解容器权限管控、安全风险规避要点,贴合网安靶场搭建的实际需求,与上一篇Docker基础、核心命令内容


Gateway—— 高级流量路由
离恨烟~2026/3/1

0 前言 Gateway API 是 Kubernetes 官方推出的下一代流量管理标准,旨在解决传统 Ingress 在协议支持、扩展性和多租户等方面的不足。它通过 GatewayClass、Gateway、HTTPRoute 等 CRD 实现流量治理的分层解耦,让基础设施和应用团队各司其职。本章将以若依项目为例,实战部署 Envoy Gateway 并实现高级流量路由。 1 Gateway的概念 1.1 什么是Gateway Gateway API 是 Kubernetes 官方下一代“流量


2026年,我的AI编程助手使用心得(纯个人体验,非评测)
PieroPc2026/2/21

今年在AI编程助手上摸索出一套自己的组合拳,分享给同样在路上的创作者们: 初稿设计 首选小米MiMo。不是因为它功能多强,而是因为它出设计稿真的快、真的漂亮。脑子里的想法扔给它,几分钟就能看到赏心悦目的初稿,这种“即时满足感”别的工具给不了。 aistudio.xiaomimimo.com/ 数据处理 遇到图片要转CSV或JSON,我会切到豆包Doubao。它的综合模型对图片支持确实好,识别准、转换快。不过坦白说,深入问下去就容易卡壳,这时候别硬撑。 www.doubao.c

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 聚合阅读