日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Spark 简介与安装部署

發布時間:2024/4/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spark 简介与安装部署 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本教程為實驗樓原創,轉載請注明課程鏈接:https://www.shiyanlou.com/courses/456

?

?

1. 課程說明

?

本教程是實驗樓Spark大數據動手實驗訓練營第一節,登錄實驗樓官網可以獲得本節實驗的配套環境并學習全部章節。課程為純動手實驗教程,為了能說清楚實驗中的一些操作會加入理論內容。理論內容我們不會重復造輪子,太多牛人已經寫了太多好文章,會精選最值得讀的文章推薦給你,在動手實踐的同時扎實理論基礎。

?

課程共15個實驗,通過在線實驗的方式學習Spark相關的Scala,Streaming,SparkSQL,MLlib,GraphX,IndexedRDD,SparkR,Tachyon,KeystoneML等多個項目。課程隨到隨學,問題隨時在實驗樓問答中提出,與老師和同學一起交流。

?

2. Spark 概念

?

Spark是UC Berkeley AMP lab開發的一個集群計算的框架,類似于Hadoop,但有很多的區別(詳細見3.4)。最大的優化是讓計算任務的中間結果可以存儲在內存中,不需要每次都寫入HDFS,更適用于需要迭代的MapReduce算法場景中,可以獲得更好的性能提升。例如一次排序測試中,對100TB數據進行排序,Spark比Hadoop快三倍,并且只需要十分之一的機器。Spark集群目前最大的可以達到8000節點,處理的數據達到PB級別,在互聯網企業中應用非常廣泛(詳細見3.2)。

?

3. 本節閱讀

?

本節必讀的理論文章:

?

  • 3.1 大數據技術生態介紹

?

寫的很好的一篇大數據技術生態圈介紹文章,層次條理分明,內容詳盡。推薦必讀。

?

  • 3.2 誰在使用Spark?

?

這個頁面列舉了部分使用Spark的公司和組織,有使用場景的介紹,可做簡單了解。

?

  • 3.3 Spark RDD原理詳解論文(英文)

?

最早的Spark論文之一,比起其他論文篇幅要短些,內容對理解Spark原理和內核很有價值,英文可以的話推薦閱讀。

?

  • 3.4 Spark與Hadoop對比

?

這篇介紹是我看到過最詳盡的,講到很多Spark基本原理和對比Hadoop的優勢,推薦必讀。

?

4. 安裝

?

Spark雖然是大規模的計算框架,但也支持在單機上運行,實驗樓的實驗環境只提供一臺機器,所以后續實驗都會在單機上,但會提示與集群環境有哪些區別。對于入門學習者而言,單機環境已經足夠。

?

Spark安裝非常簡單,簡單到只需要下載binary包解壓即可,具體的步驟如下。

?

4.1 安裝前準備

?

安裝Spark之前需要先安裝Java,Scala及Python。

?

安裝Java

?

實驗樓環境中已經安裝了JDK,這里打開桌面上的Xfce終端,執行查看Java版本:

?

?

可以看到實驗樓的Java版本是1.8.0_60,滿足Spark 1.5.1對Java版本的要求。

?

如果需要自己安裝可以在Oracle的官網下載Java SE JDK,下載鏈接:http://www.oracle.com/technetwork/java/javase/downloads/index.html。

?

安裝Scala

?

老版本的Spark安裝前需要先裝Scala,1.5.1版本可以無需這一步驟。但為了自己開發Scala程序調試的方便我們仍然安裝一個最新版本2.11.7的Scala。

?

Scala官網下載地址:http://www.scala-lang.org/download/

?

?

由于官網速度很慢,我們預先上傳到了實驗樓內網,下載并解壓到/opt/目錄:

?

wget http://labfile.oss.aliyuncs.com/courses/456/scala-2.11.7.tgz tar zxvf scala-2.11.7.tgz sudo mv scala-2.11.7 /opt/

?

測試scala命令,并查看版本:

?

?

安裝Python及IPython

?

安裝執行命令:

?

sudo apt-get update sudo apt-get install python ipython

?

實驗樓中已經安裝了Python及IPython,分別查看版本:

?

?

4.2 Spark下載

?

課程中使用目前最新穩定版:Spark 1.5.1,官網上下載已經預編譯好的Spark binary,直接解壓即可。

?

Spark官方下載鏈接:http://spark.apache.org/downloads.html

?

下載頁面中我們如下圖選擇Pre-build for Hadoop 2.6 and later并點擊下載:

?

?

為了節約時間,我們選擇從阿里云的鏡像下載:

?

wget http://mirrors.aliyuncs.com/apache/spark/spark-1.5.1/spark-1.5.1-bin-hadoop2.6.tgz

?

大約268M大小,下載完成后解壓并拷貝到/opt/目錄:

?

tar zxvf spark-1.5.1-bin-hadoop2.6.tgz sudo mv spark-1.5.1-bin-hadoop2.6 /opt/

?

進入到spark目錄查看目錄結構,本節實驗中會用到bin/目錄下的操作命令以及conf/目錄下的配置文件。

?

4.3 配置路徑與日志級別

?

為了避免每次都輸入/opt/spark-1.5.1-bin-hadoop2.6這一串前綴,我們將必要的路徑放到PATH環境變量中(實驗樓用的是zsh,所以配置文件為~/.zshrc):

?

# 添加配置到zshrc echo "export PATH=$PATH:/opt/spark-1.5.1-bin-hadoop2.6/bin" >> ~/.zshrc# 使zshrc起作用 source ~/.zshrc# 測試下spark-shell的位置是否可以找到 which spark-shell

?

我們進入到spark的配置目錄/opt/spark-1.5.1-bin-hadoop2.6/conf進行配置:

?

# 進入配置目錄 cd /opt/spark-1.5.1-bin-hadoop2.6/conf# 基于模板創建日志配置文件 cp log4j.properties.template log4j.properties# 使用vim或gedit編輯文件log4j.properties # 修改log4j.rootCategory為WARN, console,可避免測試中輸出太多信息 log4j.rootCategory=WARN, console# 基于模板創建配置文件 sudo cp spark-env.sh.template spark-env.sh# 使用vim或gedit編輯文件spark-env.sh # 添加以下內容設置spark的環境變量 export SPARK_HOME=/opt/spark-1.5.1-bin-hadoop2.6 export SCALA_HOME=/opt/scala-2.11.7

?

spark-env.sh配置如圖:

?

?

spark-env.sh腳本會在啟動spark時加載,內容包含很多配置選項及說明,在以后的實驗中會用到少部分,感興趣可以仔細閱讀這個文件的注釋內容。

?

至此,Spark就已經安裝好了,Spark安裝很簡單,依賴也很少。

?

后續幾節介紹簡單的Spark操作,為以后的實驗做基礎。

?

4.4 Spark-Shell

?

Spark-Shell是Spark自帶的一個Scala交互Shell,可以以腳本方式進行交互式執行,類似直接用Python及其他腳本語言的Shell。

?

進入Spark-Shell只需要執行spark-shell即可:

?

spark-shell

?

進入到Spark-Shell后可以使用Ctrl D組合鍵退出Shell。

?

在Spark-Shell中我們可以使用scala的語法進行簡單的測試,比如下圖所示我們運行下面幾個語句獲得文件/etc/protocols的行數以及第一行的內容:

?

?

上面的操作中創建了一個RDD file,執行了兩個簡單的操作:

?

  • count()獲取RDD的行數
  • first()獲取第一行的內容

?

我們繼續執行其他操作,比如查找有多少行含有tcp和udp字符串:

?

?

查看一共有多少個不同單詞的方法,這里用到Mapreduce的思路:

?

?

上面兩步驟我們發現,/etc/protocols中各有一行含有tcp與udp字符串,并且一共有243個不同的單詞。

?

上面每個語句的具體含義這里不展開,可以結合你閱讀的文章進行理解,后續實驗中會不斷介紹。Scala的語法我們在后續實驗中會單獨學習,這里僅僅是提供一個簡單的例子讓大家對Spark運算有基本認識。

?

操作完成后,Ctrl D組合鍵退出Shell。

?

pyspark

?

pyspark類似spark-shell,是一個Python的交互Shell。

?

執行pyspark啟動進入pyspark:

?

?

退出方法仍然是Ctrl D組合鍵。

?

也可以直接使用IPython,執行命令:IPYTHON=1 pyspark

?

?

在pyspark中,我們可以用python語法執行spark-shell中的操作,比如下面幾個語句獲得文件/etc/protocols的行數以及第一行的內容:

?

?

操作完成后,Ctrl D組合鍵退出Shell。

?

在后續的實驗中我們將大量使用python和scala的交互式shell,可以及時的獲得實驗結果,實驗重在理解原理,內容將很少涉及Java的內容,如果你對Java很熟悉可以參考后續的實驗代碼練習。

?

5. 啟動spark服務

?

這一節我們將啟動spark的master主節點和slave從節點,這里也會介紹spark單機模式和集群模式的部署區別。

?

5.1 啟動主節點

?

執行下面幾條命令啟動主節點:

?

# 進入到spark目錄 cd /opt/spark-1.5.1-bin-hadoop2.6# 啟動主節點 ./sbin/start-master.sh

?

沒有報錯的話表示master已經啟動成功,master默認可以通過web訪問http://localhost:8080,打開桌面上的firefox瀏覽器,訪問該鏈接:

?

?

圖中所示,master中暫時還沒有一個worker,我們啟動worker時需要master的參數,該參數已經在上圖中標志出來:spark://7a1e9a46bf54:7077,請在執行后續命令時替換成你自己的參數。

?

5.2 啟動從節點

?

執行下面的命令啟動slave

?

./sbin/start-slave.sh spark://7a1e9a46bf54:7077

?

沒有報錯表示啟動成功,再次刷新firefox瀏覽器頁面可以看到下圖所示新的worker已經添加:

?

?

也可以用jps命令查看啟動的服務,應該會列出Master和Slave。

?

5.3 測試實例

?

使用pyspark連接master再次進行上述的文件行數測試,如下圖所示,注意把MASTER參數替換成你實驗環境中的實際參數:

?

?

刷新master的web頁面,可以看到新的Running Applications,如下圖所示:

?

?

當退出pyspark時,這個application會移動到Completed Applications一欄。

?

可以自己點擊頁面中的Application和Workers的鏈接查看并了解相關信息。

?

5.4 停止服務

?

停止服務的腳本為sbin/stop-all.sh,運行時需要輸入shiyanlou用戶的密碼,因為腳本中使用ssh遠程對slave節點進行管理:

?

cd /opt/spark-1.5.1-bin-hadoop2.6 ./sbin/stop-all.sh

?

5.5 集群部署

?

上面的步驟介紹了我們在單機狀態Standalone Mode下部署的spark環境,如果要部署spark集群稍有區別:

?

  • 主節點上配置spark,例如conf/spark-env.sh中的環境變量
  • 主節點上配置conf/slaves,添加從節點的主機名,注意需要先把所有主機名輸入到/etc/hosts避免無法解析
  • 把配置好的spark目錄拷貝到所有從節點,從節點上的目錄路徑與主節點一致,例如都設置為/opt/spark-1.5.1-bin-hadoop2.6
  • 配置主節點到所有從節點的SSH無密碼登錄,使用ssh-keygen -t rsa和ssh-copy-id兩個命令
  • 啟動spark集群,在主節點上執行sbin/start-all.sh
  • 進入主節點的web界面查看所有worker是否成功啟動
  • ?

    6. 總結

    ?

    本節實驗中我們學習了以下內容,任何不清楚的地方歡迎到實驗樓問答與我們交流:

    ?

  • Spark原理相關優秀文章及論文
  • Spark單機模式的安裝與基本配置
  • pyspark的使用及關聯IPYTHON
  • Spark-Shell的使用
  • Spark主從節點的啟動與停止
  • Spark集群部署與單機部署的差異
  • 最簡單的文件行數及去重字數查詢的RDD實例(Scala及Python語法)
  • ?

    請務必保證自己能夠動手完成整個實驗,只看文字很簡單,真正操作的時候會遇到各種各樣的問題,解決問題的過程才是收獲的過程。

    ?

    附:Spark大數據訓練營全部實驗列表

    總結

    以上是生活随笔為你收集整理的Spark 简介与安装部署的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 成年人看的黄色 | 黄网在线看 | 成人免费自拍视频 | 国产99热| 亚洲一区二区三区四区 | 男人的天堂2019 | 日本午夜一区二区三区 | 操你啦影院 | 无码少妇一级AV片在线观看 | 天天躁日日躁狠狠躁免费麻豆 | 欧美特级毛片 | 污污在线免费观看 | 噜噜狠狠狠狠综合久久 | 91在线观看免费视频 | 色狠狠综合网 | 亚洲一区在线免费观看 | avwww. | 精品国产一区二区在线观看 | 99国产精品久久久久 | 亚洲第一福利视频 | 国产有码在线观看 | 国产精品高潮呻吟久久aⅴ码 | 久久这里 | www日本xxx | 亚洲永久精品ww.7491进入 | 日韩黄色片网站 | 国产欧美久久久久 | 毛片无遮挡| 韩国三级bd高清中字2021 | 亚洲精品国产欧美在线观看 | 天天射网 | 韩日三级视频 | 女优在线观看 | n0659极腔濑亚美莉在线播放播放 | 成年人性视频 | 色吧在线观看 | 懂色aⅴ国产一区二区三区 亚洲欧美国产另类 | 亚洲の无码国产の无码步美 | 小h片在线观看 | 6699av| 欧美激情在线一区 | 婷婷777 | 91免费高清在线观看 | 国内自拍第二页 | 亚洲天天| 国产乱淫a∨片免费观看 | 99久久精品一区二区成人 | 色碰视频| 国产特级av | 精品无码一区二区三区 | 一二三毛片 | 国产精品国产av | 亚洲一区不卡 | 性史性dvd影片农村毛片 | 午夜精品一区二区三 | 日本激情视频一区二区三区 | 国产精品亚洲欧美 | 中国女人高潮hd | 麻豆视频在线观看免费网站黄 | 中文字幕在线视频免费播放 | 亚洲人妖在线 | 在线午夜| 久久免费小视频 | 国产大片av | 欧美色图30p | 狠狠夜| 青草福利| 成人免费直播 | 亚洲国产欧美一区 | 中文有码av| 天天爽天天摸 | 中文字幕一本 | 午夜精产品一区二区在线观看的 | a人片 | 成人网在线免费观看 | 日本亚洲天堂 | 嫩草影院久久 | 一区二区乱码 | 伊人96| 国产精品国产三级国产Av车上的 | 成人小视频在线观看 | 免费污视频 | 亚洲 高清 成人 动漫 | 深夜成人在线观看 | 久久伊人av | 亚洲综合一区二区 | 日韩色 | 成年人网站在线 | 爱草在线 | 欧美成人国产va精品日本一级 | 欧美黄大片 | 91免费国产在线观看 | 女人性做爰69片免费看 | 国产午夜精品久久久久久久久久 | www.三区 | av线上免费观看 | 影音先锋丝袜制服 | 美女试爆场恐怖电影在线观看 | 国产精品免费av |