Spark 學習 從零開始

Spark 簡介 從零開始

Spark是什麼
  spark是一個快速且通用的集羣計算平臺

Spark是快速的
   Spark擴充了流行的Mapreduce計算模型
   Spar是基於內存的計算  
Spark是通用的
   Spark的設計容納了其它分佈式系統擁有的功能
   批處理,迭代式計算,交互查詢和流處理等
   優勢:下降了集羣的維護成本
Spark是高度開放的
   Spark提供了Python,Java Scala,SQL的API和豐富的內之庫。
   Spark和其它的大數據工具整合的很好,包括hadoop,kafka等




Spark的組件

Spark Core   
    包括Spark的基本功能,包括任務調度,內存管理,容錯機制等。
    應用場景,爲其餘組件提供底層的服務
Spark SQL:
    是Spark處理結構化數據的庫,就像Hive SQL,Mysql同樣。
    應用場景,企業中用來作報表統計。    
Spark Streaming:
    實時數據流處理組件,相似Storm。    
    Sparm Streaming提供了API來操做實時流數據。
    應用場景,企業中用來從kafka接受數據作實時統計。
Mlib:    
    一個包含通用機器學習功能的包,Machine learning lib。
    包含分類,聚類,迴歸等,還包含模型評估,和數據導入。
    MLlib提供的上面這些方法,都支持集羣上的橫向擴展。
    應用場景,機器學習。
Graphx:
    是處理圖的庫(例如,涉及網絡圖),並進行圖的並行計算。
    像Spark Streaming,Spark SQL同樣,它也繼承了RDD API。
    它提供了各類圖的操做,和經常使用的圖算法,例如PangeRank算法。
    應用場景,圖計算。
Cluster Managers:
    就是集羣管理,Spark自帶一個集羣管理是單獨調度器。
    常見的集羣管理包括Hadoop YARN,Apache Mesos    


緊密集成的優勢:
    Spark底層優化了,基於Spark底層的組件,也獲得了相應的優化。
    緊密集成,節省了各個組件使用時的部署,測試時間。
    向Spark增長新的組件時,其它組件,可當即享用新組件的功能。

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

Spark與Hadoop的比較    
Hadoop應用場景
    離線處理
    對時效性要求不高
Spark應用場景
    實時性要求高的場景
    機器學習等領域

比較
Doug Cutting的觀點
    這是生態系統,每一個組件都有其做用,各善其職便可
    Spark不具備HDFS的存儲能力,要藉助HDFS等持久化數據。
    大數據將會孕育出等多的新技術        

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

Spark運行環境:
    Spark是Scala寫的,運行在JVM上,因此運行環境Java7+。
    若是使用Python API,須要安裝Python2.6+或者Python3.4+。
    Spark 1.6.2 -Scala2.10  Spark 2.0.0 -Scala 2.11


Spark下載:
    下載地址:http://spark.apache.org/downloads.html
    搭Spark不須要Hadoop,若有Hadoop集羣,可下載相應的版本。
    解壓
html

也能夠在linux上經過wget命令下載linux

 

 

 而後直接進行解壓算法

 

 

Spark目錄:
    bin包含了用來和Spark交互的可執行文件,如Spark shell.
    core,streaming,pytho,...包含主要組件的源代碼。
    examples包含了一些單機Spark job,你能夠研究和運行這些例子。sql

 

 

 

Spark的shell:
    Spark的shell使你可以處理分佈在集羣上的數據。
    Spark把數據加載到節點的內存中,所以分佈式處理可在妙級完成。    
    快速的迭代式計算,實時查詢、分析通常可以在shell中完成。
    Spark提供了Python shells和Scala shells。

Python Shell:
    bin/pyspark
    例如:./pyspark
    退出:exit();
Scala Shell:
    bin/spark-shell    

例子:    
    val lines = sc.textFile("../../testfile/")
    lines.count()     當前條數
    lines.first          第一行
    修改日誌級別 log4j.rootCategory = WARN,console
    目錄conf/log4j.propertiesshell

 

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

Spark開發環境搭建
Scala安裝
  下載地址: http://www.scala-lang.org/download/2.10.5.html
  默認安裝選項會自動配置環境變量。
  Spark 1.6.2  -Scala2.10  Spark 2.0.0  -Scala 2.11apache

 

Intellij IDEA的下載,安裝:網絡

  下載地址:http://www.jetbrains.com/idea/dom

  註冊碼地址: http://idea.lanyus.com

插件安裝ssh

  plugins,搜索Scala直接安裝,插件中有scala和sbt.

步驟   機器學習

  在Intellij中點擊File,選擇settings,而後點擊plugins,在彈出的右面的搜索框中輸入scala,而後找到直接點擊下載就能夠。

 

 開發第一個Spark程序

配置ssh無密登陸:

  ssh-keygen

       .ssh目錄下 catxxx_rsa.pub > authorized_keys

  chmod 600 authorized_keys

 

 

Spark開發環境搭建

搭建開發環境常遇到的問題:

  網絡問題,致使sbt查詢加載失敗,解決方法,好的網絡環境

  版本匹配問題 Scala2.10.5 , Jdk1.8 , Spark1.6.2, Sbt0.13.8

 

開發第一個Spark 程序

 新建好的scala項目以下

File -> new  -> Project.. -> 選擇Scala 右面的SBT選項  Next

如圖

 

 

 

如圖所示 紅框中指明 Spark-core 版本號,點擊上面的刷新,而後自動下載

開始寫入程序如圖

 

打包:

  配置jar包

  build

File  - > Project Structure...  -> Artifacts ->點擊+號 -> JAE -> From modules with dependencies...  -> 選擇項目名 指明要打包的代碼

如圖所示 配置jar包成功

而後開始buld

Build -> Build Artifact... ->build

 

打包提交以前須要啓動集羣

進入 /usr/local/xiaoma/spark/spark-2.2.0-bin-hadoop2.6/sbin

啓動集羣:

  啓動master ./sbin/start-master.sh

  啓動worker ./bin/spark-class

  提交做業 ./bin/spark-submit

例如:

1. 啓動master

././bin/start-master.sh

2.啓動worder

./bin/spark-class org.apache.spark.deploy.worker.Worker spark://localhost.localdomain:7077

http://www.imooc.com/video/143953.提交做業./bin/spark-submit --master spark://localhost.localdomain:7077 --class WordCount /home/mainxia/soft/wordcount.jar

相關文章
相關標籤/搜索