sqoop导入导出数据至目标地址
查看数据库列表
[root@test200 ~]# sqoop list-databases \
--connect jdbc:mysql://192.168.48.141:3306/ \
--username root \
--password cjh123
进mysql容器查看
docker exec -it mysql bash
mysql -uroot -pcjh123
docker cp ./retail_db.sql mysql:/home/
source /home/retail_db.sql
导入到HDFS
[root@test200 ~]# sqoop import \
--connect jdbc:mysql://192.168.48.141:3306/retail_db \
--username root \
--password cjh123 \
--driver com.mysql.jdbc.Driver \
--table customers \
--target-dir /data/customers
导入到HDFS加条件
# target-dir:创建指定目录
[root@test200 ~]# sqoop import \
--connect jdbc:mysql://192.168.48.141:3306/retail_db \
--username root \
--password cjh123 \
--driver com.mysql.jdbc.Driver \
--table customers \
--target-dir /data/customers
# 下面加了 m 是分片数量
[root@test200 ~]# sqoop import \
--connect jdbc:mysql://192.168.48.141:3306/retail_db \
--username root \
--password cjh123 \
--driver com.mysql.jdbc.Driver \
--table orders \
--where "order_id< 50" \
--target-dir /data/orders1 \
--m 1
# delete-target-dir:删除指定目录
[root@test200 ~]# sqoop import \
--connect jdbc:mysql://192.168.48.141:3306/retail_db \
--username root \
--password cjh123 \
--driver com.mysql.jdbc.Driver \
--table orders \
--where "order_id< 150" \
--delete-target-dir \
--target-dir /data/orders1 \
--m 1
使用query方式导入数据到HDFS
[root@cjh1 ~]# sqoop import \
--connect jdbc:mysql://192.168.48.141:3306/retail_db \
--username root \
--password cjh123 \
--driver com.mysql.jdbc.Driver \
--query "select * from orders where order_status='CLOSED' and \$CONDITIONS" \
--split-by order_status \
--delete-target-dir \
--target-dir /data/orders2 \
--m 3
# 通过指定列:columns
[root@cjh1 ~]# sqoop import \
--connect jdbc:mysql://192.168.48.141:3306/retail_db \
--username root \
--password cjh123 \
--driver com.mysql.jdbc.Driver \
--table orders \
--columns "order_id,order_date,order_customer_id" \
--delete-target-dir \
--target-dir /data/orders3 \
--m 1
导入数据到Hive
[root@cjh1 ~]# sqoop import \
--connect jdbc:mysql://192.168.48.141:3306/retail_db \
--username root \
--password cjh123 \
--driver com.mysql.jdbc.Driver \
--table orders \
--hive-import \
--delete-target-dir \
--hive-database retail_db \
--create-hive-table \
--hive-table orders \
--m 1
导入数据到hbase
[root@cjh1 ~]# sqoop import \
--connect jdbc:mysql://192.168.48.141:3306/retail_db \
--username root \
--password cjh123 \
--driver com.mysql.jdbc.Driver \
--table products \
--columns "product_id,product_name,product_description" \
--hbase-create-table \
--hbase-table products \
--column-family data \
--hbase-row-key product_id \
--m 3
将hdfs文件系统的数据导出到mysql表中
先创建指定表
CREATE TABLE `orders_tmp`(
`order_id` int(11) NOT NULL AUTO_INCREMENT,
`order_date` datetime NOT NULL,
`order_customer_id` INT(11),
`order_status` varchar(45),
PRIMARY KEY(`order_id`)
);
执行导入的命令
[root@cjh1 ~]# sqoop export \
--connect jdbc:mysql://192.168.48.141:3306/retail_db \
--username root \
--password cjh123 \
--driver com.mysql.jdbc.Driver \
--table orders_tmp \
--export-dir /data/orders1 \
--m 1
ps:望多多支持,后续更新中。。。