Spark新手入門——1.Scala環境準備

来源:https://www.cnblogs.com/deep-learning-stacks/archive/2018/07/15/9314227.html
-Advertisement-
Play Games

主要包括以下三部分,本文為第一部分: 一. Scala環境準備 二. Hadoop集群(偽分佈模式)安裝 "查看" 三. Spark集群(standalone模式)安裝 "查看" 因Spark任務大多由Scala編寫,因此,首先需要準備Scala環境。 註:樓主實驗環境為mac os Scala環境 ...


主要包括以下三部分,本文為第一部分:
一. Scala環境準備
二. Hadoop集群(偽分佈模式)安裝 查看
三. Spark集群(standalone模式)安裝 查看

因Spark任務大多由Scala編寫,因此,首先需要準備Scala環境。
註:樓主實驗環境為mac os

Scala環境準備

  1. 下載JDK1.8並安裝、配置環境變數(JAVA_HOME),建議使用1.8,與時俱進;
  2. 下載scala-sdk並解壓到某個路徑(如:~/tools/scala-2.12.6),為方便使用還可以設置一下SCALA_HOME,在終端輸入~/tools/scala-2.12.6/bin/scala(未設置SCALA_HOME)或scala(前提設置了SCALA_HOME)可以驗證scala的版本或進行交互實驗(scala官網推薦的圖書《Programming in Scala, 3rd ed》中的實例均為在此模式下運行,故學習scala階段到這一步就夠了)
    圖1.1 scala sdk驗證

  3. 下載IntelliJ IDEA(Ultimate"版即為免費版本)並安裝,安裝後安裝Scala插件(plugin),如下圖所示;
    打開plugin菜單:
    圖1.2 打開plugin菜單

搜索並安裝scala插件
圖1.3 搜索並安裝scala插件

  1. 寫個小程式測試一下吧
    選擇“Create New Project”
    圖1.4 create new project

選擇項目類型為“Scala”
圖1.5 選擇project類型

預設沒有Scala SDK,通過以下方式添加:Create->Browse...
圖1.6 create scala sdk

找到SCALA_HOME
圖1.7 選擇scala sdk path

完成配置
圖1.8 完成配置

為方便開發,將項目轉換為maven項目以解決繁瑣的依賴包問題,項目名右鍵-->Add Framework Support...
圖1.9 轉換為maven project

選擇maven
圖1.10 選擇maven library

項目會自動引入pom.xml,變為scala maven project,併在src下創建source root(可以在package上右鍵更改)
圖1.11 scala項目轉換為maven項目後結構

source root(該項目中為main.java)上右鍵-->New-->Scala Class
圖1.12 創建測試類

選擇類型為Object,用以創建main函數
圖1.13 選擇類型為Object

編寫測試代碼
圖1.14 測試代碼

在代碼空白處或項目名處右鍵-->Run 'ScalaTest'測試代碼
圖1.15 運行

雖然引入了pom.xml,預設卻不會自動import依賴包,出現提示選擇“Auto-Import”
圖1.16 自動import依賴

測試結果
圖1.17 測試結果

之所以這一步這麼詳細是因為我發現創建項目的時候選擇哪種project類型會很糾結,也沒有官方標準,經過實驗,推崇先創建scala project再轉換為maven project;如果創建的時候選擇了maven project,通過“Add Framework Support...”再引入Scala SDK也是可以的,最終效果和圖中給出的差不多,但是目錄結構會有差異。

註1:SCALA_HOME、JAVA_HOME在mac下設置方式:
~/.bash_profile中添加如下指令:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
export SCALA_HOME=/Users/<你的名字>/tools/scala-2.12.6
export PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$PATH

參考文檔:官方文檔


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

-Advertisement-
Play Games
更多相關文章
  • 掛載鏡像CentOS-6.6-x86_64-bin-DVD1.iso ...
  • 修改hostname 免密碼登錄 ...
  • MySQL基本簡單操作 先進入 容器。 [root@promote ~] docker exec it mysql /bin/bash root@30d60b852cf5:/ mysql uroot p000000 mysql: [Warning] Using a password on the c ...
  • 寫在前面 本篇是赤果果的產品介紹文章,同時也是向使用資料庫的戰友們表達一下我們是怎樣一步一步打磨產品,又有什麼樣的遠景、動力讓我們一直走下去.... 八年資料庫之路的感悟 這篇文章最後所提到的資料庫管理產品,又經過兩年的不懈努力,一群帶有熱情的老技術打磨,現在3.0版本已經成功上線,並有將近500家 ...
  • MySQL mysqlbinlog解析出的SQL語句被註釋是怎麼回事 一網友反饋使用mysqlbinlog解析出的二進位日誌中的內容中,有些SQL語句有#註釋的情況,這個是怎麼回事呢?我們通過實驗來瞭解一下具體細節情況,如下所示,實驗環境為5.6.20-enterprise-commercial-a... ...
  • 1、給數據表添加一組數據: 2、給數據表添加多組數據: 3、對數據進行刪除和修改: 4、用select查詢單個或多個數據信息: 5、去除重覆值: 6、查詢的各種用法: between的用法: 查詢排序: limit的用法: 分組: 查詢總數: 起別名: select *from 表 where id ...
  • 返回 "ProxySQL系列文章:http://www.cnblogs.com/f ck need u/p/7586194.html"   ProxySQL支持查詢緩存的功能,可以將後端返回的結果集緩存在自己的記憶體中,在某查詢的緩存條目被清理(例如過期)之前,前端再發起同樣的查詢語句,將直 ...
  • 主要包括以下三部分,本文為第二部分: 一. Scala環境準備 "查看" 二. Hadoop集群(偽分佈模式)安裝 三. Spark集群(standalone模式)安裝 "查看" Hadoop集群(偽分佈模式)安裝 1. 依賴項:jdk(hadoop與java版本相容性參考 "鏈接" )、ssh; ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...