2
我最近在學習oozie。我對貝殼動作有點好奇。我在執行包含shell命令一樣爲什麼oozie將紗線動作提交給紗線?
hadoop jar <jarPath> <FQCN>
當運行這個動作有運行兩個紗作業這是
一個Hadoop的工作
一個殼行動
殼行動
我不明白爲什麼貝殼動作需要紗線執行。我也嘗試了電子郵件操作。它執行時沒有紗線資源。
我最近在學習oozie。我對貝殼動作有點好奇。我在執行包含shell命令一樣爲什麼oozie將紗線動作提交給紗線?
hadoop jar <jarPath> <FQCN>
當運行這個動作有運行兩個紗作業這是
一個Hadoop的工作
一個殼行動
殼行動我不明白爲什麼貝殼動作需要紗線執行。我也嘗試了電子郵件操作。它執行時沒有紗線資源。
爲了回答這個問題,不同的是運行shell動作作爲Oozie的工作流程的一部分運行的一個外殼腳本獨立地(從CLI sh文件或)
之間第一種情況非常明顯。
在第二種情況下,oozie通過YARN(是資源談判器)啓動shell腳本,以在安裝oozie的羣集上運行您的shell腳本,並在內部運行MR作業以啓動shell操作。所以shell腳本在內部作爲YARN應用程序運行。 oozie工作流的日誌顯示了shell操作在oozie中啓動的方式。
電子郵件只需要一個API調用,它不消耗內存或CPU或磁盤I/O - 只是一點網絡I/O。事實上,這是在Oozie服務器內部執行的**唯一**「動作」。其他一切都被卸載到YARN。這是一個核心設計選擇。請記住,雅虎!創建Oozie來運行**原始MapReduce **作業;其餘部分(java,shell,pig,hive,distcp ...)已被添加爲事後考慮,僅使用1個Map作爲代理的「啓動器」工作。 –
只需要一點谷歌搜索:*「Oozie中的一個基本設計原則**是Oozie服務器除了執行工作流程本身之外不會運行用戶代碼,通過將用戶代碼與Oozie的代碼隔離開來確保更好的服務穩定性代碼,Oozie服務器也是**無狀態的**,啓動器的工作使它可以保持這種狀態。「* https://www.safaribooksonline.com/library/view/apache-oozie/9781449369910/ch04。 HTML –