spark基礎知識

  1. 預備知識

1、如果要跑spark例子程序,最好配置環境變量時,加入如下內容。

省區頻繁輸入調用jar包。

注意不同的spark版本,對應路徑不同。

2、修改配置文件(這裏針對standalone模式)

host文件:

Master(Master):127.0.0.1(名稱與IP對應關係)

slave1(Worker):127.0.0.1(名稱與IP對應關係)

slave2(Worker):127.0.0.1(名稱與IP對應關係)

注意:Master只有一個,slave有好幾個。

spark-env.sh文件:

按官方文檔要求設置Masterslave的配置參數

對於.sh腳本文件,設置後要用source命令讓其馬上生效。

slaves文件:

切記:spark根目錄下配置文件夾conf下的文件都是.template,即都是模板。

根據需要,我們要對其修改,修改後的文件後綴名就不是template了,是我們自己要求的格式。

爲了方便查看,建議複製文件,按照模板格式修改。

3、所有主機必須關閉防火牆。

    1. spark運行shell和示例

    2. spark支持四種語言:scalajavapythonR。對應分別有4中語言的版本。
    3. 注意加載時的路徑(公共目錄爲spark根目錄下的examples/src/main)、方式。
    4. 1、運行示例程序
      1.       1.1、運行scalajava示例程序
      2.                  命令./bin/run-example
        			<class> [params]
        1.                  命令將調用spark-submit啓動程序。
        2.      1.2、運行python示例程序
        3.                 命令./bin/spark-submit
          								<.py> [params]
        4.                
          								示例如:./bin/spark-submit
          								examples/src/main/python/pi.py 10
        5. 
          								     1.3、運行R示例程序
          1. 
            									               命令:./bin/spark-submit
            									<.R> [params]
          2. 
            									               示例如:./bin/spark-submit
            									examples/src/main/r/dataframe.R
    5. 2、交互方式調用spark.java不是腳本語言,所有沒有交互調用方式)
      1.       2.1scala交互:調用./bin/spark-shell
        			(--master local[n])
          1.                  --master
            							local[n]:明確master
            							url即進行數量。
            1.                 
              									這裏master設置爲local本地,線程數量爲n.
            2.                 
              									默認情況下,master也爲local,線程數爲1.
            3.                 
              									更多關於spark-shell使用方法,參考--help.
        1.       2.2python交互:調用./bin/pyspark
          				(--master local[n])
        2.                  參數設置同上。      
          				        
          				
          1.       2.3R交互:調用./bin/sparkR
            					(--master local[n])
            1.                  參數設置同上。
    6. spark處理過程

      1. 1spark程序有兩個很重要的概念,或者說部件。
      2. 2、分別是sparkContext,RDD.
      3. 3、可以對應hadoopmap
        						reduce函數來理解其重要性和執行順序,但實際上不是一回事。
      4. 4spark啓動交互界面後會將source
        						context簡化爲sc
      5. 5RDD是彈性分佈式數據集的簡寫,是spark處理數據的方式。
    7. spark部署方式

      1. 1Amazon
        						EC2:啓動spark速度非常快,需要EC2腳本支持。
      2. 2standalone:部署在私有集羣上最簡單的方式,便於程序開發和調試。
      3. 3Apache
        						mesos:更通用的方式,可以運行hadoopmap
        						reduce程序和服務。
      4. 4hadoop
        						yarn:運行在yarn上(即mapreduce2.0版本)。
      5. 作爲個人開發測試,建議standalone方式。
    8. spark部署方式、交互界面、IDE編程

      1. 1、部署是在本機或者集羣上,spark的佈置方式。決定程序的運行和資源調度方式。
      2. 2、交互界面是用scalapythonR等腳本語言,調用spark,實現某項小功能。
      3. 3java是程序設計語言,同c/c++.不是腳本語言,所以不能用於交互編程。
      4. 4IDE編程是編寫中大型程序是,爲了加快速度和效率,在IDE集成環境下,編寫基於spark的程序。
      5. 5、交互shell能快速看到運行結果,便於隨時修改;IDE便於代碼集成、打包.
      6.       
        						這兩者在編程中經常穿插使用,提高開發效率。
    9. spark處理過程

1、獲得外部數據
2、數據處理:用RDD
API(包括transformationactions
	2.1、轉換爲新數據(把外部數據)
	2.2、啓動job(在cluster執行)

補充說明:
1RDD
APIspark最基本的APIRDD是彈性分佈式數據集Resilient
Distributed Dataset
2、在它之上更高級的APImachine
learning APIDataFrame
API.相比基本API,它們提供對數據更精確的操作。
    1. spark程序調試幾個疑問

1、現象:java.net.ConnectException:
Call From peter-HP-ENVY-Notebook/127.0.1.1 to localhost:9000 failed
on connection exception: java.net.ConnectException: 拒絕連接。
可能原因:沒有訪問hdfs的權限,可能是端口設置問題。
		
可能是hdfs.xml文件設置問題。
		
也可能是防火牆問題。(在一臺機器上運行spark,應該不是防火牆)
2、示例程序(scala交互界面)中輸入README.md
		
沒有設置文件路徑啊,在哪裏得到這個文件。
		
這個文件是在spark的根目錄下。
    1. spark編譯兩種方式

1sbt:需要聯網,需要git工具,編譯較慢。對應scala語言程序。
2maven:需要聯網,需要maven工具,編譯較快。對應java語言程序。
發佈了139 篇原創文章 · 獲贊 19 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章