Spark簡單介紹,Windows下安裝Scala+Hadoop+Spark運行環境,集成到IDEA中

来源:https://www.cnblogs.com/wang1221/archive/2022/11/03/16853260.html
-Advertisement-
Play Games

一、前言 近幾年大數據是異常的火爆,今天小編以java開發的身份來會會大數據,提高一下自己的層面! 大數據技術也是有很多: Hadoop Spark Flink 小編也只知道這些了,由於Hadoop,存在一定的缺陷(迴圈迭代式數據流處理:多 並行運行的數據可復用場景效率不行)。所以Spark出來了, ...


一、前言

近幾年大數據是異常的火爆,今天小編以java開發的身份來會會大數據,提高一下自己的層面!
大數據技術也是有很多:

  • Hadoop
  • Spark
  • Flink

小編也只知道這些了,由於Hadoop,存在一定的缺陷(迴圈迭代式數據流處理:多
並行運行的數據可復用場景效率不行)。所以Spark出來了,一匹黑馬,8個月的時間從加入 Apache,直接成為頂級項目!!

選擇Spark的主要原因是:

Spark和Hadoop的根本差異是多個作業之間的數據通信問題 : Spark多個作業之間數據
通信是基於記憶體,而 Hadoop 是基於磁碟。

二、Spark介紹

官網地址

Spark 是用於大規模數據處理的統一分析引擎。它提供了 Scala、Java、Python 和 R 中的高級 API,以及支持用於數據分析的通用計算圖的優化引擎。它還支持一組豐富的高級工具,包括用於 SQL 和 DataFrames 的 Spark SQL、用於 Pandas 工作負載的 Spark 上的 Pandas API、用於機器學習的 MLlib、用於圖形處理的 GraphX 和用於流處理的結構化流。

spark是使用Scala語言開發的,所以使用Scala更好!!

三、下載安裝

1. Scala下載

Scala官網

點擊安裝

在這裡插入圖片描述

下載自己需要的版本

在這裡插入圖片描述
點擊自己需要的版本:小編這裡下載的是2.12.11

點擊下載Windows二進位:
在這裡插入圖片描述
慢的話可以使用迅雷下載!

2. 安裝

安裝就是下一步下一步,記住安裝目錄不要有空格,不然會報錯的!!!

3. 測試安裝

win+R輸入cmd
輸入:

scala

必須要有JDK環境哈,這個學大數據基本都有哈!!

在這裡插入圖片描述

4. Hadoop下載

一個小技巧:
Hadoop和Spark版本需要一致,我們先去看看spark,他上面名字就帶著和他配套的Hadoop版本!!

spark3.0對照

在這裡插入圖片描述
得出我們下載Hadoop的版本為:3.2

Hadoop下載地址

在這裡插入圖片描述

5. 解壓配置環境

解壓到即可使用,為了使用方便,要想jdk一樣配置一下環境變數!

新建HADOOP_HOME
值為安裝目錄:D:\software\hadoop-3.2.1
Path里添加:%HADOOP_HOME%\bin

cmd輸入:hadoop:提示

系統找不到指定的路徑。
Error: JAVA_HOME is incorrectly set.

這裡先不用管,咱們只需要Hadoop的環境即可!

6. 下載Spark

Spark官網

點擊找到歷史版本:
在這裡插入圖片描述
點擊下載:
在這裡插入圖片描述

7. 解壓環境配置

新建:SPARK_HOMED:\spark\spark-3.3.1-bin-hadoop3
Path添加:%SPARK_HOME%\bin

8. 測試安裝

win+R輸入cmd
輸入:

spark-shell

在這裡插入圖片描述

四、集成Idea

1. 下載插件

scala

在這裡插入圖片描述

2. 給項目添加Global Libraries

打開配置:
在這裡插入圖片描述
新增SDK

在這裡插入圖片描述
下載你需要的版本:小編這裡是:2.12.11

在這裡插入圖片描述
右擊項目,添加上scala

在這裡插入圖片描述

3. 導入依賴

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.12</artifactId>
    <version>3.0.0</version>
</dependency>

4. 第一個程式

在這裡插入圖片描述

在這裡插入圖片描述

object Test {

  def main(args: Array[String]): Unit = {
    println("hello")
    var sparkConf = new SparkConf().setMaster("local").setAppName("WordCount");
    var sc = new SparkContext(sparkConf);
    sc.stop();
  }
}

5. 測試bug1

Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
22/10/31 16:20:35 INFO SparkContext: Running Spark version 3.0.0
22/10/31 16:20:35 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable D:\software\hadoop-3.2.1\bin\winutils.exe in the Hadoop binaries.

在這裡插入圖片描述

原因就是缺少:winutils

下載地址

在這裡插入圖片描述
把它發放Hadoop的bin目錄下:

在這裡插入圖片描述

6. 測試bug2

這個沒辦法復現,拔的網上的記錄:


Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
22/10/08 21:02:10 INFO SparkContext: Running Spark version 3.0.0
22/10/08 21:02:10 ERROR SparkContext: Error initializing SparkContext.
org.apache.spark.SparkException: A master URL must be set in your configuration
	at org.apache.spark.SparkContext.<init>(SparkContext.scala:380)
	at org.apache.spark.SparkContext.<init>(SparkContext.scala:120)
	at test.wyh.wordcount.TestWordCount$.main(TestWordCount.scala:10)
	at test.wyh.wordcount.TestWordCount.main(TestWordCount.scala)

就是這句:A master URL must be set in your configuration

解決方案:
就是沒有用到本地的地址

右擊項目:
在這裡插入圖片描述

沒有環境就添加上:
在這裡插入圖片描述
添加上:

-Dspark.master=local

在這裡插入圖片描述

7. 測試完成

沒有error,完美!!
在這裡插入圖片描述

五、總結

這樣就完成了,歷盡千辛萬苦,終於成功。第一次結束差點勸退,發現自己對這個東西還是不懂,後面再慢慢補Scala。先上手感受,然後再深度學習!!

如果對你有用,還請點贊關註下,支持一下一直是小編寫作的動力!!


可以看下一小編的微信公眾號,和網站文章首發看,歡迎關註,一起交流哈!!微信搜索:小王博客基地

點擊訪問!小編自己的網站,裡面也是有很多好的文章哦!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-web ...
  • 11 月 1 日,秦皇島銀行新一代分散式核心系統成功投產並穩定安全運行超過三個月,標志著秦皇島銀行數字化轉型應用和服務水平登上了一個新臺階。 這是秦皇島銀行有史以來規模最大、範圍最廣、難度最高的一次系統升級,同時也是河北省首家在傳統核心業務場景下使用國產資料庫的城商行。 近年來,隨著國際金融局勢和疫 ...
  • Clickhouse中最強大的表引擎當屬MergeTree(合併樹)引擎及該系列(MergeTree)中的其他引擎。MergeTree系列的引擎被設計用於插入極大量的數據到一張表當中。數據可以以數據片段的形式一個接著一個的快速寫入,數據片段在後臺按照一定的規則進行合併。相比在插入時不斷修改(重寫)已 ...
  • 怎麼分析和處理信息數據呢?不用擔心,現為大家帶來一款專業的全能數據分析工具Tableau Desktop,可以讓用戶將海量數據導入並記性彙總,並且支持多種數據類型,比如像是編程常用的鍵值對、哈希MAP、JSON類型數據等,因此用戶可以將很多常用資料庫文件直接導入Tableau Desktop,並快速 ...
  • 針對 .NET MAUI (微軟 .Net 6 跨多平臺應用 UI)框架的研究學習,使用VS2022 C# 和 XAML 創建本機移動和桌面應用,開發一套代碼可以發佈在 Android 、 iOS 、 macOS 和 Windows 上運行的應用。經過一個android APP+WebAPI的實踐研 ...
  • 導讀 BitSail 是位元組跳動開源數據集成引擎,支持多種異構數據源間的數據同步,並提供離線、實時、全量、增量場景下全域數據集成解決方案,目前支撐了位元組內部和火山引擎多個客戶的數據集成需求。經過位元組跳動各大業務線海量數據的考驗,在性能、穩定性上得到較好驗證。 10 月 26 日,位元組跳動宣佈 Bit ...
  • 使用管理員許可權打開cmd (搜索cmd, 右鍵點擊"使用管理員身份運行") 命令行輸入 net stop mysql; 運行後提示為 MySQL 服務正在停止. MySQL 服務已成功停止。 mysqld –skip-grant-tables實測在mysql8.0中已失效, 現在使用另一個指令: m ...
  • 大家好,我是獨孤風。 近期Datahub進行了一次大的版本更新,從0.9版本以後Datahub也正式發佈了列級別數據血緣的功能。 0.9.1版本又增加了,列的影響分析這個功能。 這樣Datahub對於列級別數據血緣的功能支撐就非常完善了。 目前Datahub支持列級別數據血緣的主要功能有。 1、建立 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...