『壹』 Spark 中用 Scala 和 java 開發有什麼區別
語言不同:Scala 是一門函數式語言,Java是面向對象語言,二者在語言特點上差異特別大。但是scala也是運行在java虛擬機上,兩者可以方便的互相調用。
Spark作為一個數據統計分析的工具,它是偏向於函數式處理的思想,因此在spark應用開發時,天然與scala親近,所以用scala寫spark十分的簡潔明了,用java代碼100行寫出來的spark程序,可能用scala幾行就搞定了。
Java寫spark則是java出生的開發人員快速使用spark的最佳選擇。另外,Java 8之後,也添加了一些函數式語言得語法,這使得Java寫spark簡潔不少。
『貳』 java 怎麼提交應用程序到spark standalone集群中去運行
1、Spark腳本提交/運行/部署1.1spark-shell(交互窗口模式)運行Spark-shell需要指向申請資源的standalonespark集群信息,其參數為MASTER,還可以指定executor及driver的內存大小。sudospark-shell--executor-memory5g--driver-memory1g--masterspark://192.168.180.216:7077spark-shell啟動完後,可以在交互窗口中輸入Scala命令,進行操作,其中spark-shell已經默認生成sc對象,可以用:valuser_rdd1=sc.textFile(inputpath,10)讀取數據資源等。1.2spark-shell(腳本運行模式)上面方法需要在交互窗口中一條一條的輸入scala程序;將scala程序保存在test.scala文件中,可以通過以下命令一次運行該文件中的程序代碼:sudospark-shell--executor-memory5g--driver-memory1g--masterspark//192.168.180.216:7077
『叄』 Spark 中用 Scala 和 java 開發有什麼區別
Scala相對於Java的優勢是巨大的。熟悉Scala之後再看Java代碼,有種讀匯編的感覺…… 如果僅僅是寫Spark應用,並非一定要學Scala,可以直接用Spark的Java API或Python API。但因為語言上的差異,用Java開發Spark應用要羅嗦許多。好在帶lambda的Java 8出來之後有所改善。 在Spark應用開發上,學Scala主要好處有二: 開發效率更高,代碼更精簡; 使用Spark過程中出現異常情況,在排查時如果對Spark源碼比較熟悉,可以事半功倍
『肆』 如何配置Eclipse來使用Java編寫Spark App
1. 環境准備
Eclipse 請不要使用最新的 Neon(4.6) ,太多Bug了。 還是使用最新的 Mars(4.5) 系列吧
JDK 版本8.x (Linux推薦Oracle, 沒有測試過OpenJDK)
因為只是用Java,因此無需安裝Scala及其相應的插件
2. 創建一個新的maven項目
3. pom.xml
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.6.0</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.10</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.10</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.10.5</version>
</dependency>
這里只列出了必要的幾個依賴。 其他的請根據你自己的項目需求添加
4. 使用maven打包
之後在Goal 之中填寫clean package 即可
如果在修改了與Spark相關的代碼之後,需要重新編譯打包才行。 否則會有異常提示。
5. 代碼編寫注意事項:
在創建JavaSparkContext的時候,需要把自己加進去。
public static JavaSparkContextgetContext(String taskName) {
JavaSparkContextsc = new JavaSparkContext(SparkConnUtils.getSparkConf(taskName));
sc.addJar("target/sparkstat-0.0.1-SNAPSHOT.jar");
return sc;
}
其中target/sparkstat-0.0.1-SNAPSHOT.jar是maven 運行之後生成的完整的jar包