Spark入門單機版安裝和操作本地和HDFS檔案
一、Spark單機版安裝
Spark部署模式主要是四種:Local模式(單機模式,是本文講的方式,僅供熟悉Spark和scala入門用)、Standalone模式(使用Spark自帶的簡單叢集管理器,計算資料不是特別龐大)、YARN模式(使用YARN作為叢集管理器,配合hadoop叢集使用)和Mesos模式(使用Mesos作為叢集管理器,配合docker)。
1.1、Spark的基礎環境
Spark和Hadoop可以部署在一起,相互協作,由Hadoop、Hbase等元件負責資料的儲存和管理,由Spark負責資料的計算。Spark和Hadoop都可以安裝在windows和linux系統的計算機上,但還是推薦Linux中安裝和使用。(由於Hadoop單機版教程很多,就不在這贅述)。
Spark最新版2.4執行在Java 8 +,Python 2.7 + / 3.4 +和R 3.1+上。對於Scala API,Spark 2.4.0使用Scala 2.11。您需要使用相容的Scala版本(2.11.x)。
請注意,自Spark 2.2.0起,對2.6.5之前的Java 7,Python 2.6和舊Hadoop版本的支援已被刪除。自2.3.0起,對Scala 2.10的支援被刪除。
我的環境:
Linux:centeros6.5
JDK:1.8.45
Hadoop:hadoop-2.6.0-cdh5.12.2
Spark:spark-2.4.0-bin-hadoop2.6(apache)
下面簡單說一下spark版本,spark和hadoop一樣有apache版(地址:http://spark.apache.org/downloads.html )和cdh這兩個常用版本(其餘版本就不再贅述了),但cdh版本現在適配都是Spark1.6版本(地址:http://archive.cloudera.com/cdh5/cdh/5/ ),Spark2.0以上版本支援cdh版本hadoop有限(地址:http://archive.cloudera.com/spark2/ ),沒有完全適配我的cdh版本,就選擇了apache版本。在這裡向大家推薦一個大資料交流圈:894951460。
由於我安裝hadoop版本是hadoop-2.6.0-cdh5.12.2,直接下載了apache版Spark,如上圖,選擇適配hadoop2.6通版就可以了。
1.2、Spark的安裝
[root@hadoop001 home]# tar -zxvf /home/spark-2.4.0-bin-hadoop2.6.tgz -C /usr/local [root@hadoop001 home]# cd /usr/local/spark-2.4.0-bin-hadoop2.6/conf/ [root@hadoop001 conf]# cp spark-env.sh.template spark-env.sh
修改配置檔案 vim /usr/local/spark-2.4.0-bin-hadoop2.6/conf/spark-env.sh
新增 export SPARK_DIST_CLASSPATH=$(/home/hadoop/hadoop-2.6.0-cdh5.12.2/bin/hadoop classpath)
上面路徑為安裝的hadoop路徑。
測試是否安裝成功:
[root@hadoop001 spark]# cd/usr/local/spark-2.4.0-bin-hadoop2.6/ [root@hadoop001 spark]# bin/run-example SparkPi 2>&1 | grep "Pi is roughly" Pi is roughly 3.1383556917784587
說明已經安裝成功了。
二、Spark啟動和讀取檔案
[root@hadoop001 spark]# cd/usr/local/spark-2.4.0-bin-hadoop2.6/ [root@hadoop001 spark]# ./bin/spark-shell 2019-01-18 02:28:46 WARNNativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). Spark context Web UI available at http://hadoop001:4040 Spark context available as 'sc' (master = local[*], app id = local-1547749742799). Spark session available as 'spark'. Welcome to ______ / __/_____ _____/ /__ _\ \/ _ \/ _ `/ __/'_/ /___/ .__/\_,_/_/ /_/\_\version 2.4.0 /_/ Using Scala version 2.11.12 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_131) Type in expressions to have them evaluated. Type :help for more information. scala>
進入這個頁面證明啟動成功了。
下面讀取一個本地檔案,並統計檔案行數:
scala> val testFile=sc.textFile("file:///home/input/testfile") testFile: org.apache.spark.rdd.RDD[String] = file:///home/input/testfile MapPartitionsRDD[1] at textFile at <console>:24 scala> testFile.count() res0: Long = 3
下面讀取一個HDFS檔案,並統計檔案行數:
scala> val testFile=sc.textFile("hdfs://hadoop001:8020/test/testfile") testFile: org.apache.spark.rdd.RDD[String] = hdfs://hadoop001:8020/test/testfile MapPartitionsRDD[3] at textFile at <console>:24 scala> testFile.count() res1: Long = 3
結語
感謝您的觀看,如有不足之處,歡迎批評指正。
獲取資料
本次給大家推薦一個免費的學習群,裡面概括資料倉庫/原始碼解析/Python/Hadoop/Flink/Spark/Storm/Hive以及面試資源等。
對大資料開發技術感興趣的同學,歡迎加入Q群: 894951460 ,不管你是小白還是大牛我都歡迎,還有大牛整理的一套高效率學習路線和教程與您免費分享,同時每天更新視訊資料。
最後,祝大家早日學有所成,拿到滿意offer,快速升職加薪,走上人生巔峰。