01_PC單機Spark開發環境搭建_JDK1.8+Spark2.3.1+Hadoop2.7.1
本文檔基於Windows搭建本地JAVA Spark開發環境。
1 JDK 1.8安裝
官網下載JDK。
註意JDK安裝目錄不可以包含空格,比如:C:\Java\jdk1.8.0_171,否則可能導致後續運行Spark報錯(提示找不到java.exe)。
2 Spark安裝(V2.3.1)
1、到spark官網網站 http://spark.apache.org/downloads.html下載spark;
註意點擊紅框部分進入選擇下載包,不要點擊截圖上步驟3後面鏈接。
2、參考截圖下載 spark-2.3.1-bin-hadoop2.7.tgz
3、下載本地進行解壓
比如解壓後路徑:D:\Tools\spark-2.3.1-bin-hadoop2.7
4、配置環境變量
1)SPARK_HOME
2)Path環境變量增加
%SPARK_HOME%\bin,%SPARK_HOME%\sbin
3 Hadoop安裝(V2.7.1)
1、到 https://archive.apache.org/dist/hadoop/common/hadoop-2.7.1下載Hadoop 2.7.1;
2、將下載的hadoop解壓縮在本地目錄;
比如:D:\Tools\hadoop-2.7.1
3、配置環境變量
1)HADOOP_HOME
2)Path環境變量增加
%HADOOP_HOME%\bin
4、下載 winutils.exe 並復制到 hadoop的bin目錄
https://github.com/steveloughran/winutils/blob/master/hadoop-2.7.1/bin/winutils.exe
備註:如果不下載winutils.exe會導致啟動spark-shell提示如下錯誤
4 啟動Spark
1、CMD切換到spark-2.3.1-bin-hadoop2.7\bin
2、運行spark-shell
如果可以看到如下界面,則代表啟動成功
可以訪問截圖中的網址查看Spark的管理界面。
5 啟動IDEA運行小程序
1、新建一個Maven工程
New Project -->Maven -> maven-archetype-quickstart
2、java源碼
1 package com.spark; 2 3 import org.apache.spark.sql.Dataset; 4 import org.apache.spark.sql.Row; 5 import org.apache.spark.sql.SparkSession; 6 7 public class App { 8 9 10 public static void main( String[] args ) 11 { 12 SparkSession spark= SparkSession.builder().appName("sparkTest").master("local[3]").getOrCreate(); 13 Dataset<Row> result=spark.read().json("people.json"); 14 System.out.println("Line count:" + result.count()); 15 result.show(); 16 result.printSchema(); 17 spark.stop(); 18 } 19 }
setMaster: "local[4]" to run locally with 4 cores,
3、POM.XML配置
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com.spark</groupId> 8 <artifactId>sparkTest</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 11 <properties> 12 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 13 <spark.version>2.3.1</spark.version> 14 <hadoop.version>2.7.1</hadoop.version> 15 </properties> 16 17 <dependencies> 18 <dependency> 19 <groupId>org.apache.spark</groupId> 20 <artifactId>spark-sql_2.11</artifactId> 21 <version>${spark.version}</version> 22 </dependency> 23 24 <dependency> 25 <groupId>org.apache.spark</groupId> 26 <artifactId>spark-core_2.11</artifactId> 27 <version>${spark.version}</version> 28 </dependency> 29 30 <dependency> 31 <groupId>org.apache.spark</groupId> 32 <artifactId>spark-hive_2.11</artifactId> 33 <version>${spark.version}</version> 34 </dependency> 35 <dependency> 36 <groupId>org.apache.spark</groupId> 37 <artifactId>spark-streaming-kafka-0-10_2.11</artifactId> 38 <version>${spark.version}</version> 39 </dependency> 40 41 <dependency> 42 <groupId>org.apache.spark</groupId> 43 <artifactId>spark-streaming_2.11</artifactId> 44 <version>${spark.version}</version> 45 </dependency> 46 47 <dependency> 48 <groupId>org.apache.hadoop</groupId> 49 <artifactId>hadoop-common</artifactId> 50 <version>${hadoop.version}</version> 51 </dependency> 52 53 <dependency> 54 <groupId>org.apache.spark</groupId> 55 <artifactId>spark-sql-kafka-0-10_2.11</artifactId> 56 <version>${spark.version}</version> 57 </dependency> 58 59 </dependencies> 60 </project>
4、新建一個 people.json 文件,並拷貝到工程目錄
文件內容如下
1 {"name":"Michael"} 2 {"name":"Andy", "age":30} 3 {"name":"Justin", "age":19}
5、(可選)優化IDEA控制臺打印,使得INFO級別日誌不打印
1) 拷貝spark-2.3.1-bin-hadoop2.7\conf\log4j.properties.template到當前工程src\main\resources\ log4j.properties.
2)調整日誌級別
log4j.rootCategory=WARN, console
6、啟動工程,查看是否可以運行看到結果
01_PC單機Spark開發環境搭建_JDK1.8+Spark2.3.1+Hadoop2.7.1