sqoop测试
sqoop list-databases --connect jdbc:mysql://124.251.115.187:3306/ --username glht --password queryroot0711
sqoop list-databases --connect jdbc:mysql://master:3306/ --username root --password hadoop
sqoop import \
--connect jdbc:mysql://master:3306/spark \
--username root \
--password hadoop \
--table order \
--delete-target-dir \
--target-dir /user/spark_order \
--num-mappers 1 \
--fields-terminated-by "\t"
sqoop import \
--connect jdbc:mysql://master:3306/bi \
--username root \
--password hadoop \
--table event_info \
--hive-import \
--hive-table elaiza.event_info \
--hive-overwrite \
--as-textfile \
--compress \
--compression-codec gzip \
--split-by id \
--fields-terminated-by "\t" \
--null-string '\\N' \
--null-non-string '0' \
-m 2
sqoop import \
--connect jdbc:mysql://master:3306/bi \
--username root \
--password hadoop \
--table event_info \
--hive-import \
--hive-table elaiza.event_info2 \
--hive-overwrite \
--as-textfile \
--compress \
--compression-codec gzip \
--split-by id \
--where "event_time >= '2020-03-17'" \
--fields-terminated-by "\t" \
--null-string '\\N' \
--null-non-string '0' \
-m 1
sqoop import \
--connect jdbc:mysql://master:3306/bi \
--username root \
--password hadoop \
--hive-import \
--hive-table elaiza.event_info3 \
--hive-overwrite \
--delete-target-dir \
--target-dir '/usr/hive/event_info3' \
--as-textfile \
--compress \
--compression-codec gzip \
--query 'select operator_id, event_key, event_time, source, session_id from event_info where event_time >= "2020-03-17 08:00:00" and $CONDITIONS ' \
--fields-terminated-by "\t" \
--null-string '\\N' \
--null-non-string '0' \
-m 1
确定:根据id自增是不准确的,数据有可能被修改
sqoop import \
--connect jdbc:mysql://master:3306/bi \
--username root \
--password hadoop \
--table event_info \
--hive-import \
--hive-table elaiza.event_info5 \
--incremental append \
--check-column id \
--last-value 70744 \
--as-textfile \
--compress \
--compression-codec gzip \
--fields-terminated-by "\t" \
--null-string '\\N' \
--null-non-string '0' \
-m 1
确定:根据id自增是不准确的,数据有可能被修改
sqoop import \
--connect jdbc:mysql://master:3306/bi \
--username root \
--password hadoop \
--table event_info \
--target-dir /usr/hive/warehouse/elaiza.db/event_info6 \
--incremental lastmodified \
--check-column event_time \
--last-value '2020-03-20 00:00:00' \
--merge-key id \
--as-textfile \
--compress \
--compression-codec gzip \
--fields-terminated-by "\t" \
--null-string '\\N' \
--null-non-string '0' \
-m 1
create table event_info6
(
id bigint COMMENT '事件id',
operator_id string COMMENT '操作人id',
event_key string COMMENT '事件具体操作',
event_time string COMMENT '事件发生时间',
source string COMMENT '系统来源',
session_id string COMMENT '会话ID',
params string COMMENT '请求参数',
create_time string COMMENT '创建时间'
)
row format delimited fields terminated by '\t';
--append 不断将增量数据旺目标目录追加文件
--merge-key 不断将增量数据导入的hdfs,而且会将以前导入和最近一次导入的数据用一个mr job来合并
sqoop参数
创建:sqoop job --create sq1 -- list-databases --connect jdbc:mysql://master:3306/ --username root --password hadoop
列出:sqoop job --list
执行:sqoop job --exec jobname
删除:sqoop job --delete jobname
/usr/local/src/sqoop-1.4.7.bin__hadoop-2.6.0/bin/sqoop \
list-databases
--connect jdbc:mysql://master:3306/
--username root
--password hadoop
* * * * * sh /usr/local/src/sqoop-1.4.7.bin__hadoop-2.6.0/job > /usr/local/src/sqoop-1.4.7.bin__hadoop-2.6.0/job/jobOutput/job.log 2>&1
--table mysql中的表
--delete-target-dir 如果hdfs中的目标目录存在,则删除
--target-dir d导入到hdfs只的目标目录
--split-by 切分工作单元,指定对应的 字段 ,一般是是id
--m 并行数
--columns 指定部分列
--query 查询语句,不能和--columns一起用,要搭配:where $CONDITIONS, 注意单引号和双引号的区别
--driver com.mysql.jdbc.Driver \ 指定驱动参数
--where 指定条件
--fields-terminated-by 指定分隔符,默认 ,
--null-string 字符串字段为空 被写成指定
--null-non-string 数字字段为空 被写成指定
--as-parquefile 输出的数据文件格式
--fetch-size 一次读取数据条数