Spark學習(一) -- Spark安裝及簡介

標籤(空格分隔): Sparkshell


學習中的知識點:函數式編程、泛型編程、面向對象、並行編程。express

任何工具的產生都會涉及這幾個問題:apache

  1. 現實問題是什麼?
  2. 理論模型的提出。
  3. 工程實現。

思考: 數據規模達到一臺機器沒法處理的時候,如何在有限的時間內對整個數據集進行遍歷及分析?編程

Google針對大數據問題提出的一些解決方案:框架

  • MapReduce: 計算框架;
  • GFS:數據存儲
  • BigTable:NoSQL始祖。

Hadoop是根據MapReduce和GFS兩大論文所作的開源實現,所以,它主要解決2大問題:數據存儲分佈式計算框架
Hadoop生態圈分佈式

YARN是Hadoop2和Hadoop1的最大區別,將集羣管理自己獨立出來。而計算模型則更加專一於問題自己。函數式編程

Spark簡介

Spark是由UC Berkeley的AMPLab出品的,主要創做者是Matei Zaharia. Spark與MapReduce位於Hadoop生態圈的同一層,主要解決分佈式計算框架的問題。函數

Spark與Hadoop有如下關係:工具

  1. Spark和Hadoop中的MapReduce位於同一層次;
  2. Spark能夠部署在YARN(專門管理集羣工做的)上;
  3. Spark支持HDFS文件系統的訪問。

Mac Scala安裝

  1. 使用brew安裝:oop

    brew install scala

  2. 下載包安裝

    tar zxvf ~/Download/scala-2.12.1.tgz #解壓
    mv ~/Download/scala-2.12.1 ~/Download/scala #重命名
    mv ~/Download/scala /usr/local/share/ #將文件夾放到合適的位置

    修改環境變量,若是不是管理員可以使用 sudo 進入管理員權限,修改配置文件profile,在文件的末尾加入:
    export PATH="$PATH:/usr/local/share/scala/bin"

  3. 驗證

    $ scala
    顯示:Welcome to Scala version 2.11.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_40).
    Type in expressions to have them evaluated.
    Type :help for more information.

Mac Spark安裝

  1. 使用brew安裝

    $ brew install apache-spark

  2. 檢測是否安裝成功
  • cd /usr/local/Cellar/apache-spark/1.3.0/bin/
  • 輸入:./spark-shell啓動spark

WordCount in spark-shell

在spark-shell中完成單詞統計:

val file = sc.textFile("/usr/local/Cellar/apache-spark/1.3.0/README.md")
// 以空格爲拆分標誌,將文件中的每一行分割爲多個單詞
val words = file.flatMap(line => line.split(" "))
// 對每個單詞進行計數
val wordNumber = words.map(w => (w, 1))
// 將單詞進行分類合併,計算每一個單詞總的出現次數
val wordCounts = wordNumber.reduceByKey(_+_)
//將全部單詞及其出現次數打印出來
wordsCounts.foreach(println)

上述工做的簡單表述形式:

sc.textFile("/usr/local/Cellar/apache-spark/1.3.0/README.md")
.flatMap(line => line.split(" "))
.map(w => (w, 1))
.reduceByKey(_+_)
.foreach(println)
相關文章
相關標籤/搜索