Oozie操作篇--Oozie Sqoop Action 配置Oozie調用sqoop命令

来源:https://www.cnblogs.com/wind-xwj/archive/2018/04/25/8946786.html
-Advertisement-
Play Games

Oozie Sqoop Action 配置 Sqoop Action 用來運行sqoop 任務,流程任務必須等當前節點的sqoop任務執行完成之後才能執行後續節點任務。Email Action 所有的節點值都可以使用EL表達式運行Sqoop Job,必須在 sqoop action裡面配置 job- ...



Oozie Sqoop Action 配置
  • Sqoop Action 用來運行sqoop 任務,流程任務必須等當前節點的sqoop任務執行完成之後才能執行後續節點任務。
  • Email Action 所有的節點值都可以使用EL表達式
  • 運行Sqoop Job,必須在 sqoop action裡面配置 job-tracer,name-node,Sqoop command,也許還需要一些參數和配置。
  • 同Shell Action一樣 Sqoop Action 可以配置成創建或者刪除HDFS目錄之後再去執行一個Sqoop任務
  • Sqoop 應用的配置可以使用job-xml文件中的元素,也可以使用內部元素來配置,像EL表達式也支持在內部元素中的配置,內部元素的配置可以覆蓋外部文件中的配置,內部元素配置不能使用 Hadoop mapred.job.tracker and fs.default.name這兩個屬性
  • 跟mr任務一樣,在Shell任務中也可以使用文件和附件具體參見【http://archive.cloudera.com/cdh/3/oozie/WorkflowFunctionalSpec.html#a3.2.2.1_Adding_Files_and_Archives_for_the_Job

Sqoop Action格式
1234567891011121314151617181920212223242526272829303132<workflow-app name="[WF-DEF-NAME]" xmlns="uri:oozie:workflow:0.1">    ...    <action name="[NODE-NAME]">        <sqoop xmlns="uri:oozie:sqoop-action:0.2">            <job-tracker>[JOB-TRACKER]</job-tracker>            <name-node>[NAME-NODE]</name-node>            <prepare>               <delete path="[PATH]"/>               ...               <mkdir path="[PATH]"/>               ...            </prepare>            <configuration>                <property>                    <name>[PROPERTY-NAME]</name>                    <value>[PROPERTY-VALUE]</value>                </property>                ...            </configuration>            <command>[SQOOP-COMMAND]</command>            <arg>[SQOOP-ARGUMENT]</arg>            ...            <file>[FILE-PATH]</file>            ...            <archive>[FILE-PATH]</archive>            ...        </sqoop>        <ok to="[NODE-NAME]"/>        <error to="[NODE-NAME]"/>    </action>    ...</workflow-app>
  • prepare 元素 如果存在,表明在執行sqoop 命令之前需要執行的一系列 hdfs路徑的創建和刪除操作,並且路徑必須以  hdfs://HOST:PORT  開頭
  • job-xml 元素 如果存在,則作為sqoop任務的配置文件,從 schema 0.3開始支持多個job-xml元素用來支持多個job.xml文件
  • configuration 用來給sqoop任務傳遞參數
sqoop command
  • sqoop 命令可以通過command元素或者多個arg元素指定
  • 當使用command的時候,oozie會根據空格把命令切分成多個參數
  • 當使用arg的時候,oozie將會把arg裡面的值當成參數傳遞給sqoop
  • 當一個參數裡面有空格的時候,必須用arg來指定
  • 上述所有的元素值都可以使用EL表達式配置
Sqoop Action 使用實例一:oozie調用sqoop,使用sqoop同步mysql數據,執行成功發送提示郵件1,新建 job.properties
123456nameNode=hdfs://hadoop-node1.novalocal:8020jobTracker=hadoop-node1.novalocal:8050queueName=defaultexamplesRoot=xwj_testjobOutput=/user/xwj/testoozie.wf.application.path=${nameNode}/user/oozie/${examplesRoot}/apps/shell/sqoop_email/workflow.xml
2,workflow.xml
1234567891011121314151617181920212223242526272829303132333435363738<workflow-app xmlns="uri:oozie:workflow:0.4" name="email-wf">    <start to="sqoop-node"/>         <action name="sqoop-node">        <sqoop xmlns="uri:oozie:sqoop-action:0.2">            <job-tracker>hadoop-node1.novalocal:8050</job-tracker>            <name-node>hdfs://hadoop-node1.novalocal:8020</name-node>            <prepare>                <delete path="${jobOutput}"/>            </prepare>            <configuration>                <property>                    <name>mapred.compress.map.output</name>                    <value>true</value>                </property>            </configuration>            <command>sqoop import --connect jdbc:mysql://host:3306/oozie --username oozie --password oozie --query 'select id,app_name,app_path,user_name from WF_JOBS where $CONDITIONS LIMIT 100' --target-dir /user/xwj/test --delete-target-dir --num-mappers 1 --fields-terminated-by '\t'</command>        </sqoop>        <ok to="email-node"/>        <error to="fail"/>    </action>              <action name="email-node">        <email xmlns="uri:oozie:email-action:0.1">            <to>[email protected]</to>            <cc>[email protected]</cc>            <subject>Email notifications for ${wf:id()}</subject>            <body>The wf ${wf:id()} successfully completed.</body>        </email>        <ok to="end"/>        <error to="fail"/>    </action>    <kill name="fail">        <message>Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>    </kill>   <end name='end' /></workflow-app>
3,首先在本地的測試節點上創建文件夾 mkdir -p /opt/mydata/user/oozie/xwj_test/apps/shell/sqoop_email4,在hdfs上創建目錄 hdfs dfs -mkdir -p /user/oozie/xwj_test/apps/shell/sqoop_email5,將上述文件上傳到新建好的目錄中cd /opt/mydata/user/oozie/xwj_test/apps/shell/sqoop_email6,將本地文件 上傳到hdfs目錄中hdfs dfs -put ../sqoop_email/* /user/oozie/xwj_test/apps/shell/sqoop_email7,查看hdfs上的目錄文件是否存在 hdfs dfs -ls -r /user/oozie/xwj_test/apps/shell/sqoop_email8,切換yarn用戶重新提交任務su yarn oozie job -oozie http://hadoop-node0.novalocal:11000/oozie
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 用戶自定義數據類型:基於系統數據類型,由資料庫管理員生成。利用系統存儲過程定義用戶自定義數據類型` Sp_addtype [@typename=] 新數據類型名, [@phystype=] 系統數據類型名 [,[@nulltype=] null_type] [,[@owner=] owner_nam ...
  • HBase運行模式:單實例和分散式 HBase運行模式:單實例和分散式... 1 1.單實例模式... 1 1.1 單實例在HDFS下... 1 2.分散式... 1 2.1 偽分散式... 1 3完全分散式... 1 HBase有2種運行模式,單實例和分散式。 1.單實例模式 這個是預設的模式。單 ...
  • 恢復內容開始 之前在安裝mysql時也遇到了一些問題,再網上找了一些安裝教程,現在把主要步驟記錄下來以防以後用到時忘了! 小白一個,不喜勿噴哦!! 1.到官網下載http://dev.mysql.com/downloads/mysql/(註意別選錯了) 2.直接解壓就可以了(註意:解壓的位置就是你m ...
  • 使用資料庫為oracle 因為在將數據從歷史表導入當前表時,因欄位個數不對,導致不能導數據。 一、將歷史表的欄位增加一個或者多個的SQL語句。 1、增加一個欄位:(增加欄位時,只能排在已有欄位的後面,不能插到已有欄位之間) Alter Table t_app_si_addr_12 Add CHG_A ...
  • T SQL語法學習(一) 第一節 不常用語句 不常用語句 指的是一些不常用的查詢語句,不針對業務數據查詢 SET STATISTICS IO ON(用於查詢邏輯讀取次數,物理讀取次數) 圖片 select @@version (查詢當前實例的資料庫版本) 第二節 操作資料庫管理工具註意事項 當我們在 ...
  • 修改name的目的只是為了日後管理清晰點,不重覆。我比較懶、記性又差,所以就整理記下1、檢查當前nameSQL> show parameter nameNAME TYPE VALUE db_file_name_convert string db_name string test141db_uniqu ...
  • 目的 確定Oracle DB中可能發生的故障類型 說明優化實例恢復的方法 說明檢查點,重做日誌文件和歸檔日誌文件的重要性 配置快速恢復區 配置ARCHIVEDLOG模式 資料庫管理員的部分職責 儘量避免資料庫出現故障 延長平均故障間隔時間(MTBF) 通過冗餘方式保護關鍵組件 -Real Appli ...
  • Oozie Spark Action 配置 Spark Action 用來運行spark 任務,流程任務必須等當前節點的spark任務執行完成之後才能執行後續節點任務。運行Spark Job,必須在 spark action裡面配置 job-tracer,name-node,master,和一些必要 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...