大家好,我是一條~
5小時推開Spark的大門,第二小時,帶大家搭建開發環境,
主要分兩步,
- Spark的安裝
- Scala環境的搭建
話不多說,動起來!
Spark的安裝
Spark是基于Scala語言撰寫的,需要運行在JVM上,運行環境Java7以上,本文使用Java8,Centos7,
用Python也是可以的,但本教程不詳細講,
1.下載Spark
我使用的是騰訊云的服務器,沒有的同學用虛擬機也是可以的,Win和Mac如何安裝虛擬機不再贅述,CSDN有很多教程,也比較簡單,
記得要配置好Java的環境變數哦!
首先使用wget下載安裝包(也可以本地下載之后上傳)

cd /data/opt/spark
wget --no-check-certificate https://downloads.apache.org/spark/spark-3.2.0/spark-3.2.0-bin-hadoop3.2.tgz
下載完成后解壓
可以改個短一些的名字,版本號最好保留

tar -zxf spark-3.2.0-bin-hadoop3.2.gz
2.Spark目錄簡介
可以自己cd進去看一看

- bin:主要存放一些可執行檔案,
- streaming、python、R、jars:主要存放組件源代碼,
- examples: 存放一些可運行的單機Spark Job案例,
- conf:存放組態檔,
- data:存放資料檔案,
- sbin:存放sh腳本,
3.啟動Spark
進入sbin目錄,執行./start-master.sh檔案,
根據輸出的內容,找到日志,

查看日志

訪問網頁端,如果是服務器記得開放對應埠,

ok,啟動成功!
3.Spark Shell
Spark-Shell是一種學習API的簡單方式,能夠互動式的分析資料,能夠把分布在集群上的資料加載到記憶體節點中,使分布式處理可以秒級完成,
快速實時的查詢、計算、分析一般都在Shell中完成,
所以要學習Spark程式開發,建議先學習Spark-Shell互動式學習,加深對Spark程式開發的理解,
Spark提供了Python Shell和Scala Shell兩種,本套課程使用Scala,
進去bin目錄,執行spark-shell
cd bin
./spark-shell

ok,為了很好體會Spark-Shell,實驗一個例子:讀取一個檔案,并計算行數
首先創建一個測驗檔案,linux的基本操作哈

hello scala!
hello spark!
hello world!
回到Shell
先讀取檔案,再計算行數
var lines=sc.textFile("../../file/test")
// 總行數
lines.count()
// 第一行
lines.first()
輸出如下:

到此,Spark安裝完成,同學們可能發現一個問題,這每次寫代碼也太麻煩了,就不能像Java代碼一樣嗎?
當然是可以的,下面就教大家怎么給IDEA配置Scala插件,
IDEA集成Scala插件
IDEA相信大家都用過,不再贅述安裝破解的程序,
1.安裝插件
在settings里面按圖片示例安裝Scala插件,會比較慢,安裝成功后需要重啟IDEA,

2.創建Maven專案
如圖,新建一個Maven專案,起個名字,叫spark-wordcount
匯入依賴
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.2.0</version>
</dependency>
</dependencies>
我們寫完程式肯定是要放到服務器運行的,就像Java一樣,所以還要配置打包引數,
<build>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.2</version>
<executions>
<execution>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
reload之后如果沒問題,我們的專案就創建好了,
下面新建一個類WordCount

注意是Scala Class,然后選擇Object,
再寫個main方法,作為程式的入口,和Java有很多相似的地方,
列印測驗一下
object WordCount {
def main(args: Array[String]): Unit = {
print("hello world!")
}
}
輸出結果

ok,開發環境已經搭建完畢,
最后
本日打卡內容到此結束,偏實戰多一些,同學們一定要親自操作,下一節課帶大家做一個大資料入門的經典案例——WordCount,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/421433.html
標籤:其他
