sqoop是数据传输工具,一般用于Hadoop系统与数据库之间的结构化数据的双向传输。
一、导入
从非大数据集群(RDBMS,mysql等常用数据库)导入大数据集群(Hadoop、hive、hbase)
1、mysql库表导入HDFS
- 全部导入
[root@Hadoop01 sqoop]# bin/sqoop import \
> --connect jdbc:mysql://hadoop01:3306/test \
> --username 账号 \
> --password 密码 \
> --table company \
> --target-dir /data/data_sqoop \
> --delete-target-dir \
> --num-mappers 1 \
> --fields-terminated-by "\t" \
> --mapreduce-job-name company
–delete-target-dir 若目标路径存在则删除,开发环境慎用
–num-mappers 1 mapper的个数,默认为4,产生4个数据块
–mapreduce-job-name company 指定java文件名
(执行关系型数据库导入HDFS时默认会在执行目录下产生一个xx.java文件)
查看导入的文件
[root@Hadoop01 sqoop]# hadoop fs -ls /data/data_sqoop
Found 2 items
-rw-r--r-- 1 root supergroup 0 2021-03-24 22:00 /data/data_sqoop/_SUCCESS
-rw-r--r-- 1 root supergroup 24 2021-03-24 22:00 /data/data_sqoop/part-m-00000
[root@Hadoop01 sqoop]# hadoop fs -cat /data/data_sqoop/part-m-00000
1 bai female
2 xue male
- 查询导入
[root@Hadoop01 sqoop]# bin/sqoop import \
> --connect jdbc:mysql://hadoop01:3306/test \
> --username 账号 \
> --password 密码 \
> --target-dir /data/data_sqoop \
> --delete-target-dir \
> --num