阿龙学堂-启动spark任务的两种方式
生活随笔
收集整理的這篇文章主要介紹了
阿龙学堂-启动spark任务的两种方式
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、簡(jiǎn)介
spark在現(xiàn)在的數(shù)據(jù)分析,包括離線分析,微批次處理過程中有很多的運(yùn)用,但是在啟動(dòng)任務(wù)的過程中,大部分是將spark作為一個(gè)單獨(dú)的項(xiàng)目進(jìn)行處理,但是有時(shí)候,在一些和web等項(xiàng)目整合的時(shí)候,就不需要單獨(dú)的進(jìn)行處理,因此就有了一下兩種啟動(dòng)spark的任務(wù)方式:
1.1、使用方式1
2、編寫scala代碼:
package cn.java.spark.comimport org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext}object WordCount {val lines:String="lines String hive hive hive def main def main Array"def main(args: Array[String]): Unit = {val sparkConf: SparkConf = new SparkConf().setAppName("WordCount")val sc = new SparkContext(sparkConf)sc.setLogLevel("WARN")val line: RDD[String] = sc.parallelize(Seq(lines))val words: RDD[String] = line.flatMap(_.split(" "))val wordAnd1: RDD[(String, Int)] = words.map((_,1))val result: RDD[(String, Int)] = wordAnd1.reduceByKey(_+_)val array: Array[(String, Int)] = result.sortBy(_._2,false).collect()array.foreach(println)sc.stop()} }?3、啟動(dòng)任務(wù)
#!/bin/bash /usr/local/service/spark/bin/spark-submit \ --class cn.java.spark.com.WordCount \ --master yarn \ --num-executors 10 \ --driver-memory 2g \ --executor-memory 5g \ /home/hadoop/alongxuetang/servers/spark/prod/alongxuetang-rec-spark-1.0-SNAPSHOT-jar-with-dependencies.jar1.2、使用方式2
1、添加以上maven的pom依賴
2、編寫Java代碼
package cn.java.spark.com;import org.apache.spark.launcher.SparkAppHandle; import org.apache.spark.launcher.SparkLauncher;import java.io.IOException;/*** @ClassName Launcher* @Description TODO* @Author Administrator* @Date 2019/10/24* @Version 1.0*/ public class Launcher {public static void main(String[] args) throws IOException {SparkAppHandle handler = new SparkLauncher().setAppName("zhouyalong-apps-NB100").setSparkHome("/usr/local/service/spark").setMaster("yarn").setConf("spark.driver.memory", "2g").setConf("spark.executor.memory", "1g").setConf("spark.executor.cores", "3").setAppResource("/home/hadoop/data/zhouyalong/aggr/shidian-root-1.0-SNAPSHOT.jar").setMainClass("cn.java.spark.com.WordCount")//.addAppArgs("I come from Launcher")//.setDeployMode("cluster").startApplication(new SparkAppHandle.Listener() {@Overridepublic void stateChanged(SparkAppHandle handle) {System.out.println("********** state changed **********");}@Overridepublic void infoChanged(SparkAppHandle handle) {System.out.println("********** info changed **********");}});while (!"FINISHED".equalsIgnoreCase(handler.getState().toString()) && !"FAILED".equalsIgnoreCase(handler.getState().toString())) {System.out.println("id " + handler.getAppId());System.out.println("state " + handler.getState());try {Thread.sleep(10000);} catch (InterruptedException e) {e.printStackTrace();}}} }3、啟動(dòng)任務(wù)
java -Djava.ext.dirs=/home/hadoop/data/alongxuetang/aggr -cp alongxuetang-root-1.0-SNAPSHOT.jar cn.java.spark.com.Launcher /usr/local/service/spark yarn?3、兩種啟動(dòng)spark任務(wù)方式介紹完畢,在項(xiàng)目中根據(jù)自己的需要進(jìn)行使用即可。歡迎關(guān)注微信公眾號(hào)? 【阿龍學(xué)堂】,更多編程基礎(chǔ)知識(shí)及機(jī)器學(xué)習(xí)學(xué)習(xí)內(nèi)容
?
總結(jié)
以上是生活随笔為你收集整理的阿龙学堂-启动spark任务的两种方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有关WLAN与wifi、WPAN与Blu
- 下一篇: 忐忑安心