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
相關文章
- sqoop job操作及執行Job時如何省略輸入MySQL儲存密碼OOPMySql密碼
- Sqoop之 Sqoop 1.4.6 安裝OOP
- sqoopOOP
- Sqoop(1)OOP
- Python程式碼解析: job = next(job for job in jobs if job.job_id == job_id)Python
- 【Sqoop篇】----Sqoop從搭建到應用案例OOP
- Sqoop同步策略OOP
- sqoop 的使用OOP
- SQOOP安裝部署OOP
- sqoop 架構分析OOP架構
- sqoop小作業OOP
- 【大資料】— sqoop ?大資料OOP
- sqoop的安裝OOP
- Sqoop fetchsize失效OOP
- sqoop簡單使用OOP
- oracle建立job並執行jobOracle
- 【JOB】Oracle JOB全面學習(DBMS_JOB和DBMS_SCHEDULER)Oracle
- ORACLE查詢JOB資訊及JOB建立Oracle
- 4- sqoop語法OOP
- sqoop指令碼批量生成OOP指令碼
- 【Hadoop】9、Sqoop元件Hadoop元件
- Sqoop2安裝OOP
- Hadoop Sqoop介紹Hadoop
- Sqoop 並行抽數OOP並行
- sqoop的外掛oraoopOOP
- oracle jobOracle
- java jobJava
- 使用sqoop將資料從hdfs中匯入mysql時,卡在INFO mapreduce.Job: map 100% reduce 0%的解決辦法OOPMySql
- Oracle中如何停用JOB及如何使用JOBOracle
- 批量刪除dbms_job建立的job
- job_queue_processes引數 job關係
- 【Oracle】ORA-23421: job number XXXX is not a job in the job queueOracle
- sqoop 安裝與配置使用OOP
- Sqoop1.4.6配置和使用OOP
- Sqoop1 From PostgreSQL to HdfsOOPSQL
- Sqoop安裝及驗證OOP
- sqoop應用例項1OOP
- DBMS_JOB.SUBMIT 建立job定時排程MIT