實驗 3 Spark 和 Hadoop 的安裝
2.HDFS 常用操作
(1) 啟動 Hadoop,在 HDFS 中建立使用者目錄“/user/hadoop”;
(2) 在 Linux 系統的本地檔案系統的“/home/hadoop”目錄下新建一個文字檔案 test.txt,並在該檔案中隨便輸入一些內容,然後上傳到 HDFS 的“/user/hadoop” 目錄下;
(3) 把 HDFS 中“/user/hadoop”目錄下的 test.txt 檔案,下載到 Linux 系統的本地文 件系統中的“/home/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 中執行命令。
程式碼檔案中輸入以下程式碼:
/* SimpleApp.scala */
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SimpleApp {
def main(args: Array[String]) {
val logFile = " hdfs://localhost:9000/user/hadoop/test.txt"
val conf = new SparkConf().setAppName("Simple Application")
val sc = new SparkContext(conf)
val logData = sc.textFile(logFile, 2)
val num = logData.count()
printf("The num of this file is %d", num)
}
}
打包程式:
生成的 JAR 包的位置為:
對於前面 sbt 打包得到的應用程式 JAR 包,可以通過 spark-submit 提交到 Spark 中運 行,
/opt/module/spark-3.1.2/bin/spark-submit --class "SimpleAppShiYan" /opt/module/sbt/mycode/target/scala-2.12/simple-project_2.12-1.0.jar