1. 程式人生 > >spark的運行模式之 ==> 本地運行模式

spark的運行模式之 ==> 本地運行模式

出了 2.7 配置 user 默認 pro 上傳 讀取 修改

spark目前有四種運行模式:本地運行、在yarn上運行、standalone、mesos。

所謂運行模式,就是指spark應用跑在什麽地方。mr程序可以在本地運行,也可以提交給yarn運行。這個概念是一樣的。

跟其他Hadoop生態圈的組件一樣,spark也需要JDK的環境,此外還需要SCALA環境。所以在安裝spark之前要先安裝好JDK和SCALA。

( 我的 jdk 版本是 1.8 scala 版本是 2.11.8 hadoop 版本是 2.7.3 spark 版本是 2.2.1 都是源生的apache版本)

1、本地模式:

只要下載編譯好的tar包,上傳到服務器,在指定目錄下解壓,編輯 spark-env.sh即可。

解壓後在spark的conf目錄下有一個spark-env.sh.template文件,這是一個模板文件,最好不要直接修改,自己復制一份。

cp spark-env.sh.template spark-env.sh

技術分享圖片

在配置文件中找到 launching programs locally 這一行。它表示如果是本地運行模式,需要配置哪些參數。

為了安全起見,又聲明了一下JAVA_HOME和SCALA_HOME。

spark和mr一樣,只是一個計算框架,本身不提供數據存儲功能,數據可以是存儲在本地的,也可以是存儲在HDFS上的。

一般來說,數據都是存儲在HDFS上,我們就需要建立spark和HDFS之間的連接,告訴spark HDFS在哪裏。

而HDFS的信息,是配置在core-site.xml 和 hdfs-site.xml 這兩個文件裏的,只要能找到這兩個文件,spark就可以知道HDFS的位置。所以我們只要告訴spark去哪裏找這兩個文件就行了。

到這裏,本地運行模式就配置好了。測試一下:

既然是要使用HDFS,就需要先啟動HDFS。

技術分享圖片

啟動好HDFS,到spark的安裝目錄下,找到bin目錄裏面的命令 spark-shell 。 執行這個命令

技術分享圖片

看到這個界面,spark本地模式就可以成功運行了。

可以看到提示符是 scala,說明這裏可以敲scala代碼。紅框框裏面的信息也比較重要。

敲一下spark官網的示例代碼:

技術分享圖片

發現報錯了,說文件不存在,給出的路徑是 hdfs://bd27-server.ibeifeng.com:8020/user/bigdata/README.md。 也就是說 spark是到這個目錄下面找輸入文件的(我們只給了一個相對路徑)。

[bigdata@bd27-server hadoop-2.7.3]$ bin/hdfs dfs -put /opt/moudles/spark-2.2.1-bin-hadoop2.7/README.md /user/bigdata/README.md

把這個文件上傳到HDFS上,放到它默認去找的那個目錄下面。

技術分享圖片

執行成功。

從這裏我們可以看到,spark默認是到 HDFS 的 /user/用戶名(我的用戶名是 bigdata )/ 下面去找輸入文件。

技術分享圖片

如果我們給它一個本地文件系統的路徑,它也可以讀取。但是我們要明確的給出 file:/// 這個schema。

為什麽它默認讀取HDFS呢? 就是因為我們給出了 HADOOP_CONF_DIR=/opt/moudles/hadoop-2.7.3/etc/hadoop 這個配置參數。相當於給出了 fs.defaultFS=hdfs://XXXXXXX

至於為什麽執行第一句話不報錯,執行第二句話會報錯,那就是另一個話題了。

spark的運行模式之 ==> 本地運行模式