sqoop概述
- 官网:aqoop.apache.org
- 场景:解决传统型数据库缺点,分布式存储。把传统型数据库数据迁移
sqoop的export命令(导出)
- 需求:Hive/HDFS的数据导出到mysql
根据Hive中的表字段创建mysql表
1
2清空表数据:
mysql> truncate table user1;编写sqoop启动命令
1
2
3
4
5
6
7
8[root@bigdata211 sqoop]# bin/sqoop export \
> --connect jdbc:mysql://bigdata211:3306/sq \
> --username root \
> --password tiger \
> --table user1 \
> --num-mappers 1 \
> --expoet-dir /user/hive/warehouse/user_sqoop \
> --input-fields-terminated-by "\t"mysql中查看数据是否导入
- 需求:通过脚本文件执行程序
- 创建文件夹/root/sqoopjob
创建sqoopjob脚本(一行命令一行值)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16hdfs2mysql.opt:
export
--connect
jdbc:mysql://bigdate211:3306/sq
--username
root
--password
tiger
--table
user1
--num-mappers
1
--exoprt-dir
/user/hive/warehouse/user_sqoop
--input-fields-terminated-by
"\t"执行脚本文件
1
2
3启动脚本:
[root@bigdata211 sqoop]# bin hd/sqoop \
> --options-file /root/sqoopjob/hdfs2mysql.opt
sqoop常用命令
- import ————– 将数据导入到集群
- export ————– 将集群数据导出
- codegen ————- 把某张表数据生成java bean对象并且打包为jar
- eval —————- 查看sql的执行结果
- create-hive-table — 创建一个Hive表
- import-all-tables — 导入某个数据库中的所有表到集群中
- list-tables ——— 列出某个数据库下的所有表
- merge ————— 将HDFS中不同目录下的数据合并在一起
- help —————- 查看帮助信息
sqoop常用参数
- –connect ————– 连接关系型数据库URL
- –connection-manager — 指定连接管理类
- –diver —————- JDBC的driver class(驱动类)
- –username ————- 链接数据库的用户名
- –password ————- 链接数据库的密码
- –verbose ————– 在控制台打印详细信息
- –help —————– 查看帮助
- –hive-import ———- 将关系型数据库导入到Hive表中
- –hive-overwrite ——- 将关系型数据库覆盖到Hive表中
- –create-hive-table —- 创建Hive表
- –hive-table ———– 接入Hive表
- –table —————- 指定关系型数据库的表名