Spark學習記錄(一)Spark 環境搭建以及worldCount示例

安裝Spark
-------------------html

首先,安裝spark以前須要先安裝scala,而且安裝scala的版本必定要是將要安裝的spark要求的版本。好比spark2.1.0 要求scala 2.11系列的版本,不能多也不能少
1.下載spark-2.1.0-bin-hadoop2.7.tgzweb

地址:http://spark.apache.org/downloads.html
2.解壓shell

Linux中:
3.環境變量
[/etc/profile]
SPARK_HOME=/soft/spark
PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

[source]
$>source /etc/profileapache

Windos系統中:centos

將spark安裝目錄的bin目錄以及sbin目錄添加到path環境變量中api

4.驗證spark
運行spark的bin目錄中的spark-shellmaven

5.webUI
http://localhost:4040/函數

注:在spark-shell中 函數.(注意「.」)能夠查看apioop

 

spark實現word count
------------------------測試

建立測試文檔test.txt內容爲

hello world1
hello world2
hello world3
hello world4

打開spark-shell按行執行下列命令

//單詞統計1
$scala>val rdd1 = sc.textFile("/home/centos/test.txt")
$scala>val rdd2 = rdd1.flatMap(line=>line.split(" "))
$scala>val rdd3 = rdd2.map(word = > (word,1))
$scala>val rdd4 = rdd3.reduceByKey(_ + _)
$scala>rdd4.collect

//單詞統計2
sc.textFile("/home/centos/test.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).collect

//統計全部含有wor字樣到單詞個數。filter

//過濾單詞
sc.textFile("/home/centos/test.txt").flatMap(_.split(" ")).filter(_.contains("wor")).map((_,1)).reduceByKey(_ + _).collect

 

[API]
SparkContext:
Spark功能的主要入口點。表明到Spark集羣的鏈接,能夠建立RDD、累加器和廣播變量.
每一個JVM只能激活一個SparkContext對象,在建立sc以前須要stop掉active的sc。

SparkConf:
spark配置對象,設置Spark應用各類參數,kv形式。

 

分別以scala以及Java實現wordcount示例

----------------------------------------------------------

建立Java項目,添加maven以及scala支持:

項目中添加spark依賴包

scala版:

Java版:

直接運行便可,輸出以下:

有此可見scala與Java開發Spark的代碼差別,太巨大了,仍是別偷懶趕忙去學scala吧,開發效率不是一個級別的。

 

接下來咱們能夠把咱們的項目打成jar包,經過spark-submit命令在spark中運行:

spark-submit --master [主節點地址] --name [任務名稱] --class [jar包的main方法入口類名] [jar包地址]

spark-submit --master local --name myWordCount --class WordCountScala D:\workSpace\58QF\sparkFirst\target\sparkFirst-1.0-SNAPSHOT.jar

相關文章
相關標籤/搜索