airflow延時啟動 sqoop分批次匯出

2021-10-12 17:31:26 字數 1092 閱讀 4814

1、airflow上的task1依賴於task2,如何讓task1在task2完成後45分鐘啟動?

背景:task1是個sqoop匯入任務,task2是個sqoop匯出任務,匯出會導致mysql主從延遲,這裡設定了延時45分鐘啟動task1來解決這個問題,具體時間可根據實際情況調整。

default_args =

dag = dag(

'dag_name'

, default_args=default_args, schedule_interval=

'25 1 * * *'

)#每日1:25分啟動此dag

# 臨時方案:在對應的指令碼完成操作後推遲45分鐘再觸發任務

task_name = pythonoperator(

task_id=

'task_name'

, python_callable=time_module.sleep,

op_args=[45

*60],

pool=

"***_pool"

,#airflow中配置好的

dag=dag,

retries=1,

)

2、hive->mysql,sqoop匯出資料量上萬,導致mysql主從延時,如何解決?

新增欄位到源表,新字段存放隨機數,根據一次匯出的資料量要求決定隨機數範圍,如30w資料量,運維需要你一次1萬條資料匯出,那這裡就分30次匯出,隨機數範圍設定為0-30:cast(rand() * 30 as int) as rand新建中間表,表結構與匯出目標表結構要一致,這是sqoop匯出有效的要求。新增過濾where rand=$sqoop匯出指令碼,設定遍歷匯出:

for rand_num  in 

do echo "----rand_num = $ ----"

中間表產生過程

sqoop匯出

echo "sleep 10s"

sleep 10

done

echo "finished sqoop export!"

延時啟動指令碼

客戶機的延時啟動指令碼 先複製以下 dim objshell set objshell wscript.createobject wscript.shell wscript.sleep 10000 ireturn objshell.run cmd.exe c server start start.b...

bat 延時啟動某個應用

1 bat延時 xp程式中通過ping 127.0.0.1 n 20 來實現延時操作,ping本地位址20行。win7中通過timeout 20 來實現延時20秒。2 刪除指定檔案 del q d 11 刪除d 11資料夾下的所有檔案,並且不需要提示刪除。p 刪除每乙個檔案之前提示確認。f 強制刪除...

延時啟動的批處理

希望每次進入windows後,自動執行emule,先是直接把emule.exe丟到startup群組裡,結果發現可以啟動,但是upnp總是提示錯誤,連伺服器總提示lowid。後來發現如果開機後等一段時間再啟動emule,upnp就正常了。所以寫了個簡單的批處理,一共3句話 echo offtimeo...