–m 1
–merge-key id
由于merge-key模式是进行了一次完整的mapreduce操作,
因此最终我们在lastmodifiedresult文件夹下可以看到生成的为part-r-00000这样的文件,会发现id=1的name已经得到修改,同时新增了id=6的数据。
4. 但双引号以及转义
A. 双引号
–query 后双引号特殊符号需要转义,
- $condition是==> “xxx $conditions”;
- SQL 关键字
result
需要转义 ==> `result`\ - <>号不用转义
B. 单引号
–query 后 单 引号特殊符号可以不转义
3. sqoop export
A. 参数
– 没有推出全量覆盖,所以我们才有 sqoop eval 先删除对方MySQL、oracle 数据
– hive-overwrite 是sqoop import的参数
A1.探索测试
B. 案例
#!/bin/bash
将过滤mysql表部分数据导入hdfs; 该数据可以hdfs dfs -get 获取打开看看
sqoop import -Dhadoop.security.credential.provider.path=jceks://hdfs/user/dubhe/passwd/dubhe_sch.pwd.jceks --connect jdbc:mysql://10.7.22.132:3306/dubhe_sch_db --username dubhe_sch --password-alias dubhe_sch.pwd.alias --query ‘select a.*,b.target_id,b.source_id from (select * from dubhe_sch_db.t_etl_job_log union all select * from dubhe_sch_db.t_etl_job_log_bak where date_format(job_time ,“%y-%m-%d”) =current_date() and $CONDITIONS) a join (select * from dubhe_sch_db.t_etl_job_config where source_id = “ts_csp” and id >= 15000 or job_name like “ts_csp%” and $CONDITIONS) b on a.id = b.id order by start_time asc;’ --target-dir ‘hdfs://nameservice1/user/dubhe/d_test’ --hive-import --hive-database dm_mart_interface --hive-table ts_csp_v_etl_job_logs --fields-terminated-by ‘\t’ --hive-overwrite --num-mappers 1 --null-string “\\N” --null-non-string “\\N”
sqoop eval -Dhadoop.security.credential.provider.path=jceks://hdfs/user/dubhe/passwd/csp3.pwd.jceks --connect jdbc:mysql://10.8.67.15:3306/bigdatadb --username qry --password-alias csp3.pwd.alias --query ‘delete from v_etl_job_logs;’
sqoop export -Dhadoop.security.credential.provider.path=jceks://hdfs/user/dubhe/passwd/csp3.pwd.jceks --connect jdbc:mysql://10.8.67.15:3306/bigdatadb --username qry --password