Sqoop job
目錄
一、需求和方案總述
- 需求:將MySQL 的83張表先全量 匯入 Hive 數倉,然後增量的匯入新增的資料到 Hive 數倉 ods 層。
- 解決方案:建立臨時表,將每張表的資訊插入到臨時表,將 MySQL 臨時表資訊匯出到本地,然後建立 83 個Sqoop job, 最後執行 Sqoop job就可以實現 83 張表的增量匯入,前提就是83 張表中都有 時間欄位,Sqoop 監控這個時間欄位就可以。
二、Sqoop Job
1. Sqoop job 使用示例
1.查詢 job 列表
[root@hdp301 ~]# sqoop job --list
2.刪除 job
[root@hdp301 ~]# sqoop job --delete kangll
3.建立測試 job
sqoop job --create kangll -- import --connect jdbc:mysql://192.168.2.226:3306/yx \
--table stat_url_count \
--username root \
--password winner@001 -m 1 \
--hive-import \
--hive-table dwd_url_count \
--external-table-dir /yax/dwd/sfyp_test.db/dwd_url_count \
--incremental append \
--check-column last_timestamp \
--last-value '2015-11-30 16:59:43.1' \
--fields-terminated-by "\001"
4.執行 job
[root@hdp301 ~]# sqoop job -exec kangll
列印的日誌
5.執行結果檢視
為什麼要建立 Sqoop job , 因為 job 可以在 /root/.sqoop/metastore.db.script 儲存監控的最近的 時間戳欄位,如果不使用 Sqoop job 儲存,預設是會如下的效果 ,拿到 給的初始的值和查出的最大值更新插入
6.MySQL中 新插入兩條資料
7.日誌中 顯示查詢的方式
8.查詢 hive 表中的資料
2. Sqoop 增量匯入
注意:Sqoop 不支援 mysql轉hive時使用 lastmodified 模式進行增量匯入
nohup sqoop import -Dorg.apache.sqoop.splitter.allow_text_splitter=true \ --connect ${driver} \ --username ${dbUsername} \ --password ${dbPasswd} \ --table "${tableName}" \ --hive-import \ --hive-database data_exchange \ --hive-table "${tableName}" \ --hive-partition-key "dt" \ --hive-partition-value "${date}" \ --fields-terminated-by '\001' \ --external-table-dir "/winhadoop/ods/data_exchange.db/${tableName}" \ --check-column jhpt_update_time \ --incremental append \ --last-value '1990-02-02 12:21:21' \ --target-dir "/sqoop/data/append/" \ --m 1 \ --null-string '\\N' \ --null-non-string '\\N' \ --mapreduce-job-name data_exchange_${tableName} >> ${sfyp_log}/ods_data_exchange.${date}.log
還有一點: sqoop job 密碼 儲存 用引數
--password-file /input/sqoop/pwd/sqoopPWD.pwd
建立儲存密碼的檔案,上傳到HDFS
echo -n "hadoop" > sqoopPWD.pwd
hdfs dfs -mkdir -p /input/sqoop/pwd/sqoopPWD.pwd
echo -n "hadoop" > sqoopPWD.pwd
hdfs dfs -mkdir -p /input/sqoop/pwd/sqoopPWD.pwd
hdfs dfs -put sqoopPWD.pwd /input/sqoop/pwd
hdfs dfs -chmod 400 /input/sqoop/pwd/sqoopPWD.pwd
相關文章
- Python程式碼解析: job = next(job for job in jobs if job.job_id == job_id)Python
- Sqoop同步策略OOP
- 【Oracle】ORA-23421: job number XXXX is not a job in the job queueOracle
- Hadoop Sqoop介紹Hadoop
- sqoop小作業OOP
- 【大資料】— sqoop ?大資料OOP
- SQOOP安裝部署OOP
- sqoop 架構分析OOP架構
- 【Hadoop】9、Sqoop元件Hadoop元件
- sqoop指令碼批量生成OOP指令碼
- 4- sqoop語法OOP
- sqoop搭建及基本操作OOP
- Sqoop 並行抽數OOP並行
- Sqoop2安裝OOP
- sqoop 安裝與配置使用OOP
- 單體JOB向分散式JOB遷移案例分散式
- sqoop資料匯入匯出OOP
- sqoop條件抽取報錯distcpOOPTCP
- sqoop匯入orcle注意事項OOP
- Apache Sqoop與Apache Flume比較ApacheOOP
- sqoop如何指定pg庫的模式OOP模式
- Sqoop匯出ClickHouse資料到HiveOOPHive
- Sqoop的介紹和安裝OOP
- 資料同步工具Sqoop和DataXOOP
- job設計
- XXL-Job與Elastic-Job詳細對比AST
- sqoop部署及匯入與匯出OOP
- 1- hive和sqoop元件介紹HiveOOP元件
- hive學習筆記之八:SqoopHive筆記OOP
- kubernetes物件之Job物件
- oracle job管理(zt)Oracle
- Web Development Job in 4Webdev
- XXL JOB DockerCompose部署Docker
- Jenkins Job遷移Jenkins
- 關於Quartz的Job 不能被注入以及SpringAop對Job失效quartzSpring
- job任務均不執行,手工執行報job now running
- Xxl-job安裝部署以及SpringBoot整合Xxl-job使用Spring Boot
- Sqoop匯入資料異常處理OOP