Sqoop学习笔记_Sqoop的基本使用二(sqoop的import与export)

Sqoop抽取从mysql抽取到hive

sqoop抽取到mysql一样有两种方式一种是用command line的方式,一种是用sqoop opt文件调用的方式。(由于两种sqoop一已经记录了,现在主要是利用opt的方式)

、从hive到mysql,如果hive对应表如果没有分区字段的话配置如下(参数要根据实际情况更改)

fileName:test-hive.opt

import
--connect
"jdbc:mysql://master:3306/test"
--username
root
--password
123456
--table
"rpt_sale_daily"
--columns
"dateid,huodong,pv,uv"
--where
"dateid='2015-08-28'"
--hive-import
--hive-overwrite
--hive-table
test_sale_daily
--hive-drop-import-delims
-m
1

调用文件fileName:sqoop.sh

hadoop fs -rmr sqoop/rpt_sale_daily(先调用hadoop fs命令删除sqoop存在的中间文件表)

sqoop options-file ./test.opt(执行opt文件)

最后在linux执行命令行 sh ./sqoop.sh

如果hive表存在分区的话需要在opt配置文件加多一些配置项

import
--connect
"jdbc:mysql://master:3306/test"
--username
root
--password
123456

--table
"rpt_sale_daily"
--columns
"dateid,huodong,pv,uv"
--where
"dateid='2015-08-28'"

--hive-import
--hive-overwrite
--hive-table
test_sale_pt
--hive-drop-import-delims
--hive-partition-key
ds
--hive-partition-value
"2015-08-28"
-m
1

初次之外基本与上面相同。

记得报目录存在错误的话要先手动删除之前生成的sqoop存在的中间目录

hadoop fs -rmr {home}/{关系db表名}

/user/root/{关系db表名}

 

还有很多相关的sqoop hive to sql 的配置信息具体查看

http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.4-cdh5.1.0/SqoopUserGuide.html

note:写配置文件记得格式要严格不能多空格什么。opt方式不能传递参数是缺点,如果想克服这一缺点可能需要自己对program进行封装。

 

 

从HDFS到mysql

export

--connect

"jdbc:mysql://master:3306/test"

--username

root

--password

123456

-m

1

--table

"daily_hour_visit_result"

--columns

"dateid,pv,uv"

--export-dir

/user/hive/warehouse/rpt2.db/daily_hour_visit_result/ds=2015-08-28

--input-fields-terminated-by

原文地址:https://www.cnblogs.com/yaohaitao/p/5364503.html