测试 Sqoop 是否能够成功连接数据库
sqoop list-databases --connect jdbc:mysql//k200:3306/ --username root --password root
create database jinghang;
create table student(
id int(4) primary key not null auto_increment,
name varchar(255),
gender varchar(255));
insert into student(name, gender) values('banzhang', 'Male');
insert into student(name, gender) values('banzhangxifu', 'FeMale');
---------------------------------------------------------------------------------
导入数据:
1-全部导入
sqoop import
--connect jdbc:mysql://k200:3306/test
--username root
--password root
--target-dir /user/xuetong/student
--delete-target-dir
--num-mappers 1
--fields-terminated-by " "
--table student
2:查询导入
###
--query 'select name,gender from student where id <=1 and $CONDITIONS; '
注意:must contain '$CONDITIONS' in WHERE clause.
注意:如果 query 后使用的是双引号,则$CONDITIONS 前必须加转移符,防止 shell
识别为自己的变量。
注意:--query 选项,不能同时与--table 选项使用
3:导入指定列
***
--columns id,gender
--table student
***
--table student
--where "id=1"
-------------------------------------------------------------------------------------
Mysql---导入到Hive
sqoop import
--connect jdbc:mysql://k200:3306/test
--username root
--password root
--table student
--delete-target-dir
--num-mappers 1
--hive-import
--fields-terminated-by " "
--hive-overwrite
--hive-table student_hive
注意:该过程分为两步,第一步将数据导入到 HDFS,第二步将导入到 HDFS 的数据迁移到 Hive 仓库
注意:第一步默认的临时目录是/user/root/表名
--------------------------------------------------------------------------------------
Hive---导入到MySQL
sqoop export
--connect jdbc:mysql://k200:3306/test
--username root
--password root
--table emp
--num-mappers 1
--export-dir /user/hive/warehouse/hi_1.db/emp
--input-fields-terminated-by " "
注意:Mysql 中如果表不存在,不会自动创建
create table emp (
empno int(23),
ename varchar(233),
job varchar(233),
mgr int(23),
hiredate varchar(233),
sal double,
comm double,
deptno int(23));
脚本文件:
sqoop --options-file opt/job_HDFS2RDBMS.opt
vim job_HDFS2RDBMS.opt
export
--connect
jdbc:mysql://k200:3306/test
--username
root
--password
root
--table
location
--num-mappers
1
--export-dir
/user/hive/warehouse/location
--input-fields-terminated-by
" "
--------------------------------------------------------------------------------------------
create table location(
loc int(23),
loc_name varchar(233)
);