欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java寫(xiě)spark代碼 java調(diào)用spark程序

Spark 中用 Scala 和 java 開(kāi)發(fā)有什么區(qū)別

語(yǔ)言不同:Scala 是一門(mén)函數(shù)式語(yǔ)言,Java是面向?qū)ο笳Z(yǔ)言,二者在語(yǔ)言特點(diǎn)上差異特別大。但是scala也是運(yùn)行在java虛擬機(jī)上,兩者可以方便的互相調(diào)用。

創(chuàng)新互聯(lián)公司公司2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元鎮(zhèn)雄做網(wǎng)站,已為上家服務(wù),為鎮(zhèn)雄各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575

Spark作為一個(gè)數(shù)據(jù)統(tǒng)計(jì)分析的工具,它是偏向于函數(shù)式處理的思想,因此在spark應(yīng)用開(kāi)發(fā)時(shí),天然與scala親近,所以用scala寫(xiě)spark十分的簡(jiǎn)潔明了,用java代碼100行寫(xiě)出來(lái)的spark程序,可能用scala幾行就搞定了。

Java寫(xiě)spark則是java出生的開(kāi)發(fā)人員快速使用spark的最佳選擇。另外,Java 8之后,也添加了一些函數(shù)式語(yǔ)言得語(yǔ)法,這使得Java寫(xiě)spark簡(jiǎn)潔不少。

如何用java代碼替代spark-submit腳本

例子:在開(kāi)發(fā)web項(xiàng)目結(jié)合spark云平臺(tái)時(shí)遇到一個(gè)難題,當(dāng)一個(gè)類繼承了ActionSupport成為一個(gè)action后,在它的method()中不能調(diào)用spark程序(會(huì)報(bào)找不到spark jar包的錯(cuò)誤,不知道怎么解決)。

解決方案:把spark程序打包成jar文件,寫(xiě)一個(gè)腳本,在action的method()中調(diào)用這個(gè)腳本,運(yùn)用spark-submit啟動(dòng)spark程序。

腳本代碼 ,CRS.sh :

/usr/local/spark/spark-1.0.0-bin-hadoop1/bin/spark-submit \

--class ar.runCourseCF \

--master local[4] \

/root/IdeaProjects/HelloWorld/web/WEB-INF/lib/test.jar

struts2 的 action類:

public class recommendationAction extends ActionSupport

implements ModelDrivenRecommendationArguments {

private RecommendationArguments recommendation = new RecommendationArguments();

public String execute() throws Exception

{

//腳本路徑

String shellPath = "/root/IdeaProjects/HelloWorld/src/CRS.sh";

System.out.println(shellPath);

ShellUtil shell = new ShellUtil();

shell.runShell(shellPath);

return SUCCESS;

}

public RecommendationArguments getModel()

{

return recommendation;

}

}

java運(yùn)行腳本的代碼:

public class ShellUtil {

public void runShell(String shellPath)

{

//String shellPath="/root/IdeaProjects/CRS.sh"; //程序路徑

try {

Process process = null;

//添加權(quán)限

String command1 = "chmod 777 " + shellPath;

process = Runtime.getRuntime().exec(command1);

process.waitFor();

//用sh CRS.sh執(zhí)行腳本

String command2 = "sh " + shellPath;

Runtime.getRuntime().exec(command2).waitFor();

}catch(Exception e)

{

System.out.println(e.toString());

怎樣使用java開(kāi)發(fā)spark程序?

1、Spark 是基于內(nèi)存的分布式計(jì)算框架,因?yàn)闊o(wú)需利用 HDFS 作為中間結(jié)果保存的介質(zhì),性能杠杠的。Spark 是由 Scala 實(shí)現(xiàn)的,所以最好學(xué)習(xí)一下 Scala(當(dāng)然用 Python 和 Java 也是可以的)。()

為啥要用 Spark?

快!基于內(nèi)存

易用!Scala, Java, Python 都支持,還有交互式的 Python 和 Scala 的 shell,可以快速進(jìn)行原型開(kāi)發(fā)

通用!批處理、交互查詢、流處理、機(jī)器學(xué)習(xí)、圖計(jì)算,樣樣精通

兼容!可以使用各種現(xiàn)有的技術(shù)作為底層,也可以自己獨(dú)立運(yùn)行

Spark 生態(tài)系統(tǒng)有哪些組件?

Spark SQL: 類似 Hive,支持在不同 RDD 上進(jìn)行類似 SQL 的操作

Spark Streaming: 對(duì)于流數(shù)據(jù)進(jìn)行處理

MLlib: 機(jī)器學(xué)習(xí)庫(kù)

GraphX: 圖并行框架

RDD 是什么?

在 Spark 框架中,最重要的是一類新的數(shù)據(jù)抽象,叫做 Resilient Distributed Dataset - RDD。RDD 是分布式存儲(chǔ)在集群中的內(nèi)存對(duì)象,按照值的范圍或者哈希結(jié)果進(jìn)行劃分。與此同時(shí) RDD 會(huì)記錄關(guān)于數(shù)據(jù)進(jìn)行的各種操作(每次操作都會(huì)生成新的 RDD),這樣即使節(jié)點(diǎn)掛掉,也能夠根據(jù)之前的操作日志重新得到損失的 RDD

RDD 支持2種操作:

轉(zhuǎn)換(transformation):從現(xiàn)有的數(shù)據(jù)集創(chuàng)建一個(gè)新的數(shù)據(jù)集

動(dòng)作(actions):在數(shù)據(jù)集上運(yùn)行計(jì)算后,返回一個(gè)值給驅(qū)動(dòng)程序

2、實(shí)戰(zhàn)java開(kāi)發(fā)spark程序

3、spark集群環(huán)境搭建

如何配置Eclipse來(lái)使用Java編寫(xiě)Spark App

首先,打開(kāi)eclipse 然后,左上角文件(file)--project...--java -- java project 起個(gè)名字。點(diǎn)完成 右擊src。新建new--class 下面可以不勾。但是勾了會(huì)給你寫(xiě)代碼main函數(shù) 然后點(diǎn)完成 就可以寫(xiě)代碼了

分享標(biāo)題:java寫(xiě)spark代碼 java調(diào)用spark程序
網(wǎng)頁(yè)地址:http://chinadenli.net/article0/hpiioo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈品牌網(wǎng)站設(shè)計(jì)靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作