Sqoop是什么?
Sqoop是一个用于在Hadoop和关系数据库之间传输数据的工具
将数据从RDBMS导入到HDFS(HDFS、Hive、HBase),从HDFS导出数据到RDBMS,使用MapReduce导入和导出数据,提供并行操作和容错
目标用户:系统管理员、数据库管理员、大数据分析师、大数据开发工程师等
1、从mysql(关系型数据库)导入数据到HDFS-1
导入表到HDFS
[root@hadoop1 sqoop]# ./bin/sqoop-import \
--配置数据库连接为MySQL中数据库hive
> --connect jdbc:mysql://hadoop1:3306/retail \
--配置数据库中的表user
> --table user
--mysql的用户名
> --username root
--mysql的密码
> --password ok
--导入hdfs指定路径
> --tar-dir /data/user
--m表示Mapper数量,即储存到hdfs中的文件数量
> --m 3
增量导入
[root@hadoop1 sqoop]# ./bin/sqoop-import \
> --connect jdbc:mysql://hadoop1:3306/retail \
> --username root --password ok --table orders \
--关键字
> --incremental append \
--指定递增的列
> --check-cloumn order_id \
--指定上一次导入的最大值
> --last-value '100' \
> --target-dir /data/orders --m 3
2、从mysql(关系型数据库)导入数据到hive
[root@hadoop1 sqoop]# ./bin/sqoop-import \
> --connect jdbc:mysql://hadoop1:3306/retail \
> --username root --password ok --table orders \
--关键字
> --hive-import \
--指定hive里sqoop库中的orders表,无需在hive创建orders表,自动创建
> --hive-table sqoop.orders
也可以
[root@hadoop1 sqoop]# ./bin/sqoop-import \
> --connect jdbc:mysql://hadoop1:3306/retail \
> --username root -password ok --table orders \
> --hive-import --create-hive-table \
> --hive-database sqoop --hive-table orders
导入到hive分区
[root@hadoop1 sqoop]# ./bin/sqoop-import \
> --connect jdbc:mysql://hadoop1:3306/retail \
> --username root -password ok --table orders \
> --hive-import --hive-table sqoop.orders \
> --hive-partition-key 'order_date' \
> --hive-partition-value '2020-10-12' \
> --m 3
也可以
[root@hadoop1 sqoop]# ./bin/sqoop-import \
> --connect jdbc:mysql://hadoop1:3306/retail \
> --username root -password ok --table orders \
> --hive-import --create-hive-table \
> --hive-database sqoop --hive-table orders \
> --hive-partition-key 'order_date' \
> --hive-partition-value '2020-10-12' \
> --m 3
3、从mysql倒入数据到hbase
[root@hadoop1 sqoop]# ./bin/sqoop-import \
> --connect jdbc:mysql://hadoop1:3306/retail \
> --username root -password ok --table customers \
> --columns 'CustomerNum,CustomerName' \
> --hbase-table customers \
> --cloumn-family CustomerName \
> --hbase-row-key CustomerNum \
> --m 3
4、从hdfs导入数据到mysql
在mysql里先创建一个orders表,在执行hive语句
[root@hadoop1 sqoop]# ./bin/sqoop-export \
> --connect jdbc:mysql://hadoop1:3306/sqoop
> --username root --password ok --table orders \
> --export-dir /data/retail_db/orders
> --input-fields-terminated by ','