1. 程式人生 > >01_PC單機Spark開發環境搭建_JDK1.8+Spark2.3.1+Hadoop2.7.1

01_PC單機Spark開發環境搭建_JDK1.8+Spark2.3.1+Hadoop2.7.1

tor 環境 eve exe ring row test source 分享圖片

本文檔基於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