天天看點

寒假學習7-linux中spark的應用

HDFS 常用操作

(1) 啟動 Hadoop,在 HDFS 中建立使用者目錄“/user/hadoop”;

寒假學習7-linux中spark的應用
寒假學習7-linux中spark的應用

該指令中表示在HDFS中建立一個“/user/hadoop”目錄,“–mkdir”是建立目錄的操作,“-p”表示如果是多級目錄,則父目錄和子目錄一起建立,這裡“/user/hadoop”就是一個多級目錄,是以必須使用參數“-p”,否則會出錯。

(2) 在 Linux 系統的本地檔案系統的“/home/hadoop”目錄下建立一個文本檔案 test.txt,并在該檔案中随便輸入一些内容,然後上傳到 HDFS 的“/user/hadoop” 目錄下;

寒假學習7-linux中spark的應用
寒假學習7-linux中spark的應用

(3) 把 HDFS 中“/user/hadoop”目錄下的 test.txt 檔案,下載下傳到 Linux 系統的本地檔案系統中的“/home/hadoop/下載下傳”目錄下;

寒假學習7-linux中spark的應用

(4) 将HDFS中“/user/hadoop”目錄下的test.txt檔案的内容輸出到終端中進行顯示;

寒假學習7-linux中spark的應用

(5) 在 HDFS 中的“/user/hadoop”目錄下,建立子目錄 input,把 HDFS 中 “/user/hadoop”目錄下的 test.txt 檔案,複制到“/user/hadoop/input”目錄下;

寒假學習7-linux中spark的應用
寒假學習7-linux中spark的應用

(6) 删除HDFS中“/user/hadoop”目錄下的test.txt檔案,删除HDFS中“/user/hadoop” 目錄下的 input 子目錄及其子目錄下的所有内容。

寒假學習7-linux中spark的應用
寒假學習7-linux中spark的應用

 Spark 讀取檔案系統的資料

1.首先進入spark-shell指令

寒假學習7-linux中spark的應用

2. 在 spark-shell 中讀取 Linux 系統本地檔案“/home/hadoop/test.txt”,然後統計出檔案的行數;

寒假學習7-linux中spark的應用

注意:加載HDFS檔案和本地檔案都是使用textFile,差別是添加字首(hdfs://和file://)進行辨別。

textFile.count()                         #統計結果顯示 1 行

3. 在 spark-shell 中讀取 HDFS 系統檔案“/user/hadoop/test.txt”(如果該檔案不存在,

請先建立),然後,統計出檔案的行數;

寒假學習7-linux中spark的應用

4. 編寫獨立應用程式,讀取 HDFS 系統檔案“/user/hadoop/test.txt”(如果該檔案不存在, 請先建立),然後,統計出檔案的行數;通過 sbt 工具将整個應用程式編譯打包成 JAR 包, 并将生成的 JAR 包通過 spark-submit 送出到 Spark 中運作指令。

首先輸入 :quit  指令退出spark-shell模式:

寒假學習7-linux中spark的應用

在終端中執行如下指令建立一個檔案夾 sparkapp3 作為應用程式根目錄:

寒假學習7-linux中spark的應用
寒假學習7-linux中spark的應用

在sparkapp3/src/main/scala下建立一個名為SimpleApp.scala的檔案

(vim sparkapp3/src/main/scala/SimpleApp.scala)

寒假學習7-linux中spark的應用

該程式依賴Spark API,是以我們需要通過sbt進行編譯打包。sparkapp3中建立檔案simple.sbt(vim ./sparkapp3/simple.sbt),添加内容如下,聲明該獨立應用程式的資訊以及與 Spark 的依賴關系

寒假學習7-linux中spark的應用

注意:檔案 simple.sbt 需要指明 Spark 和 Scala 的版本,如下圖所示

寒假學習7-linux中spark的應用

為保證 sbt 能正常運作,先執行如下指令檢查整個應用程式的檔案結構

寒假學習7-linux中spark的應用

接着,我們就可以通過代碼将整個應用程式打包成 JAR,使用sbt之前確定安裝了sbt

安裝sbt

https://www.scala-sbt.org/download.html下載下傳sbt-1.3.4.tgz安裝包

解壓縮,改配置等一系列請自行百度

安裝之後打包

寒假學習7-linux中spark的應用

代碼需要規範書寫,空格之類的不然會報錯

寒假學習7-linux中spark的應用

生成的 jar 包的位置為 /sparkapp3/target/scala-2.12/simple-project_2.12-1.0.jar

寒假學習7-linux中spark的應用

通過 spark-submit 運作程式

結果

寒假學習7-linux中spark的應用