Sqoop 数据迁移案例

Sqoop 数据迁移工具

  • 定义 主要用于在 Hadoop(Hive)和传统数据库(mysql 等)之间进行数据的传递

层实现由 MR 完成(严格来说,只执行 map,没有 reduce)
部署 只需要部署在一台服务器上,作为程序提交给 YARN
配置 已在 Hadoop 集群中配置,免配置(可以在 sqoop-site.xml 个性化配置)
第三方库 需要在 sqoop 的 lib 目录下添加 mysql-connector-java 的 jar 包

  • 导入 HDFS 

sqoop import --connect jdbc:mysql:10.2.44.251:3306/ 数 据 库 名
--username 用户名 --password 密码 --table 数据表名 --target-dir 
/HDFS 文 件 系 统 中 存 放 的 文 件 目 录 / 文 件 名 -m map 的个数
--fields-terminater-by ‘字段间的分隔符’ --columns “列 1,列 2”
--where ‘选择条件’(默认存放在 HDFS 文件系统中)
sqoop import --connect jdbc:mysql:10.2.44.251:3306/ 数 据 库 名
--username 用户名 --password 密码 --query ’SQL 查询语句 and 
$CONDITIONS’ -m map 的个数 --target-dir /HDFS 文件系统中存放的文
件目录 / 文件名 --split-by 划 分 到 不 同 map 的规则, 如字段
id($CONDITIONS’ 检查记录的条数,告知 map)

  • 导出 HDFS 

sqoop export --connect jdbc:mysql:10.2.44.251:3306/ 数 据 库 名
--username 用户名 --password 密码 --export-dir ‘导出目录,目录下
的所有文件都会被导出 ’ --table 数 据 表 名 -m map 的 个 数
--fields-terminater-by ‘字段间的分隔符’

你可能感兴趣的:(Hadoop生态核心技术)