Docker 安裝 請參考下列網址
Ubuntu · 《Docker -- 從入門到實踐》正體中文版
Edit descriptionphilipzheng.gitbooks.io
在數據分析和機器學習的世界中,Apache Spark已成為不可或缺的工具,其強大的分散式處理能力使其成為處理大數據的首選框架。然而,配置一個Spark環境往往是一個複雜且耗時的任務,尤其是對於初學者而言。此時,Docker應運而生,提供了一個簡單、快捷的解決方案。
Docker是一種容器化技術,允許用戶將應用及其依賴項打包成一個隔離的容器中。這種隔離不僅保證了運行環境的一致性,還大大簡化了部署和管理的過程。相較於傳統的虛擬機,Docker容器更輕量級,啟動更迅速,且更容易擴展和遷移。
選擇Docker來部署PySpark環境的理由不僅僅是因為它的便利性。它還能保證不同開發者和數據科學家之間環境的一致性,從而消除了“在我的機器上可以運行”的問題。
以往要建立一個Spark測試或是練習環境 ,都是開一個VM ,然後按照google來的教學網頁來安裝 ,不過軟體版本更新快 ,加上每個作者安裝的步驟不盡相同 ,很容易卡關 ,有了Docker後就方便許多 ,相較VM不占資源
Docker是一種開源容器化平台,它使得開發者可以將應用與其運行環境一同打包,這種打包稱為容器。容器是完全隔離的環境,擁有自己的文件系統,確保了運行一致性和安全性。
相比於虛擬機,Docker容器不需要完整的操作系統,因此它們啟動更快,占用的系統資源更少。此外,Docker容器的輕量化特性也使得它們更易於分發和擴展,這對於需要快速迭代和部署的現代軟體開發周期是一大福音。
安裝Docker是一個簡單的過程,可以通過各種操作系統的包管理工具進行安裝。對於Ubuntu系統,Docker提供了詳細的安裝指南,您可以在Docker官方文檔中找到相應的指令和步驟。
Docker Hub
Edit descriptionhub.docker.com
PySpark是Apache Spark的Python API,它結合了Python的簡潔性和Spark的高性能,使得大數據分析和處理變得輕而易舉。要運行PySpark,您需要配置包含Python、Scala、R等語言的環境,以及安裝Spark本身。
在過去,構建這樣一個環境往往意味著需要在虛擬機上進行繁瑣的手動配置,這不僅耗時而且容易因為軟件版本不匹配等問題而失敗。但現在,有了Docker,我們可以使用像是jupyter/all-spark-notebook
這樣的Docker映像,這個映像已經預先配置了包括PySpark在內的所有必要組件。
此外,這個Docker映像還包含了Apache Mesos。Apache Mesos是一個開源集群管理框架,它抽象化了CPU、記憶體、儲存和其他計算資源。這使得開發容錯和高可用性的分布式系統變得更為簡單和高效。
在接下來的部分,我們將探討如何使用Docker映像來快速啟動一個完整的PySpark環境,並進行一些基本的操作來驗證環境的配置。
當你的系統已安裝好Docker後,搭建PySpark環境就變得異常簡單。以下是如何操作的步驟:
首先,我們需要從Docker Hub下載jupyter/all-spark-notebook
映像。這個映像不僅包含了Jupyter Notebook和PySpark,還包括了Scala、R語言支持以及Apache Mesos。你可以通過下面的命令來下載這個映像:
docker pull jupyter/all-spark-notebook
這個命令會從Docker Hub拉取最新的映像到你的機器上。
一旦映像下載完成,你就可以使用以下命令來啟動一個容器:
docker run -p 8888:8888 jupyter/all-spark-notebook
這個命令會啟動一個新的容器,將容器的8888端口映射到你的主機的8888端口,這樣你就可以通過瀏覽器來訪問Jupyter Notebook了。
當容器啟動後,你會在終端看到一個URL,包含一個token。將這個URL複製到瀏覽器中,你將能夠看到Jupyter Notebook的界面。這時,你就可以開始使用Spark進行數據分析了。
在Jupyter Notebook中,你可以創建一個新的筆記本來測試PySpark環境。以下是一個基本的例子,用於驗證SparkContext的配置並打印出Spark版本:
from pyspark import SparkConf
from pyspark.context import SparkContext
# 建立SparkContext
sc = SparkContext.getOrCreate(SparkConf().setAppName("MyApp"))
# 驗證SparkContext
print(sc)
# 打印Spark版本
print(sc.version)
# 停止SparkContext
sc.stop()
當你執行上述代碼時,它應該會顯示出SparkContext的配置資訊以及當前的Spark版本。
在這個jupyter/all-spark-notebook
映像中,還內嵌了Apache Mesos。Mesos是一種集群管理技術,能夠將資源從物理或虛擬機器中抽象化出來。這意味著你可以更加輕鬆地在多個機器上分布和管理你的Spark任務。儘管對於初學者來說,Mesos不是必須的,但了解它如何與Spark協同工作將有助於你在未來構建更加複雜的分布式系統。
現在你已經有了一個運行中的PySpark環境,是時候開始實踐了。你可以嘗試執行一些基本的Spark操作,例如讀取數據、執行轉換操作和行動操作。這些操作將幫助你理解Spark的核心概念,並為進一步的學習打下基礎。
Juptyer 釋出的jupyter/all-spark-notebook
除了基本的Juptyer note外
內容物還有Pytohn,Scala,R,Spark
還包括Apache Mesos
Apache Mesos將CPU,內存,存儲和其他計算資源從機器(物理或虛擬)中抽像出來,使容錯和彈性分佈式系統能夠輕鬆構建並有效運行。
Docker 安裝好後
簡單啟動
docker run -p 8888:8888 jupyter/
all-spark-notebook
注意:此映像檔的python版本為3.10
輸出畫面會跑出這個網址
貼上網址後就會出現Jupyter Notebook
試試看是不是spark
from pyspark import SparkConf
from pyspark import SparkContext as sc
# Verify SparkContext
print(sc)
# Print Spark version
print(sc.version)
Overview - Spark 2.4.3 Documentation
Apache Spark 2.4.3 documentation homepagespark.apache.org
手動練習Spark~!
使用Docker來搭建PySpark環境為數據科學家和開發者提供了一個快速、一致且輕鬆的方法來進行大數據分析。通過幾個簡單的命令,你就能夠擁有一個功能強大的分析環境,並且可以直接在瀏覽器中進行操作。無論你是Spark的新手還是有經驗的專業人士,Docker都為你提供了一個無縫的開發體驗,讓你可以專注於數據的洞察,而不是環境的配置。
作者:黃翊鈜 Roy Hwang
經歷:ML engineer , AI engineer