公司最近要開始搞大資料專案,只好0基礎開始學習摸索,目前對基礎理論已經入門了,也能單獨寫一點簡單的計算程式跑起來。不過專案需求比較復雜,涉及的技術有好幾個,主要為Hadoop2(HDFS、YARN、MapReduce)、Sqoop、Flume、Spark1.6,流程總體可以概括為:
1.通過Sqoop把Oracle里面的資料匯入到Hive/HDFS,通過Flume把檔案資料匯入到Hive/HDFS
2.使用Spark程式對匯入的資料執行計算,得到計算結果保存為Hive表
3.通過Sqoop把計算結果匯出到Oracle
整個流程是串行的,要上一步完成并且成功才能進行下一步操作,因此公司要求開發一個Java版“總控”程式,實作各操作步驟的管控。我想過,覺得執行任務倒好辦一點,可以通過java的Runtime去exec命令例如sqoop import/export、spark-submit等,但是java程式中如何能夠監控hadoop mapreduce(因為sqoop底層是hadoop mapreduce任務)、Spark的任務呢?即使沒有進度資訊也沒關系,關鍵是要能夠獲得任務狀態以及任務是成功還是失敗的資訊,以便開始下一步作業。
求大神指教!!
uj5u.com熱心網友回復:
hadoop自帶監控的系統,
搜索下.
uj5u.com熱心網友回復:
你是說Metrics嗎?那個貌似不能滿足我的需求啊
uj5u.com熱心網友回復:
用作業調度框架Oozieuj5u.com熱心網友回復:
另外Spark可以直接寫JDBC df.write().mode(mode).jdbc(url,tableName,prop) ; 你也可以df.collect() 得到 List<Row> 然后定義自己的Insert SQL陳述句。 沒必要再通過Sqoop從Hive匯出到Oracleuj5u.com熱心網友回復:
如果結果集很大的話collect很有可能會記憶體溢位吧。而且貌似通過JDBC方式插入的效率有沒有sqoop操作高?我沒試過。
Oozie框架需要pig吧,公司定的總體技術框架中沒這個……另外Oozie支持Spark Job嗎?還有sqoop匯入資料到Hive的步驟怎么在Oozie里面搞?
uj5u.com熱心網友回復:
Oozie就是個MR作業調度程式,可以定義MR Hive Sqoop Spark Java等應用程式的作業流。你可以去oozie.apache.org官網上看。
sqoop底層也是JDBC。至于你說collect 容易OOM,貌似可以這樣 for ( Row row : df.collect() ) {// PreparedStatement Batch },也可以直接df.write().jdbc()寫到個臨時表,再跑個Select into目標表的SQL
uj5u.com熱心網友回復:
另外Spark可以直接寫JDBC df.write().mode(mode).jdbc(url,tableName,prop) ; 你也可以df.collect() 得到 List<Row> 然后定義自己的Insert SQL陳述句。 沒必要再通過Sqoop從Hive匯出到Oracle
如果結果集很大的話collect很有可能會記憶體溢位吧。而且貌似通過JDBC方式插入的效率有沒有sqoop操作高?我沒試過。
Oozie框架需要pig吧,公司定的總體技術框架中沒這個……另外Oozie支持Spark Job嗎?還有sqoop匯入資料到Hive的步驟怎么在Oozie里面搞?
Oozie就是個MR作業調度程式,可以定義MR Hive Sqoop Spark Java等應用程式的作業流。你可以去oozie.apache.org官網上看。
sqoop底層也是JDBC。至于你說collect 容易OOM,貌似可以這樣 for ( Row row : df.collect() ) {// PreparedStatement Batch },也可以直接df.write().jdbc()寫到個臨時表,再跑個Select into目標表的SQL
在Oozie官網看了,貌似Oozie支持的是Hadoop 1.x?我看配置項有jobtracker地址什么的。我這邊公司用的是hadoop2.x……不過有空的時候確實可以學習一下Oozie看看。謝謝!
uj5u.com熱心網友回復:
樓主問題解決了嗎?我也有這方面的疑惑,學習下uj5u.com熱心網友回復:
樓主問題解決了么?大概思路能分享一下么uj5u.com熱心網友回復:
Oozie和Azkaban應該都可以完成,一個重量級一個輕量級uj5u.com熱心網友回復:
oozie吧,支持shell,mr,spark,hivesql轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/56392.html
標籤:Spark
