windows10環境安裝spark-3.0.3-bin-hadoop2.7和遇到的問題
前言
星光不問趕路人,時光不負有心人,
剛剛接觸spark,安裝環境就裝了兩天,目前遇到的問題,下面一一會有說明,希望能給到大家幫助,其中會借鑒其他大佬博客,有的可能忘記標記參考,如看到,可以聯系本人,進行及時更改,
一、spark及其相關的軟體
1.JDK安裝(不會的網上有很多)本人安裝的是Java 1.8.0_291
2.下載Hadoop_2.7.1
官網鏈接:http://hadoop.apache.org/releases.html
3.下載下載hadooponwindows-master.zip【能支持在windows運行hadoop的工具】
(后面會有這些軟體的百度鏈接)
4.下載對應的scala(這里用的是Scala 2.12.10)
官網鏈接:https://www.scala-lang.org/download/scala2.html
5.去官網下載spark-3.0.3-bin-hadoop2.7,這里注意一定要注意spark、hadoop、scala的版本
官網鏈接:http://spark.apache.org/downloads.html
下面是本人下載的軟體,有需要的可以自己提取,版本已經標注,最好去官網下載,主要是為了自己解決問題,
鏈接:https://pan.baidu.com/s/1nWI3wxe_cTi8usDW_cxqBA
提取碼:c6xs
二、具體步驟
1.安裝hadoop2.7.1
https://blog.csdn.net/qq_38025219/article/details/87365281
(我也是參考CSDN上大佬的文章)
下載hadoop2.7.1tar.gz,并解壓到你想要的位置,我放在了D盤里面

下面開始配置環境變數:
1.windows10環境變數配置:

2.后面接著配置path,將hadooop的bin目錄加入

3.修改需要配置的檔案(hadoop)
編輯“D:\軟體\Hadoop_2.7.1\hadoop-2.7.1\etc\hadoop”下的core-site.xml檔案,將下列文本粘貼進去,并保存;
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/D:/dev/hadoop-2.7.1/workplace/tmp</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/D:/dev/hadoop-2.7.1/workplace/name</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
編輯“D:\軟體\Hadoop_2.7.1\hadoop-2.7.1\etc\hadoop”目錄下的mapred-site.xml(沒有就將mapred-site.xml.template重命名為mapred-site.xml)檔案,粘貼一下內容并保存;
<configuration>
<!-- 這個引數設定為1,因為是單機版hadoop -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/D:/dev/hadoop-2.7.1/workplace/data</value>
</property>
</configuration>
編輯“D:\軟體\Hadoop_2.7.1\hadoop-2.7.1\etc\hadoop”目錄下的yarn-site.xml檔案,粘貼以下內容并保存;
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
編輯“D:\軟體\Hadoop_2.7.1\hadoop-2.7.1\etc\hadoop”目錄下的hadoop-env.cmd檔案,將JAVA_HOME用 @rem注釋掉,編輯為JAVA_HOME的路徑,然后保存;
@rem set JAVA_HOME=%JAVA_HOME%
set JAVA_HOME=set JAVA_HOME=C:\PROGRA~1\Java\jdk1.8.0_291
4.替換檔案(hadoop)
下載到的hadooponwindows-master.zip,解壓,將bin目錄(包含以下.dll和.exe檔案)檔案替換原來hadoop目錄下的bin目錄;
5.在cmd中進行運行
運行cmd視窗,執行“hdfs namenode -format”;
運行cmd視窗,切換到hadoop的sbin目錄,執行“start-all.cmd”,它將會啟動以下行程,
(啟動以后會打開新的四個視窗,并且都是運行狀態,具體圖可以看上邊我在CSDN中參考大佬的博客)
到目前來說hadoop基本就搭建完了,現在需要測驗一下
根據上面你的core-site.xml的配置,接下來你就可以通過:hdfs://localhost:9000來對hdfs進行操作了
1.創建目錄(這里要用管理員身份運行cmd視窗)
C:\WINDOWS\system32>hadoop fs -mkdir hdfs://localhost:9000/user/
C:\WINDOWS\system32>hadoop fs -mkdir hdfs://localhost:9000/user/wcinput
2.上傳資料到目錄(這里的.txt檔案需要自己在對應檔案夾創建,不創建會報錯,錯誤說該檔案夾中沒有該檔案,.txt檔案內容自己任意寫)
C:\WINDOWS\system32>hadoop fs -put D:\file1.txt hdfs://localhost:9000/user/wcinput
C:\WINDOWS\system32>hadoop fs -put D:\file2.txt hdfs://localhost:9000/user/wcinput
查看你所匯入的檔案:
hadoop fs -ls hdfs://localhost:9000/user/wcinput
(具體圖可以看上邊我在CSDN中參考大佬的博客)
這樣hadoop的搭建就已經完成了
2.安裝scala(這里用的是Scala 2.12.10)
https://www.runoob.com/scala/scala-install.html
(官網的教程已經很詳細了windows10)


在官網進行下載,進行環境變數的配置,配置好以后在視窗輸入cmd,然后輸入scala,然后回車,環境變數就配置完了,你就可以看到對應的版本

這時scala就已經配置好了,
3.安裝spark-3.0.3-bin-hadoop2.7
首先下載就是一個大問題,可能公司的網有限,還是在家里的網進行下載的,也下了2個多小時,雖然不大,但速度太慢,后面我會把相關的軟體用百度網盤鏈接形式,需要的自己進行保存下載
官網下載網址:http://spark.apache.org/downloads.html

這是我在官網下載的截圖
(同樣在CSDN上也有相關大佬的配置方法)
大佬的博客
https://blog.csdn.net/weixin_51432117/article/details/115098331
1.配置環境

D:\軟體\spark-3.0.3-bin-hadoop2.7\spark-3.0.3-bin-hadoop2.7\bin
D:\軟體\spark-3.0.3-bin-hadoop2.7\spark-3.0.3-bin-hadoop2.7\python\lib
D:\軟體\spark-3.0.3-bin-hadoop2.7\spark-3.0.3-bin-hadoop2.7\python
最好把python的路徑也配置上,后面可能會用到,
配置完了以后就可以在cmd中輸入:spark-shell

這樣就成功了,如果有一些問題,可以看我上面鏈接大佬遇到的問題,幾乎都可以解決了,解決不了的可以找度娘,

這個問題我也去查過,不受后面使用的影響,所以,后面如果遇到,在進行補充,不過網上有很多解決辦法,對于我來說,只要使用不影響到我,我就無所謂,
4.測驗python模塊
重點來了,本人是做AI的,所以重點在這里,這里是最大的坑,解決這些問題網上資料是在太少,
首先安裝pyspark
很多人是pip install pyspark
這里本人不建議,如果你成功了就無所謂了
因為你下載的spark-3.0.3-bin-hadoop2.7里面有專門的模塊是pyspark,所以你將本模塊放到你對應的python中就可以

你將pyspark復制,然后復制到你python環境里面的lib–>sit-packages,復制到sit-packages檔案夾即可,如果你用的是虛擬環境,你用的是miniconda還是anaconda你找到對應的虛擬環境,路徑都是相似的,放到相同的檔案夾里面,

這樣重新啟動你的pycharm就可以了,
下面就是測驗遇到的問題了,要知道安裝沒有安裝好,就要用代碼進行測驗,開始展示:
新建一個python檔案(這里注意你的python環境)
from pyspark import SparkConf
from pyspark.sql import SparkSession
import traceback
appname = "test" # 任務名稱
master = "local" # 單機模式設定
'''
local: 所有計算都運行在一個執行緒當中,沒有任何并行計算,通常我們在本機執行一些測驗代碼,或者練手,就用這種模式,
local[K]: 指定使用幾個執行緒來運行計算,比如local[4]就是運行4個worker執行緒,通常我們的cpu有幾個core,就指定幾個執行緒,最大化利用cpu的計算能力
local[*]: 這種模式直接幫你按照cpu最多cores來設定執行緒數了,
'''
spark_driver_host = "10.0.0.248"
try:
# conf = SparkConf().setAppName(appname).setMaster(master).set("spark.driver.host", spark_driver_host) # 集群
conf = SparkConf().setAppName(appname).setMaster(master) # 本地
spark = SparkSession.builder.config(conf=conf).getOrCreate()
sc = spark.sparkContext
words = sc.parallelize(
["scala",
"java",
"hadoop",
"spark",
"akka",
"spark vs hadoop",
"pyspark",
"pyspark and spark"
])
counts = words.count()
print("Number of elements in RDD is %i" % counts)
sc.stop()
print('計算成功!')
except:
sc.stop()
traceback.print_exc() # 回傳出錯資訊
print('連接出錯!')

有警告,但不受影響,如果想解決,就百度吧
這樣就成功了,
如果遇到運行時如果報錯sc沒有被定義,你需要把下面代碼復制到測驗代碼中
from pyspark import SparkContext
from pyspark import SparkConf
conf = SparkConf().setAppName("test")
sc = SparkContext(conf=conf)
如果你有遇到的是Could not find valid SPARK_HOME while searching這個問題
搜索時找不到有效的SPARK_HOME
可以參考一下鏈接:https://www.pianshen.com/article/82521714106/
如果你遇到的是ModuleNotFoundError: No module named 'py4j’是這個問題,其實就是上面Could not find valid SPARK_HOME while searching這個問題,只要按照這個方法機型解決就可以了,
解決方法,這里用的是pycharm
在pycharm中打開設定,Settings–>Project:xxx–>Project Structure,點擊+號,添加pyspark zip包:

在加號那里面把py4j和pyspark的壓縮包進行添加即可
更詳細資料上邊有鏈接,鏈接里面有視頻,非常詳細,
后面還需要配置一下系統變數:

按照自己的路徑進行配置即可,沒有就新建,
到這里我們我們就解決完了,如果你遇到新的問題可以留言,同時感謝各位大佬的文章,本文章不作為商用,只是供給大家作為一個參考,如果涉及侵權,可以聯系本人,本人進行核實下架處理,
參考資料
https://blog.csdn.net/weixin_39750084/article/details/84453711
https://www.pianshen.com/article/82521714106/
https://blog.csdn.net/qq_38025219/article/details/87365281
https://www.runoob.com/scala/scala-install.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/296835.html
標籤:其他
上一篇:MySQL--??這套【全網超細】萬字資料庫備份方案,老板看了直呼加薪???《?務必收藏?》
下一篇:大資料學習路線~
