一、實驗目的
(1)掌握在 linux 虛擬機器中安裝 hadoop 和 spark 的方法;
(2)熟悉 hdfs 的基本使用方法;
(3)掌握使用 spark 訪問本地檔案和 hdfs 檔案的方法。
二、實驗平台
作業系統:ubuntu16.04;
spark 版本:2.1.0;
hadoop 版本:2.7.1。
三、實驗內容和要求
1.安裝 hadoop 和 spark
進入 linux 系統,參照本教程官網「實驗指南」欄目的「hadoop 的安裝和使用」,完
成 hadoop 偽分布式模式的安裝。完成 hadoop 的安裝以後,再安裝 spark(local 模式)。
2.hdfs 常用操作
使用 hadoop 使用者名稱登入進入 linux 系統,啟動 hadoop,參照相關 hadoop 書籍或網路
資料,或者也可以參考本教程官網的「實驗指南」欄目的「hdfs 操作常用 shell 命令」,廈門大學林子雨,賴永炫,陶繼平 編著《spark 程式設計基礎(scala 版)》 教材配套機房上機實驗指南
使用 hadoop 提供的 shell 命令完成如下操作:
(1) 啟動 hadoop,在 hdfs 中建立使用者目錄「/user/hadoop」;
(2) 在 linux 系統的本地檔案系統的「/home/hadoop」目錄下新建乙個文字檔案
test.txt,並在該檔案中隨便輸入一些內容,然後上傳到 hdfs 的「/user/hadoop」
目錄下;
(4) 將hdfs中「/user/hadoop」目錄下的test.txt檔案的內容輸出到終端中進行顯示;
(5) 在 hdfs 中的「/user/hadoop」目錄下,建立子目錄 input,把 hdfs 中
「/user/hadoop」目錄下的 test.txt 檔案,複製到「/user/hadoop/input」目錄下;
(6) 刪除hdfs中「/user/hadoop」目錄下的test.txt檔案,刪除hdfs中「/user/hadoop」
目錄下的 input 子目錄及其子目錄下的所有內容。
3. spark 讀取檔案系統的資料
(1)在 spark-shell 中讀取 linux 系統本地檔案「/home/hadoop/test.txt」,然後統計出文
件的行數;
(2)在 spark-shell 中讀取 hdfs 系統檔案「/user/hadoop/test.txt」(如果該檔案不存在,
請先建立),然後,統計出檔案的行數;
(3)編寫獨立應用程式,讀取 hdfs 系統檔案「/user/hadoop/test.txt」(如果該檔案不存在,
請先建立),然後,統計出檔案的行數;通過 sbt 工具將整個應用程式編譯打包成 jar 包,
並將生成的 jar 包通過 spark-submit 提交到 spark 中執行命令。
cd ~# 進入使用者主資料夾
),新增**如下:
import org.apache.spark.sparkcontext
import org.apache.spark.sparkcontext._
import org.apache.spark.sparkconf
def main(args: array[string])
}
),新增內容如下,宣告該獨立應用程式的資訊以及與 spark 的依賴關係:
5、使用 sbt 打包 scala 程式
(1)為保證 sbt 能正常執行,先執行如下命令檢查整個應用程式的檔案結構:
(2)檔案結構應如下圖所示:
(3)接著,我們就可以通過如下**將整個應用程式打包成 jar:
4)打包成功的話,會輸出如下圖內容:
4、通過 spark-submit 執行程式
(1)最後,我們就可以將生成的 jar 包通過 spark-submit 提交到 spark 中執行了,命令如下:(紅線部分就是上邊說的生成的jar包的位置)
(2)最終得到的結果如下:
Hadoop 和 Spark 的異同
談到大資料,相信大家對hadoop和apache spark這兩個名字並不陌生。但我們往往對它們的理解只是提留在字面上,並沒有對它們進行深入的思考,下面不妨跟我一塊看下它們究竟有什麼異同。首先,hadoop和apache spark兩者都是大資料框架,但是各自存在的目的不盡相同。hadoop實質上更...
hadoop和spark的異同
解決問題的層面不一樣 首先,hadoop和apache spark兩者都是大資料框架,但是各自存在的目的不盡相同。hadoop實質上更多是乙個分布式資料基礎設施 它將巨大的資料集分派到乙個由普通計算機組成的集群中的多個節點進行儲存,意味著您不需要購買和維護昂貴的伺服器硬體。同時,hadoop還會索引...
Hadoop和Spark的異同
談到大資料,相信大家對hadoop和apache spark這兩個名字並不陌生。但我們往往對它們的理解只是提留在字面上,並沒有對它們進行深入的思考,下面不妨跟我一塊看下它們究竟有什麼異同。解決問題的層面不一樣 首先,hadoop和apache spark兩者都是大資料框架,但是各自存在的目的不盡相同...