摸魚大數據——Spark基礎——Spark環境安裝——PySpark搭建

三、PySpark環境安裝


?

PySpark: 是Python的庫, 由Spark官方提供. 專供Python語言使用. 類似Pandas一樣,是一個庫

Spark: 是一個獨立的框架, 包含PySpark的全部功能, 除此之外, Spark框架還包含了對R語言\ Java語言\ Scala語言的支持. 功能更全. ?可以認為是通用Spark。

功能

PySpark

Spark

底層語言

Scala(JVM)

Scala(JVM)

上層語言支持

Python

Python\Java\Scala\R

集群化\分布式運行

支持

支持

定位

Python庫 (客戶端)

標準框架 (客戶端和服務端)

是否可以Daemon運行

No

Yes

使用場景

生產環境集群化運行

生產環境集群化運行

若安裝PySpark需要首先具備Python環境,這里使用Anaconda環境,安裝過程如下:

?使用spark-shell方式可以進入spark的客戶端,但是這個客戶端編碼是需要scala代碼的,我們并不會。我們希望可以使用python代碼操作spark。所以可以使用pyspark的客戶端,但是一執行pyspark,就報出如下的錯誤:

原因: PySpark運行需要使用Python3.x的環境
解決辦法: Anaconda安裝Python3的環境。

通過Anaconda安裝Python3

Anaconda(水蟒): 是一個科學計算軟件發行版,集成了大量常用擴展包的環境,包含了 conda、Python 等 180 多個科學計算包及其依賴項,并且支持所有操作系統平臺。
anaconda是一個大集成者, 包含有python的環境. 同時還包含各種用于數據分析python庫, 一旦使用anaconda可以在一定程度上避免安裝各種Python的庫

anaconda提供一種虛擬化的測試, 可以基于anaconda虛擬出多個python的環境, 而且各個環境都是相對獨立的 我們稱為沙箱環境
為什么需要使用虛擬環境: 是因為python各個版本都是互相不兼容, 比如說python2 和python3 不兼容 甚至大家都是python3, 但是python3.8 無法兼容python3.7

1.下載Anaconda環境包

安裝版本:https://repo.anaconda.com/archive/

Python3.8.8版本:Anaconda3-2021.05-Linux-x86_64.sh

2.安裝Anaconda環境(三臺節點都是需要安裝)

此環境三臺節點都是需要安裝的,?以下演示在node1安裝,?其余兩臺也是需要安裝的

上傳軟件到/export/software目錄下

cd?/export/software

rz 上傳Anaconda腳本環境

執行腳本:

sh Anaconda3-2021.05-Linux-x86_64.sh

不斷輸入空格,?直至出現以下解壓,?然后輸入yes

此時,?anaconda需要下載相關的依賴包,?時間比較長,?耐心等待即可...., 在等待中如果需要輸入yes/no, 直接輸入yes

配置anaconda的環境變量,三個節點都需要進行相同的操作:

vim /etc/profile

##增加如下配置

#ANACONDA_HOME

export ANACONDA_HOME=/root/anaconda3/bin

export PATH=$PATH:$ANACONDA_HOME

修改bashrc文件,三個節點都需要進行相同的操作:

vim ~/.bashrc

在文件最上面添加如下內容:

export PATH=~/anaconda3/bin:$PATH

重新加載環境變量:?source /etc/profile

說明:

profile

其實看名字就能了解大概了, profile 是某個用戶唯一的用來設置環境變量的地方, 因為用戶可以有多個 shell 比如 bash, sh, zsh 之類的, 但像環境變量這種其實只需要在統一的一個地方初始化就可以了, 而這就是 profile.

bashrc

bashrc 也是看名字就知道, 是專門用來給 bash 做初始化的比如用來初始化 bash 的設置, bash 的代碼補全, bash 的別名, bash 的顏色. 以此類推也就還會有 shrc, zshrc 這樣的文件存在了, 只是 bash 太常用了而已.

拷貝到其他節點:scp Anaconda3-2021.05-Linux-x86_64.sh node2:$PWD

3.啟動anaconda并測試

注意:?請將當前連接node1的節點窗口關閉,然后重新打開,否則無法識別

輸入 Python啟動:

如果大家發現命令行最前面出現了 (base)?信息, 可以通過以下方式, 退出Base環境

vim ~/.bashrc

拉到文件的最后面: 輸入 i 進入插入模式

將以下內容添加到最后面:

conda deactivate

4.Anaconda相關組件介紹

Anaconda(水蟒):是一個科學計算軟件發行版,集成了大量常用擴展包的環境,包含了 conda、Python 等 180 多個科學計算包及其依賴項,并且支持所有操作系統平臺。下載地址:https://www.continuum.io/downloads

  1. 安裝包:pip install xxx,conda install xxx
  2. 卸載包:pip uninstall xxx,conda uninstall xxx
  3. 升級包:pip install upgrade xxx,conda update xxx

Jupyter Notebook:啟動命令

jupyter notebook

功能如下:

  1. Anaconda自帶,無需單獨安裝
  2. 實時查看運行過程
  3. 基本的web編輯器(本地)
  4. ipynb 文件分享
  5. 可交互式
  6. 記錄歷史運行結果

修改jupyter顯示的文件路徑:

通過jupyter notebook --generate-config命令創建配置文件,之后在進入用戶文件夾下面查看.jupyter隱藏文件夾,修改其中文件jupyter_notebook_config.py的202行為計算機本地存在的路徑。

IPython:

?????命令:ipython,其功能如下

?????1.Anaconda自帶,無需單獨安裝

?????2.Python的交互式命令行 Shell

?????3.可交互式

?????4.記錄歷史運行結果

?????5.及時驗證想法

Spyder:

?????命令:spyder,其功能如下

?????1.Anaconda自帶,無需單獨安裝

?????2.完全免費,適合熟悉Matlab的用戶

?????3.功能強大,使用簡單的圖形界面開發環境

下面就Anaconda中的conda命令做詳細介紹和配置。

(1)conda命令及pip命令

conda管理數據科學環境,conda和pip類似均為安裝、卸載或管理Python第三方包。

conda install ?包名 ???pip install 包名

conda uninstall 包名 ??pip uninstall 包名

conda install -U 包名 ??pip install -U 包名

(2) Anaconda設置為國內下載鏡像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --set show_channel_urls yes

(3)conda創建虛擬環境

#查看有哪些虛擬環境(沙箱環境)

conda env list

#創建python3.8.8環境

conda create -n py_env?python=3.8.8

#激活環境

conda?activate py_env

???

#退出環境

conda?deactivate

5.PySpark安裝(只需要在node1安裝即可)

三個節點也是都需要安裝pySpark的,本質上只需要在node1安裝即可,后續主要基于node1來進行本地測試

6.1(推薦使用的方式)直接安裝PySpark(下載好的包)

安裝如下:

使用PyPI安裝PySpark如下:也可以指定版本安裝

pip install pyspark==3.1.2

或者指定清華鏡像(對于網絡較差的情況):

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark==3.1.2??# 指定清華鏡像源

教室網絡非常差怎么辦?提前下載到本地,然后直接本地安裝:

先將pyspark的jar包上傳到node1 /export/software

cd /export/software

pip install pyspark-3.1.2.tar.gz

如果要為特定組件安裝額外的依賴項,可以按如下方式安裝(此步驟暫不執行,后面Sparksql部分會執行):

pip install pyspark[sql]

截圖如下:

6.2[通用安裝]方式2:創建Conda環境安裝PySpark

#從終端創建新的虛擬環境,如下所示

conda create -n pyspark_env python=3.8

#創建虛擬環境后,它應該在 Conda 環境列表下可見,可以使用以下命令查看

conda env list

#現在使用以下命令激活新創建的環境:

source activate pyspark_env

或者

conda activate pyspark_env

如果報錯:?CommandNotFoundError: Your shell has not been properly configured to use 'conda deactivate'.切換使用 source?activate

#您可以在新創建的環境中通過使用PyPI安裝PySpark來安裝pyspark,例如如下。它將pyspark_env在上面創建的新虛擬環境下安裝 PySpark。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark==3.1.2

#或者,可以從 Conda 本身安裝 PySpark:

conda install pyspark==3.1.2

6.3[不推薦]方式3:手動下載安裝

將spark對應版本下的python目錄下的pyspark復制到anaconda的

Library/Python3/site-packages/目錄下即可。

請注意,PySpark 需要JAVA_HOME正確設置的Java 8 或更高版本。如果使用 JDK 11,請設置-Dio.netty.tryReflectionSetAccessible=true,Arrow相關功能才可以使用。

擴展:

conda虛擬環境 命令

查看所有環境

conda info --envs

新建虛擬環境

conda create -n myenv python=3.6

刪除虛擬環境

conda remove -n myenv --all

激活虛擬環境

conda activate myenv

source activate base

退出虛擬環境

conda deactivate myenv

7.初體驗-PySpark?shell方式

前面的Spark Shell實際上使用的是Scala交互式Shell,實際上 Spark 也提供了一個用 Python 交互式Shell,即Pyspark。

bin/pyspark --master local[*]

PySpark環境驗證計算圓周率

演示: 將spark提供的官方測試python腳本提交到spark的local上,檢測spark是否可以正常的運行

[root@node1 bin]#cd /export/server/spark/bin
?
[root@node1 bin]#./spark-submit /export/server/spark/examples/src/main/python/pi.py 100

驗證成功截圖:

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

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

相關文章

Golang | Leetcode Golang題解之第199題二叉樹的右視圖

題目: 題解: /** 102. 二叉樹的遞歸遍歷*/ func levelOrder(root *TreeNode) [][]int {arr : [][]int{}depth : 0var order func(root *TreeNode, depth int)order func(root *TreeNode, depth int) {if root nil {return}if len(arr) depth {arr a…

線性代數--行列式1

本篇來自對線性代數第一篇的行列式的一個總結。 主要是行列式中有些關鍵點和注意事項,便于之后的考研復習使用。 首先,對于普通的二階和三階行列式,我們可以直接對其進行拆開,展開。 而對于n階行列式 其行列式的值等于它的任意…

每個架構師都應該讀的八本經典書籍

格雷戈爾霍普在本文討論了8本被視為軟件架構師必讀的經典書籍。 以下是所提及的關鍵書籍的摘要: 1、維特魯威(公元前 20 年)的《建筑學》: 雖然與軟件架構沒有直接關系,但這部古代文獻被提及,具有歷史背景…

C++特殊類設計單例模式...

文章目錄 請設計一個類,不能被拷貝請設計一個類,只能在堆上創建對象請設計一個類,只能在棧上創建對象請設計一個類,不能被繼承請設計一個類,只能創建一個對象(單例模式)單例模式:餓漢模式:懶漢模…

代發考生戰報:6月25號 南寧 HCIP-Transmission傳輸 H31-341考試884分通過

代發考生戰報:6月25號 南寧 HCIP-Transmission傳輸 H31-341考試884分通過 ,今天我和同事兩個人去考的,我考試遇到1個新題,他遇到兩個新題,客服提供的題庫很穩定,全覆蓋了,輕松通過,考…

【語言模型】Xinference的部署過程

一、引言 Xinference,也稱為Xorbits Inference,是一個性能強大且功能全面的分布式推理框架,專為各種模型的推理而設計。無論是研究者、開發者還是數據科學家,都可以通過Xinference輕松部署自己的模型或內置的前沿開源模型。Xinfe…

pikachu靶場 利用Rce上傳一句話木馬案例(工具:中國蟻劍)

目錄 一、準備靶場,進入RCE 二、測試寫入文件 三、使用中國蟻劍 一、準備靶場,進入RCE 我這里用的是pikachu 打開pikachu靶場,選擇 RCE > exec "ping" 測試是否存在 Rce 漏洞 因為我們猜測在這個 ping 功能是直接調用系統…

性能評測系列:云架構擴展演進橫向對比

原始測評報告 性能評測系列(PT-010):Spring Boot RDS for MySQL,高并發insert 性能評測系列(PT-012):Spring Boot(K8s多實例) RDS for MySQL,高并發insert 性能評測系列&#xff…

一元線性回歸-R語言

# # 安裝包 # install.packages(ggplot2) # library(ggplot2) Sys.setlocale(category LC_ALL, locale English_United States.1252) # Sys.setlocale("LC_ALL","Chinese") x <- c(18, 20, 22, 24, 26, 28, 30) y <- c(26.86, 28.35, 28.87,28.75,…

Linux——vim的配置文件+異常處理

vim的配置文件&#xff1a; [rootserver ~]# vim /etc/vimrc # 輸入以下內容 set nu # 永久設置行號 shell [rootserver ~]# vim /etc/vimrc 或者 vim ~/.vimrc set hlsearch "高亮度反白 set backspace2 "可隨時用退格鍵刪除 set autoindent…

期貨的杠桿怎么計算?

什么是杠桿系數 杠桿系數是指期貨合約價值與保證金之間的比例。它表示投資者只需投入少量資金&#xff0c;就可以控制價值更高的期貨合約。杠桿系數越高&#xff0c;投資者的資金放大倍數就越大&#xff0c;但風險也越大。 什么是期貨保證金呢&#xff1f; 期貨保證金&…

《HelloGitHub》第 99 期

興趣是最好的老師&#xff0c;HelloGitHub 讓你對編程感興趣&#xff01; 簡介 HelloGitHub 分享 GitHub 上有趣、入門級的開源項目。 github.com/521xueweihan/HelloGitHub 這里有實戰項目、入門教程、黑科技、開源書籍、大廠開源項目等&#xff0c;涵蓋多種編程語言 Python、…

Multicolor Dragon-MCD 六彩神龍_RSI

MCDX 六彩神龍 https://www.tradingview.com/script/u2dIgVpN-M2J-Indicator-MCDX/ MCDX is an indicator based on mutilple Relative Strength Index (RSI) with different period, then classify into 3 categories - Retailer, Hot Money and Banker - Green - Retailer零…

2024.06.28 刷題日記

394. 字符串解碼 給定一個經過編碼的字符串&#xff0c;返回它解碼后的字符串。 示例 1&#xff1a; 輸入&#xff1a;s “3[a]2[bc]” 輸出&#xff1a;“aaabcbc” 示例 2&#xff1a; 輸入&#xff1a;s “3[a2[c]]” 輸出&#xff1a;“accaccacc” 示例 3&#xff1a;…

怎么進行模型微調,以微調llama3為例

微調模型&#xff08;Fine-tuning&#xff09;通常涉及以下步驟&#xff0c;以微調 LLaMA 3 為例&#xff1a; 1. 準備工作 在開始微調之前&#xff0c;需要準備以下工作&#xff1a; 選擇預訓練模型&#xff1a;LLaMA 3 是一個大型的語言模型&#xff0c;可以通過 Hugging F…

react 中 Swiper vertical 模式下 autoHeight 失效的問題

Swiper 在 vertical 模式下 autoHeight 失效的問題&#xff0c;導致頁面出現多余的空白高度&#xff0c;網上找了很多方法都無效&#xff0c;我直接暴力更改。 <SwiperclassNameindex-swiperdirection{vertical}mousewheel{true}centeredSlides{true}autoHeight{true}slide…

VS2019+QT5.12.10: error MSB4036: 未找到“Join”任務。請檢查下列各項: 1.) 項目文件中的任務名

1、背景 兩個VS2019打開兩個相同的項目&#xff0c;一個里可以正常運行&#xff0c; 一個中一直報錯&#xff0c;&#xff0c;報的錯也是瞎幾把報的。。 2、重新安裝插件 之前在VS的擴展中在線安裝了qt插件&#xff0c; 安裝了一半&#xff0c;比較慢&#xff0c;直接強行退出…

傳媒行業指哪些?需要過等保嗎?

傳媒&#xff0c;一個人人都接觸的行業。相信大家都聽過傳媒&#xff0c;但具體傳媒行業是指什么&#xff0c;包括哪些&#xff0c;詳細很多人都不了解。這不一些人在問&#xff0c;傳媒行業指哪些&#xff1f;需要過等保嗎&#xff1f;這里跟我們小編一起來討論討論吧&#xf…

玩游戲就能學習亞馬遜云科技AWS技術并通過熱門技術認證考試??

亞馬遜AWS限時活動&#xff0c;玩免費游戲Cloud Quest Practitioner送AWS云從業證書考試25%折扣券(價值171元)&#xff0c;玩游戲的同時還能學知識一舉兩得。Cloud Quest是AWS出的一款3D角色扮演游戲/虛擬城市建造形式的實驗課程(游戲畫面有點像天際線)&#xff0c;大家通過完成…

【01-02】Mybatis的配置文件與基于XML的使用

1、引入日志 在這里我們引入SLF4J的日志門面&#xff0c;使用logback的具體日志實現&#xff1b;引入相關依賴&#xff1a; <!--日志的依賴--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version&g…