Sqoop基本使用

本文详细介绍了Sqoop如何与MySQL、HDFS、Hive和HBase交互,包括数据导入导出、全库导出、数据过滤和增量导入等操作,提供实用示例帮助理解。
摘要由CSDN通过智能技术生成

Sqoop基本使用

一、Sqoop 基本命令

1. 查看所有命令

# sqoop help

2. 查看某条命令的具体使用方法

# sqoop help 命令名

二、Sqoop 与 MySQL

1. 查询MySQL所有数据库

通常用于 Sqoop 与 MySQL 连通测试:

sqoop list-databases \
--connect jdbc:mysql://192.168.73.132:3306/ \
--username root \
--password 123456

2. 查询指定数据库中所有数据表

sqoop list-tables \
--connect jdbc:mysql://192.168.73.132:3306/mysql \
--username root \
--password 123456

三、Sqoop 与 HDFS

3.1 MySQL数据导入到HDFS

1. 导入命令

示例:导出 MySQL 数据库中的 help_keyword 表到 HDFS 的 /test/sqoop 目录下,如果导入目录存在则先删除再导入,使用 3 个 map tasks 并行导入。

注:help_keyword 是 MySQL 内置的一张字典表。

sqoop import \
--connect jdbc:mysql://192.168.73.132:3306/mysql \     
--username root \
--password 123456 \
--table help_keyword \           # 待导入的表
--delete-target-dir \            # 目标目录存在则先删除
--target-dir /test/sqoop \            # 导入的目标目录
--fields-terminated-by '\t'  \   # 指定导出数据的分隔符
-m 3                             # 指定并行执行的 map tasks 数量

日志输出如下,可以看到输入数据被平均 split 为三份,分别由三个 map task 进行处理。数据默认以表的主键列作为拆分依据,如果你的表没有主键,有以下两种方案:

  • 添加 -- autoreset-to-one-mapper 参数,代表只启动一个 map task,即不并行执行;
  • 若仍希望并行执行,则可以使用 --split-by <column-name> 指明拆分数据的参考列。
2. 导入验证
# 查看导入后的目录
hadoop fs -ls /test/sqoop
# 查看导入内容
hadoop fs -text /test/sqoop/part-m-00000

查看 HDFS 导入目录,可以看到表中数据被分为 3 部分进行存储,这是由指定的并行度决定的。

3.2 HDFS数据导出到My

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值