数据的导出和导入都是针对大数据平台(HDFS,Hive,H )来定义的
数据从MySQL到大数据平台----------数据导入
数据从大数据平台到MySQL-----------数据导出
一、数据导出(大数据平台---->Mysql)
1.导出 HDFS数据到MySQL
sqoop export \\
--connect jdbc:mysql://qyl01:3306/sqoopdb \\
--username root \\
--password root \\
--table sqoopstudent \\
注意事项:
1)要在在mysql中创建sqoopdb数据库,
2)在sqoopdb中创建sqoopstudent的表,表中的字段与hdfs分割的字段一样
–export-dir /sqoopdata
3)指定要把那个目录下的文件导出
–fields-terminated-by ‘,’
4)指定分隔符
Export 常用参数:
export 主要参数
–direct 快速导入
–export-dir HDFS 到处数据的目录
-m,–num-mappers 都少个 map 线程
–table 导出哪个表
–call 存储过程
–update-key 通过哪个字段来判断更新
–update-mode 插入模式,默认是只更新,可以设置为 allowinsert.
–input-null-string 字符类型 null 处理
–input-null-non-string 非字符类型 null 处理
–staging-table 临时表
–clear-staging-table 清空临时表
–batch 批量模式
2.导出 HIVE 数据到 MySQL
/user/hive/warehouse/test.db/course hive文件路径
sqoop export \\
--connect jdbc:mysql://qyl01:3306/sqoopdb \\
--username root \\
--password root \\
--table course \\
--export-dir /user/hive/warehouse/test.db/course \\
指定要导出hive表的文件路径
–input-fields-terminated-by ‘,’
指定分隔符。
基本步骤和HDFS一样。
3.导出 H 数据到 MySQL
很遗憾,现在还没有直接的命令将 H 的数据导出到 MySQL
一般采用如下 3 种方法:
1、将 H 数据,扁平化成 HDFS 文件,然后再由 sqoop 导入
2、将 H 数据导入 Hive 表中,然后再导入 mysql
3、直接使用 H 的 Java API 读取表数据,直接向 mysql 导入,不需要使用 sqoop
二、数据导入(Mysql------>大数据平台)
常用参数:
–connect jdbc 连接地址
–connection-manager 连接管理者
–driver 驱动类
–hadoop-mapred-home $HADOOP_MAPRED_HOME
–help help 信息
-P 从命令行输入密码
–password 密码
–username 账号
–verbose 打印流程信息
–connection-param-file 可选参数
1.导入 MySQL 数据到 HDFS
1)普通导出
sqoop import \\
--connect jdbc:mysql://qyl01:3306/mysql \\
--username root \\
--password root \\
--table help_keyword \\
-m 1
默认导出到/user/qyl/目录下 可以通过命令进行查看:
hadoop fs -cat /user/qyl/help_keyword/part-m-00000
2) 指定分隔符和导入路径
–target-dir 指定目录
–fields-terminated-by \'\\t 指定分隔符
sqoop import \\
--connect jdbc:mysql://qyl:3306/mysql \\ mysql数据库
--username root \\
--password root \\
--table help_keyword \\ 数据库中的表
--target-dir /user/my_help_keyword \\ 导入到HDFS中的路径
--fields-terminated-by \'\\t\' \\ 指定分隔符
-m 1
3)导入 where 条件数据
–where where 子句的语法
sqoop import \\
--connect jdbc:mysql://qyl01:3306/mysql \\
--username root \\
--password root \\
--where \"name=\'STRING\' \" \\
--table help_keyword \\
--target-dir /test\\
这个路径一定不能存在
-m 1
2.导入 MySQL 数据到 HIVE
1)普通导入
Sqoop 导入关系型数据到 hive 的过程是先导入到 hdfs,然后再 load 进入 hive。
example1:
sqoop import \\
--connect jdbc:mysql://qyl01:3306/mysql \\
--username root \\
--password root \\
--table help_keyword \\
--hive-import \\
指定hive的导出
-m 1
example2:
sqoop import \\
--connect jdbc:mysql://qyl01:3306/mysql \\
--username root \\
--password root \\
--table help_keyword \\
--fields-terminated-by \"\\t\" \\
--lines-terminated-by \"\\n\" \\
--hive-import \\
--hive-overwrite \\
--create-hive-table \\
--hive-table test.new_help_keyword \\
--delete-target-dir
注意:表会自动创建,但是库不会。所以在执行该语句之前,一定要确保 hive 的数据库test是存在的,否则程序会报错
2)增量导入
增量导入是仅导入表中新添加的行的技术。
它需要添加 ‘incremental’ , ‘check-column’, 和 ‘last-value’ 选项来执行增量导入。
sqoop import \\
--connect jdbc:mysql://hadoop02:3306/mysql \\
--username root \\
--password root \\
--table help_keyword \\
--target-dir /user/hadoop/myimport3 \\
--incremental append \\ 指定递增
--check-column help_keyword_id \\ 增加的列
--last-value 500 \\ 从500开始
-m 1
2.导入 MySQL 数据到 H
sqoop import \\
--connect jdbc:mysql://qyl01:3306/mysql \\
--username root \\
--password root \\
--table help_keyword \\
--h -table new_help_keyword \\
--column-family person \\
--h -row-key help_keyword_id
字段解释:
–connect jdbc:mysql://hadoop04:3306/mysql 表示远程或者本地 Mysql 服务的 URI
–h -create-table 表示在 H 中建立表。
–h -table new_help_keyword 表示在 H 中建立表 new_help_keyword。
–h -row-key help_keyword_id 表示h 表的rowkey是mysql表的help_keyword_id
字段。
–column-family person 表示在表 new_help_keyword 中建立列族 person。
–username ‘root’ 表示使用用户 root 连接 mysql。
–password ‘root’ 连接 mysql 的用户密码
–table help_keyword 表示导出 mysql 数据库的 help_keyword 表
继续阅读与本文标签相同的文章
-
谷歌搜索广告出价方式
2026-05-18栏目: 教程
-
印度5G建设即将开始,是屈服于美国的施压,还是选择跟华为合作?
2026-05-18栏目: 教程
-
系列文章:云原生Kubernetes日志落地方案
2026-05-18栏目: 教程
-
QQ浏览器正孵化“用户增长团队”,解读中国浏览器行业发展趋势
2026-05-18栏目: 教程
-
Java并发系列(4)java关键字-synchronized
2026-05-18栏目: 教程
