一、安裝jdkjava
二、安裝ideapython
三、安裝mavenapache
四、安裝scala windows
windows下 下載msi安裝文件,由於當前spark使用的scala版本爲 2.10.4,所以也選擇安裝2.10.4版本的scala。app
五、安裝idea的scala擴展工具 maven
http://blog.csdn.net/stark_summer/article/details/42460527ide
六、編寫hello world工具
新建項目,idea選擇maven建立。選擇archetype(org.scala-tool.archetypes:scala-archetype-simple)oop
修改pom,修改scala.version爲 2.10.4this
添加spark引用,由於安裝spark使用的1.5.2,所以包也選用1.5.2的
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>1.5.2</version>
</dependency>
添加打包maven plugin
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<!--這裏要替換成jar包main方法所在類-->
<mainClass>com.isenhome.WordCount</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<outputDirectory>out/assembly</outputDirectory>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- 指定在打包節點執行jar包合併操做 -->
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>
編寫代碼
object WordCount {
def main(args: Array[String]) {
if (args.length < 1) {
System.err.println("Usage: com.isenhome.WordCount <master> <input>")
System.exit(1)
}
val conf = new SparkConf()
val sc = new SparkContext(conf)
val line = sc.textFile(args(0))
line.flatMap(_.split(" "))
.map((_, 1))
.reduceByKey(_ + _)
.collect()
.foreach(println)
sc.stop()
}
}
使用idea生成jar包後,放置到spark master機器上。
執行spark-submit
./spark-submit --master spark://30.85.178.161:7077 --name WordCountByscala --class com.isenhome.WordCount --executor-memory 1G /home/datauser/test/spark/scala-tool-1.0-SNAPSHOT-jar-with-dependencies.jar hdfs://hadoop-1:9000/data/test/test.dat
spark-submit命令解析
參數名稱
|
含義
|
--master MASTER_URL
|
能夠是spark://host:port, mesos://host:port, yarn, yarn-cluster,yarn-client, local
|
--deploy-mode DEPLOY_MODE
|
Driver程序運行的地方,client或者cluster
|
--class CLASS_NAME
|
主類名稱,含包名
|
--name NAME
|
Application名稱
|
--jars JARS
|
Driver依賴的第三方jar包
|
--py-files PY_FILES
|
用逗號隔開的放置在Python應用程序PYTHONPATH上的.zip, .egg, .py文件列表
|
--files FILES
|
用逗號隔開的要放置在每一個executor工做目錄的文件列表
|
--properties-file FILE
|
設置應用程序屬性的文件路徑,默認是conf/spark-defaults.conf
|
--driver-memory MEM
|
Driver程序使用內存大小
|
--driver-java-options
|
|
--driver-library-path
|
Driver程序的庫路徑
|
--driver-class-path
|
Driver程序的類路徑
|
--executor-memory MEM
|
executor內存大小,默認1G
|
--driver-cores NUM
|
Driver程序的使用CPU個數,僅限於Spark Alone模式
|
--supervise
|
失敗後是否重啓Driver,僅限於Spark Alone模式
|
--total-executor-cores NUM
|
executor使用的總核數,僅限於Spark Alone、Spark on Mesos模式
|
--executor-cores NUM
|
每一個executor使用的內核數,默認爲1,僅限於Spark on Yarn模式
|
--queue QUEUE_NAME
|
提交應用程序給哪一個YARN的隊列,默認是default隊列,僅限於Spark on Yarn模式
|
--num-executors NUM
|
啓動的executor數量,默認是2個,僅限於Spark on Yarn模式
|
--archives ARCHIVES
|
僅限於Spark on Yarn模式
|