【智能大數據分析 | 實驗二】Spark實驗:部署Spark集群

在這里插入圖片描述

【作者主頁】Francek Chen
【專欄介紹】???智能大數據分析??? 智能大數據分析是指利用先進的技術和算法對大規模數據進行深入分析和挖掘,以提取有價值的信息和洞察。它結合了大數據技術、人工智能(AI)、機器學習(ML)和數據挖掘等多種方法,旨在通過自動化的方式分析復雜數據集,發現潛在的價值和關聯性,實現數據的自動化處理和分析,從而支持決策和優化業務流程。與傳統的人工分析相比,智能大數據分析具有自動化、深度挖掘、實時性和可視化等特點。智能大數據分析廣泛應用于各個領域,包括金融服務、醫療健康、零售、市場營銷等,幫助企業做出更為精準的決策,提升競爭力。
【GitCode】專欄資源保存在我的GitCode倉庫:https://gitcode.com/Morse_Chen/Intelligent_bigdata_analysis。

文章目錄

    • 一、實驗目的
    • 二、實驗要求
    • 三、實驗原理
      • (一)Spark 簡介
      • (二)Spark 適用場景
    • 四、實驗環境
    • 五、實驗內容和步驟
      • (一)部署 HDFS
      • (二)配置 Spark 集群
      • (三)配置 HDFS
      • (四)提交 Spark 任務
    • 六、實驗結果
    • 七、實驗心得


一、實驗目的

能夠理解 Spark 存在的原因,了解 Spark 的生態圈,理解 Spark 體系架構并理解 Spark 計算模型。學會部署 Spark 集群并啟動 Spark 集群,能夠配置 Spark 集群使用 HDFS。

二、實驗要求

要求實驗結束時,每位學生均已構建出以 Spark 集群:master 上部署主服務 Master;slave1、2 上部署從服務 Worker;待集群搭建好后,還需在 master 上進行下述操作:提交并運行 Spark 示例代碼 WordCount,將 master 上某文件上傳至 HDFS 里剛才新建的目錄。

三、實驗原理

(一)Spark 簡介

Spark 是一個高速的通用型集群計算框架,其內部內嵌了一個用于執行 DAG(有向無環圖)的工作流引擎,能夠將 DAG 類型的 Spark- App 拆分成 Task 序列并在底層框架上運行。在程序接口層,Spark 為當前主流語言都提供了編程接口,如用戶可以使用 Scala、Java、Python、R 等高級語言直接編寫 Spark-App。此外,在核心層之上,Spark 還提供了諸如 SQL、Mllib、GraphX、Streaming 等專用組件,這些組件內置了大量專用算法,充分利用這些組件,能夠大大加快 Spark-App 開發進度。

一般稱 Spark Core 為 Spark,Spark Core 處于存儲層和高層組建層之間,定位為計算引擎,核心功能是并行化執行用戶提交的 DAG 型 Spark-App。目前,Spark 生態圈主要包括 Spark Core 和基于 Spark Core 的獨立組件(SQL、Streaming、Mllib 和 Graphx)。

(二)Spark 適用場景

(1)Spark 是基于內存的迭代計算框架,適用于需要多次操作特定數據集的應用場合。

(2)由于 RDD 的特性,Spark 不適用那種異步細粒度更新狀態的應用,例如 web 服務的存儲或者是增量的 web 爬蟲和索引。

(3)數據量不是特別大,但是要求實時統計分析需求。

四、實驗環境

  • 云創大數據實驗平臺:
    在這里插入圖片描述
  • Java 版本:jdk1.7.0_79
  • Hadoop 版本:hadoop-2.7.1
  • Spark 版本:spark-1.6.0

五、實驗內容和步驟

(一)部署 HDFS

1、配置各節點之間的免密登錄,具體步驟參考:【大數據技術基礎 | 實驗一】配置SSH免密登錄

2、因為下面實驗涉及 Spark 集群使用 HDFS,所以按照之前的實驗預先部署好 HDFS。具體部署 HDFS 的步驟參考:【大數據技術基礎 | 實驗三】HDFS實驗:部署HDFS

3、驗證HDFS啟動成功:分別在 master、slave1~2 三臺機器上執行如下命令,查看 HDFS 服務是否已啟動。

jps

若啟動成功,在master上會看到類似的如下信息:

在這里插入圖片描述

而在slave1、slave2上會看到類似的如下信息:

在這里插入圖片描述 在這里插入圖片描述

(二)配置 Spark 集群

1、在 master 機上操作:確定存在 spark。

ls /usr/cstor

在這里插入圖片描述

2、在 master 機上操作:進入/usr/cstor目錄中。進入配置文件目錄/usr/cstor/spark/conf, 先拷貝并修改slave.templaeslaves

cd /usr/cstor/spark/conf
cp slaves.template slaves

在這里插入圖片描述

然后用 vim 命令編輯器編輯slaves文件

vim slaves

在這里插入圖片描述

上述內容表示當前的 Spark 集群共有兩臺 slave 機,這兩臺機器的機器名稱分別是 slave1~2。

3、在spark-config.sh中加入JAVA_HOME

在這里插入圖片描述

vim /usr/cstor/spark/sbin/spark-config.sh

加入以下內容:export JAVA_HOME=/usr/local/servers/jdk1.7.0_79

在這里插入圖片描述

4、將配置好的 Spark 拷貝至 slave1~2。使用 for 循環語句完成多機拷貝。

cd /root/data/2
cat machines
for x in `cat /root/data/2/machines` ; do echo $x ; scp -r /usr/cstor/spark/ $x:/usr/cstor/; done;

在這里插入圖片描述

5、在 master 機上操作:啟動 Spark 集群。

/usr/cstor/spark/sbin/start-all.sh

在這里插入圖片描述

在 slave1~2 上查看進程:

在這里插入圖片描述 在這里插入圖片描述

(三)配置 HDFS

1、配置 Spark 集群使用 HDFS,首先關閉集群(在 master 上執行)。

/usr/cstor/spark/sbin/stop-all.sh

2、將 Spark 環境變量模板復制成環境變量文件。修改 Spark 環境變量配置文件spark-env.sh

cd /usr/cstor/spark/conf
cp spark-env.sh.template spark-env.sh

在這里插入圖片描述

sprak-env.sh配置文件中添加下列內容:export HADOOP_CONF_DIR=/usr/cstor/hadoop/etc/hadoop

vim spark-env.sh

在這里插入圖片描述

3、重新啟動 Spark。

/usr/cstor/spark/sbin/start-all.sh

(四)提交 Spark 任務

在 master 機上操作:使用 Shell 命令向 Spark 集群提交 Spark-App

1、上傳in.txt文件到 HDFS。

hadoop fs -mkdir -p /user/spark/in/
hadoop fs -put /root/data/13/in.txt /user/spark/in/

在這里插入圖片描述

2、提交 wordcount 示例代碼。進入/usr/cstor/spark目錄,執行如下命令:

bin/spark-submit --master spark://master:7077 \
> --class org.apache.spark.examples.JavaWordCount \
> lib/spark-examples-1.6.0-hadoop2.6.0.jar hdfs://master:8020/user/spark/in/in.txt

六、實驗結果

1、進程查看

在 master 和 slave1-2 上分別執行 jps 命令查看對應進程。master 中進程為 Master,slave 機進程為 Worker。

在這里插入圖片描述 在這里插入圖片描述 在這里插入圖片描述

2、驗證 WebUI

在本地瀏覽器中輸入 master 的 IP 和端口號 8080,即可看到 Spark 的 WebUI。此頁面包含了 Spark 集群主節點、從節點等各類統計信息。

在這里插入圖片描述

3、SparkWordcount 程序執行

輸入:in.txt

在這里插入圖片描述

輸出:

在這里插入圖片描述

WebUI 中 Application 的詳細信息:

在這里插入圖片描述

七、實驗心得

??首先,環境搭建是關鍵。在部署 Spark 集群之前,我花了不少時間配置 Hadoop 和 Spark 的環境,包括安裝 Java、Hadoop 和 Spark 等。通過參考官方文檔和社區資源,我逐步克服了各種依賴問題。值得注意的是,確保各個節點的時間同步非常重要,這可以避免因時間差異引發的一些錯誤。

??其次,集群管理與監控至關重要。在部署完成后,我學習了如何使用 Spark 的 Web UI 進行任務監控。這讓我對作業的執行過程有了更直觀的了解,比如任務的運行時間、資源使用情況等。此外,結合 Hadoop 的 YARN 資源管理器,可以更加有效地分配資源,提高集群的整體性能。

??在實驗中,我體驗到了分布式計算的優勢。通過將數據分片分配到不同的工作節點上,Spark 能夠并行處理大量數據,大幅提高了計算效率。我實現了一些基本的數據處理任務,比如數據過濾、聚合等,觀察到處理速度相較于單機模式有了顯著提升。

??總結來說,這次 Spark 集群部署實驗讓我對大數據處理技術有了更深入的理解。從環境搭建到任務執行,再到性能優化,每一步都讓我感受到分布式計算的魅力。未來,我期待將這些知識應用于實際項目中,進一步探索大數據的無限可能。

:以上文中的數據文件及相關資源下載地址:
鏈接:https://pan.quark.cn/s/43cf46ec0d4d
提取碼:SwUU

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/90481.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/90481.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/90481.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用pymongo進行MongoDB的回收

在 PyMongo 中使用 compact 命令進行 MongoDB 碎片回收的完整操作指南如下: 一、核心執行方法 from pymongo import MongoClient import time# 1. 連接到 MongoDB 實例 client MongoClient("mongodb://username:passwordhost:27017/dbname?authSourceadmin&q…

Azure DevOps 使用服務主體配置自托管代理 (Self-hosted Agent) 配置指南

Azure DevOps 使用服務主體配置自托管代理配置指南1. 概述2. 在 Azure AD 中創建服務主體 (SP)3. 授予 Azure DevOps 權限3.1. 組織層級:用戶身份與訪問級別3.2. 組織層級:Agent pools管理員3.3. 在 Linux VM 上安裝和配置代理3.4. 啟動并設置為系統服務…

Java學習第六十四部分——Nginx

目錄 一、前言提要 二、核心特點 三、核心作用 四、架構優勢 五、應用場景 六、常用命令 七、性能對比——Nginx vs Apache 八、典型用戶 九、配置示例 十、Java應用需配合的配置 十一、性能優化策略 十二、常見問題排查 十三、文件結構配置 十四、總結歸納概述 …

幾個常用的Oxygen編輯器插件

Oxygen XML Editor是羅馬尼亞的SyncroSoft公司開發的結構化文檔編輯和發布軟件。 除了Oxygen編輯器帶的功能,它還提供了豐富的插件來提供額外的功能來輔助資料開發人員更高效率、更低成本地開發結構化資料。 本文介紹幾個比較常用和有用的插件。 - 1 - Git Clie…

基于springboot的軟件缺陷管理跟蹤平臺

博主介紹:java高級開發,從事互聯網行業六年,熟悉各種主流語言,精通java、python、php、爬蟲、web開發,已經做了六年的畢業設計程序開發,開發過上千套畢業設計程序,沒有什么華麗的語言&#xff0…

【LINUX】Centos 9使用nmcli更改IP

1. 查看連接名稱 nmcli connection show輸出類似: NAME UUID TYPE DEVICE Wired connection 1 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ethernet enp1s02. 修改 IP 地址(以靜態 IP 為例&#xf…

ConvMixer模型:純卷積為何能夠媲美Transformer架構?深入淺出原理與Pytorch代碼逐行講解實現

ConvMixer 是一個簡潔的視覺模型,僅使用標準的卷積層,達到與基于自注意力機制的視覺 Transformer(ViT)相似的性能,由此證明純卷積架構依然很強大。核心原理:極簡的卷積設計:它摒棄了復雜的自注意…

教程:如何通過代理服務在國內高效使用 Claude API 并集成到 VSCode

對于許多開發者來說,直接訪問 Anthropic 的 Claude API 存在網絡障礙。本文將介紹一個第三方代理服務,幫助你穩定、高效地利用 Claude 的強大能力,并將其無縫集成到你的開發工作流中。 一、服務介紹 我們使用的是 open.xiaojingai.com 這個…

從零開始:Vue 3 + TypeScript 項目創建全記錄

一次完整的現代前端項目搭建經歷,踩坑與收獲并存 ?? 前言 最近創建了一個新的 Vue 3 項目,整個過程中遇到了不少有趣的選擇和決策點。作為一個技術復盤,我想把這次經歷分享出來,希望能幫助到其他開發者,特別是那些剛接觸 Vue 3 生態的朋友們。 ??? 項目初始化:選擇…

[spring6: @EnableWebSocket]-源碼解析

注解 EnableWebSocket Retention(RetentionPolicy.RUNTIME) Target(ElementType.TYPE) Documented Import(DelegatingWebSocketConfiguration.class) public interface EnableWebSocket {}DelegatingWebSocketConfiguration Configuration(proxyBeanMethods false) public …

Nacos 封裝與 Docker 部署實踐

Nacos 封裝與 Docker 部署指南 0 準備工作 核心概念? 命名空間:用于隔離不同環境(如 dev、test、prod)或業務線,默認命名空間為public。? 數據 ID:配置集的唯一標識,命名規則推薦為{服務名}-{profile}.{擴…

Vue2——4

組件的樣式沖突 scoped默認情況:寫在組件中的樣式會 全局生效 → 因此很容易造成多個組件之間的樣式沖突問題。1. 全局樣式: 默認組件中的樣式會作用到全局2. 局部樣式: 可以給組件加上 scoped 屬性, 可以讓樣式只作用于當前組件原理:當前組件內標簽都被…

30天打好數模基礎-邏輯回歸講解

案例代碼實現一、代碼說明本案例針對信用卡欺詐檢測二分類問題,完整實現邏輯回歸的數據生成→預處理→模型訓練→評估→閾值調整→決策邊界可視化流程。數據生成:模擬1000條交易數據,其中欺詐樣本占20%(類不平衡)&…

CDH yarn 重啟后RM兩個備

yarn rmadmin -transitionToActive --forcemanual rm1 cd /opt/cloudera/parcels/CDH/lib/zookeeper/bin/ ./zkCli.sh -server IT-CDH-Node01:2181 查看是否存在殘留的ActiveBreadCrumb節點 ls /yarn-leader-election/yarnRM #若輸出只有[ActiveBreadCrumb](正常應…

HTML5音頻技術及Web Audio API深入解析

本文還有配套的精品資源&#xff0c;點擊獲取 簡介&#xff1a;音頻處理在IT行業中的多媒體、游戲開發、在線教育和音樂制作等應用領域中至關重要。本文詳細探討了HTML5中的 <audio> 標簽和Web Audio API等技術&#xff0c;涉及音頻的嵌入、播放、控制以及優化。特別…

每日面試題13:垃圾回收器什么時候STW?

STW是什么&#xff1f;——深入理解JVM垃圾回收中的"Stop-The-World"在Java程序運行過程中&#xff0c;JVM會通過垃圾回收&#xff08;GC&#xff09;自動管理內存&#xff0c;釋放不再使用的對象以騰出空間。但你是否遇到過程序突然卡頓的情況&#xff1f;這可能與G…

【系統全面】常用SQL語句大全

一、基本查詢語句 查詢所有數據&#xff1a; SELECT * FROM 表名;查詢特定列&#xff1a; SELECT 列名1, 列名2 FROM 表名;條件查詢&#xff1a; SELECT * FROM 表名 WHERE 條件;模糊查詢&#xff1a; SELECT * FROM 表名 WHERE 列名 LIKE 模式%;排序查詢&#xff1a; SELECT *…

Spring之SSM整合流程詳解(Spring+SpringMVC+MyBatis)

Spring之SSM整合流程詳解-SpringSpringMVCMyBatis一、SSM整合的核心思路二、環境準備與依賴配置2.1 開發環境2.2 Maven依賴&#xff08;pom.xml&#xff09;三、整合配置文件&#xff08;核心步驟&#xff09;3.1 數據庫配置&#xff08;db.properties&#xff09;3.2 Spring核…

C++STL系列之set和map系列

前言 set和map都是關聯式容器&#xff0c;stl中樹形結構的有四種&#xff0c;set&#xff0c;map&#xff0c;multiset,multimap.本次主要是講他們的模擬實現和用法。 一、set、map、multiset、multimap set set的中文意思是集合&#xff0c;集合就說明不允許重復的元素 1……

Linux 磁盤掛載,查看uuid

lsblk -o NAME,FSTYPE,LABEL,UUID,MOUNTPOINT,SIZEsudo ntfsfix /dev/nvme1n1p1sudo mount -o remount,rw /dev/nvme1n1p1 /media/yake/Datasudo ntfsfix /dev/sda2sudo mount -o remount,rw /dev/sda2 /media/yake/MyData