导入语法:$ 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