sqoop导入导出

本文详细介绍了如何使用sqoop工具进行数据导入和导出,包括从mysql数据库导入数据到HDFS和HIVE,导出数据回mysql,以及增量导入、查询子集导入等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导入语法:$ sqoop import (generic-args) (import-args)

配置了环境变量可以直接使用sqoop否则需要找到对应目录
bin/sqoop

导入mysql表数据到HDFS

bin/sqoop import \
–connect jdbc:mysql://node-1:3306/userdb \
–username root \
–password hadoop \
–target-dir /sqoopresult \
–table emp –m 1

为了验证在 HDFS 导入的数据,请使用以下命令查看导入的数据:

hdfs dfs -cat /sqoopresult/part-m-00000

导入mysql表数据到HIVE

将关系型数据的表结构复制到hive中
bin/sqoop create-hive-table \
–connect jdbc:mysql://node-1:3306/userdb \
–table emp_add \
–username root \
–password hadoop \
–hive-table itcast.emp_add_sp

其中 –table emp_add为mysql中的数据库sqoopdb中的表
–hive-table emp_add_sp 为hive中新建的表名称

从关系数据库导入文件到hive中
bin/sqoop import \
–connect jdbc:mysql://node-1:3306/userdb \
–username root \
–password hadoop \
–table emp_add \
–hive-table itcast.emp_add_sp \
–hive-import \
–m 1


导入表数据子集

bin/sqoop import \
–connect jdbc:mysql://node-21:3306/sqoopdb \
–username root \
–password hadoop \
–where “city =’sec-bad’” \
–target-dir /wherequery \
–table emp_add –m 1

bin/sqoop import \
–connect jdbc:mysql://node-1:3306/userdb \
–username root \
–password hadoop \
–target-dir /wherequery12 \
–query ‘select id,name,deg from emp WHERE id>1203 and $CONDITIONS’ \
–split-by id \
–fields-terminated-by ‘\t’ \
–m 1


增量导入

bin/sqoop import \
–connect jdbc:mysql://node-21:3306/sqoopdb \
–username root \
–password hadoop \
–table emp –m 1 \
–incremental append \
–check-column id \
–last-value 1205


导出语法:$ sqoop export (generic-args) (export-args)

sqoop 导出数据至mysql

/emp_data/

1201,gopal,manager,50000,TP
1202,manisha,preader,50000,TP
1203,kalil,php dev,30000,AC
1204,prasanth,php dev,30000,AC
1205,kranthi,admin,20000,TP
1206,satishp,grpdes,20000,GR

首先需要手动创建mysql中的目标表:
mysql> USE sqoopdb;
mysql> CREATE TABLE employee (
id INT NOT NULL PRIMARY KEY,
name VARCHAR(20),
deg VARCHAR(20),
salary INT,
dept VARCHAR(10));

然后执行导出命令
bin/sqoop export \
–connect jdbc:mysql://node-1:3306/userdb \
–username root \
–password hadoop \
–table employee \
–export-dir /emp_data/


1)列出mysql数据库中的所有数据库命令
bin/sqoop list-databases \
–connect jdbc:mysql://node-21:3306 \
–username root \
–password hadoop

2)连接mysql并列出数据库中的表命令
bin/sqoop list-tables \
–connect jdbc:mysql://node-21:3306/sqoopdb \
–username root \
–password hadoop

导入mysql到hbase:

sqoop import 
--driver com.mysql.jdbc.Driver 
--connect "jdbc:mysql://11.143.18.29:3306/db_1"  --username root 
--password root 
--query "select rowkey,dtTime from tb1  where 1=1 and \$CONDITIONS" 
--hbase-table tb1
--column-family t 
--hbase-row-key id  -split-by dtTime -m 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值