按照評論:安裝爲一個使用GNU並行如在http://git.savannah.gnu.org/cgit/parallel.git/tree/README
描述從man parallel
EXIT STATUS個人或最小化安裝
Exit status depends on --halt-on-error if one of these are used: success=X,
success=Y%, fail=Y%.
0 All jobs ran without error. If success=X is used: X jobs ran without
error. If success=Y% is used: Y% of the jobs ran without error.
1-100 Some of the jobs failed. The exit status gives the number of failed jobs.
If Y% is used the exit status is the percentage of jobs that failed.
101 More than 100 jobs failed.
255 Other error.
如果您需要確切的錯誤代碼(而不僅僅是作業是否失敗),請使用:--joblog mylog
。
你或許可以這樣做:
cat ../path/TableNames.txt |
parallel --colsep '\t' --halt now,fail=1 hive -hiveconf tableName={1} -f ../hive/LoadTables.hql '2>' ../path/LogFile-{1}
fail=1
將停止產生新的就業機會,如果一個作業失敗,並與來自作業的退出代碼退出。
now
將殺死剩餘的工作。如果您希望剩餘的作業退出「自然原因」,請改爲使用soon
。
你能詳細說明爲什麼你不能使用GNU並行? https://oletange.blogspot.dk/2013/04/why-not-install-gnu-parallel.html上涵蓋的原因是什麼? –
感謝您的信息。我認爲我們必須安裝gnu parallel(我們不允許安裝任何軟件)才能使用它。從來沒有意識到有一個選項可以複製並行文件並使用它。 – snate
最後在我們的環境中安裝了gnu並行處理器。目前我的上面的腳本使用xargs,我怎樣才能用並行來替換它,執行像解析平面文件一樣的操作,並且爲它的每一行執行一個hive腳本並行地執行退出狀態捕獲和失敗邏輯。謝謝。 – snate