最近在搞spark相關的東西,有些概念問題請教一下大家
1、spark on yarn 這個架構,是否適合實時計算?還是只用于離線計算??
2、如果我需要實作web呼叫spark,應該怎么去做??有些場景我需要獲取spark運行后的結果,這該怎么辦??
3、我在網上看了很多例子,java里可以用sparkContext來呼叫spark,但是在設定master的時候,官網只指出可以填master Cluster URL to connect to (e.g. mesos://host:port, spark://host:port, local[4]). 并沒有yarn的cluster和client模式
4、有些代碼直接寫setMaster("yarn-cluster"),問題來了,設定這樣的一個字串,程式如何知道spark的地址是什么,如何知道yarn的地址是什么?我的程式和spark集群并不在一臺機器上,我覺得這肯定是有問題的
這幾個問題困擾了我很久,求大神們指點~~~
uj5u.com熱心網友回復:
沒人回答啊啊啊啊啊~~~~~~~~~~~~uj5u.com熱心網友回復:
1、spark on yarn,只不過是Spark程式跑在Yarn上面而已。2、訊息驅動
3+4、如果你需要確定Spark Driver在哪臺機器上,spark-submit啟動應用的時候指定用client模式。即--deploy-mode client。Driver就會運行在你執行提交的機器上。或者,你可以讓Driver啟動的時候,獲取自身的ip,然后寫到一個地方如資料庫里,告知要呼叫Spark的程式去訪問這個ip。
uj5u.com熱心網友回復:
訊息驅動是指??一個怎樣的流程??有例子么??
我知道用spark-submit怎么去執行,我想知道用程式代碼來呼叫spark的時候,怎么呼叫spark on yarn
uj5u.com熱心網友回復:
服務端處理一些耗時比較久的請求,一般就是用訊息驅動的異步模式去處理。打個比方,前端請求到大資料這邊做wordcount,web服務將wordcount請求壓入佇列中,并給予一個流水號。大資料端接收到請求,處理完成后,將流水號和結果放入如redis等快取或資料庫中。前端只需查詢該流水號是否完成,以及完成后獲取結果。不需要長時間占用sevlet鏈接
spark Standalone 和 yarn,就是你web程式部署在tomcat或weblogic一個意思。。。程式運行起來沒多少區別
uj5u.com熱心網友回復:
1、spark on yarn,只不過是Spark程式跑在Yarn上面而已。
2、訊息驅動
3+4、如果你需要確定Spark Driver在哪臺機器上,spark-submit啟動應用的時候指定用client模式。即--deploy-mode client。Driver就會運行在你執行提交的機器上。或者,你可以讓Driver啟動的時候,獲取自身的ip,然后寫到一個地方如資料庫里,告知要呼叫Spark的程式去訪問這個ip。
訊息驅動是指??一個怎樣的流程??有例子么??
我知道用spark-submit怎么去執行,我想知道用程式代碼來呼叫spark的時候,怎么呼叫spark on yarn
服務端處理一些耗時比較久的請求,一般就是用訊息驅動的異步模式去處理。打個比方,前端請求到大資料這邊做wordcount,web服務將wordcount請求壓入佇列中,并給予一個流水號。大資料端接收到請求,處理完成后,將流水號和結果放入如redis等快取或資料庫中。前端只需查詢該流水號是否完成,以及完成后獲取結果。不需要長時間占用sevlet鏈接
spark Standalone 和 yarn,就是你web程式部署在tomcat或weblogic一個意思。。。程式運行起來沒多少區別
第一個問題,你的意思是用異步的方式解決,我明白了;但是如果有場景需要同步的方式呢??spark適合這種方式么??
第二個問題,我問的不是Standalone 和 yarn的區別,他們的區別我知道,我問的是程式呼叫的方式怎么寫???不是要sparkcontext物件么,然后設定master么?standalone模式直接寫spark://xxxx.xxx.xx,但是yarn模式就不知道怎么寫了
uj5u.com熱心網友回復:
1、spark on yarn,只不過是Spark程式跑在Yarn上面而已。
2、訊息驅動
3+4、如果你需要確定Spark Driver在哪臺機器上,spark-submit啟動應用的時候指定用client模式。即--deploy-mode client。Driver就會運行在你執行提交的機器上。或者,你可以讓Driver啟動的時候,獲取自身的ip,然后寫到一個地方如資料庫里,告知要呼叫Spark的程式去訪問這個ip。
訊息驅動是指??一個怎樣的流程??有例子么??
我知道用spark-submit怎么去執行,我想知道用程式代碼來呼叫spark的時候,怎么呼叫spark on yarn
服務端處理一些耗時比較久的請求,一般就是用訊息驅動的異步模式去處理。打個比方,前端請求到大資料這邊做wordcount,web服務將wordcount請求壓入佇列中,并給予一個流水號。大資料端接收到請求,處理完成后,將流水號和結果放入如redis等快取或資料庫中。前端只需查詢該流水號是否完成,以及完成后獲取結果。不需要長時間占用sevlet鏈接
spark Standalone 和 yarn,就是你web程式部署在tomcat或weblogic一個意思。。。程式運行起來沒多少區別
第一個問題,你的意思是用異步的方式解決,我明白了;但是如果有場景需要同步的方式呢??spark適合這種方式么??
第二個問題,我問的不是Standalone 和 yarn的區別,他們的區別我知道,我問的是程式呼叫的方式怎么寫???不是要sparkcontext物件么,然后設定master么?standalone模式直接寫spark://xxxx.xxx.xx,但是yarn模式就不知道怎么寫了
同步的建議用其他實時流框架
把yarn的yarn-site.xml拷貝到spark的conf目錄下,spark submit的時候master傳 yarn就可以了。官方檔案有寫的
http://spark.apache.org/docs/latest/running-on-yarn.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/67585.html
標籤:Spark
上一篇:原創】如何分析網站的網路分布和決議策略,快速指導優化用戶體驗(一)
下一篇:資料結構(二):鏈表
