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


標簽(空格分隔): Spark


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

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

  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安裝:

    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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM