windows下虛擬機(jī)配置spark集群最強(qiáng)攻略!
時(shí)間:2023-06-28 20:21:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-06-28 20:21:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)
windows下虛擬機(jī)配置spark集群最強(qiáng)攻略?。?h2 data-first-child>1、虛擬機(jī)安裝首先需要在windows上安裝vmware和ubuntu虛擬機(jī),這里就不多說(shuō)了
vmware下載地址:直接百度搜索,使用百度提供的鏈接下載,這里附上一個(gè)破解碼
5A02H-AU243-TZJ49-GTC7K-3C61N
ubuntu下載地址:
http://cdimage.ubuntu.com/daily-live/current/一路安裝下去,我一共裝了4臺(tái)虛擬機(jī),三臺(tái)用于構(gòu)建集群,一臺(tái)用于爬蟲,如圖所示:
2、虛擬機(jī)網(wǎng)絡(luò)配置
這里,我們以slave2為例來(lái)說(shuō)明一下虛擬機(jī)的網(wǎng)絡(luò)配置:
首先,將虛擬機(jī)的網(wǎng)絡(luò)設(shè)置設(shè)置為自定義,選擇VMnet8:
隨后,我們點(diǎn)擊VMWARE上的編輯-虛擬網(wǎng)絡(luò)編輯-右下角的更改設(shè)置,應(yīng)該有三個(gè)連接方式,這里我們把其他兩個(gè)移除,只剩下VMnet8:
隨后,點(diǎn)擊NAT設(shè)置,我們可以發(fā)現(xiàn)網(wǎng)關(guān)是192.168.75.2
接下來(lái),我們要設(shè)置虛擬機(jī)的ip:點(diǎn)擊右上角的edit connectinos,設(shè)置Ipv4,如下圖所示:
隨后修改兩個(gè)文件:
修改interfaces文件
命令:sudo vim /etc/network/interfaces ( 如果沒(méi)有vim命令,使用sudo apt-get install vim進(jìn)行安裝):
修改resolv.conf文件
命令:sudo vim /etc/resolv.conf:
接下來(lái)重啟我們的網(wǎng)絡(luò)就可以啦:
命令:sudo /etc/init.d/networking restart(如果啟動(dòng)失敗,重啟虛擬機(jī)即可)
查看我們的ip,使用ifconfig命令,如果沒(méi)有安裝(使用sudo apt install net-tools 進(jìn)行安裝):
3、使用xshell連接本地虛擬機(jī)(非必須)
下載xshell,百度搜索xshell,使用百度提供的下載地址即可。
要想使用xshell的ssh方式訪問(wèn)虛擬機(jī),首先要在虛擬機(jī)上安裝ssh服務(wù)
使用命令:sudo apt-get install openssh-server
隨后啟動(dòng)ssh服務(wù):sudo /etc/init.d ssh start
再次點(diǎn)擊VMWARE上的編輯-虛擬網(wǎng)絡(luò)編輯-右下角的更改設(shè)置,設(shè)置端口轉(zhuǎn)發(fā):
隨后打開(kāi)xshell,新建連接:
設(shè)置用戶名和密碼:
隨后點(diǎn)擊連接即可,發(fā)現(xiàn)連接成功!
4、修改虛擬機(jī)主機(jī)名以及hosts文件
這里以修改主節(jié)點(diǎn)主機(jī)名稱為例,其他節(jié)點(diǎn)類似。
使用命令 : sudo vim /etc/hostname 查看當(dāng)前主機(jī)名,并修改為master:
重啟之后生效:
兩個(gè)從節(jié)點(diǎn)的主機(jī)依次修改為slave1,slave2
接下來(lái),將主節(jié)點(diǎn)和兩個(gè)從節(jié)點(diǎn)的ip和主機(jī)名添加到hosts文件中,使用命令
sudo vim /etc/hosts
修改的結(jié)果為:
兩個(gè)從節(jié)點(diǎn)的hosts文件修改為同樣的結(jié)果,此時(shí)發(fā)現(xiàn)各虛擬機(jī)之間可以ping通。
5、配置SSH免驗(yàn)證登錄
接下來(lái),需要讓主節(jié)點(diǎn)可以免驗(yàn)證的登錄到從節(jié)點(diǎn),從而在進(jìn)行任務(wù)調(diào)度時(shí)可以暢通無(wú)阻。
首先要在各個(gè)節(jié)點(diǎn)上生成公鑰和私鑰文件,這里以slave1節(jié)點(diǎn)進(jìn)行講解,其他節(jié)點(diǎn)操作方式完全相同。
我們首先要開(kāi)啟ssh服務(wù),使用命令:sudo /etc/init.d/ssh start
隨后使用如下命令生成公鑰和私鑰文件:
ssh-keygen -t rsa -P ""
在所有節(jié)點(diǎn)上生成秘鑰文件之后,我們需要將從節(jié)點(diǎn)的公鑰傳輸給主節(jié)點(diǎn),使用命令:
cd ~/.ssh
scp id_rsa.pub sxw@master:~/.ssh/id_rsa.pub.slave1
隨后,在主節(jié)點(diǎn)下,將所有的公鑰信息拷貝到authorized_keys文件下:
使用命令:
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
cat id_rsa.pub.slave1 >> authorized_keys
cat id_rsa.pub.slave2 >> authorized_keys
接下來(lái)將authorized_keys文件復(fù)制到slave1和slave2節(jié)點(diǎn)目錄下:
scp authorized_keys sxw@slave1:~/.ssh/authorized_keys
scp authorized_keys sxw@slave2:~/.ssh/authorized_keys
接下來(lái)我們驗(yàn)證是否可以免密碼登錄:使用命令
ssh slave1
登陸成功,我們可以使用exit命令退出登錄
6、安裝java環(huán)境
這里我們可以直接使用linux的命令下載jdk,當(dāng)然也可以在本地下載之后傳輸?shù)教摂M機(jī)中,這里我采用的是后者,因?yàn)槲腋杏X(jué)在主機(jī)上下載會(huì)比較快一些。到j(luò)ava官網(wǎng)中下載最新的jdk文件即可。
使用由于剛才我們配置了端口轉(zhuǎn)發(fā),因此我們可以使用winscp進(jìn)行文件傳輸:
傳輸文件到/home/sxw/Documents路徑下,直接將文件進(jìn)行拖拽即可:
隨后,在該路徑下,使用如下命令進(jìn)行解壓:
tar -zxvf 文件名
重命名jdk文件夾為jdk
隨后修改配置文件:
sudo vim /etc/profile
添加如下三行:
export JAVA_HOME=/home/sxw/Documents/jdk
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
使用source命令使修改生效,同時(shí)查看是否安裝成功
7、安裝scala環(huán)境
可以使用命令下載scala,不過(guò)我們?nèi)匀贿x擇在本地下載scala:
下載地址:
http://www.scala-lang.org/download/2.11.7.html通過(guò)winscp傳入各虛擬機(jī)里,并使用如下命令進(jìn)行解壓:
tar -zxvf 文件名
重命名文件:
修改配置文件,增加以下兩行,并用source命令使修改生效:
檢查是否安裝成功:
可以看到scala已經(jīng)安裝成功了!
8、安裝hadoop配置環(huán)境
我們首先在主節(jié)點(diǎn)上配置好hadoop的文件,隨后使用scp命令傳輸?shù)綇墓?jié)點(diǎn)上即可。
同樣,我們?cè)趆adoop官網(wǎng)下載hadoop文件,通過(guò)winscp傳入主節(jié)點(diǎn),使用tar命令進(jìn)行解壓,并修改文件夾名為hadoop,這些這里暫且略過(guò)。
修改環(huán)境變量(所有節(jié)點(diǎn)都需要修改)并使用source命令使其生效:
接下來(lái)修改hadoop的配置文件:
(1)$HADOOP_HOME/etc/hadoop/hadoop-env.sh
修改JAVA_HOME 如下:
export JAVA_HOME=/home/sxw/Documents/jdk
(2)$HADOOP_HOME/etc/hadoop/slaves
修改salves里添加兩個(gè)從節(jié)點(diǎn)的名稱
slave1
slave2
(3)$HADOOP_HOME/etc/hadoop/core-site.xml
(4)$HADOOP_HOME/etc/hadoop/hdfs-site.xml
(5)$HADOOP_HOME/etc/hadoop/mapred-site.xml
首先使用如下命令生成mapred-site.xml文件:
cp mapred-site.xml.template mapred-site.xml
隨后進(jìn)行修改:
(6)$HADOOP_HOME/etc/hadoop/yarn-site.xml
至此,hadoop的配置文件就修改完了,我們用scp命令將修改好的hadoop文件傳入到子節(jié)點(diǎn)即可
9、安裝spark環(huán)境
我們首先在主節(jié)點(diǎn)上配置好spark的文件,隨后使用scp命令傳輸?shù)綇墓?jié)點(diǎn)上即可。
同樣在spark官網(wǎng)下載最新的spark文件,并使用winscp傳入虛擬機(jī),使用tar命令進(jìn)行解壓,并重命名文件夾為spark。
添加spark到環(huán)境變量并使其生效:
接下來(lái)修改spark的配置文件:
(1)$SPARK_HOME/conf/spark-env.sh
首先使用如下命令生成spark-env.sh文件:
cpspark-env.sh.template spark-env.sh
隨后進(jìn)行修改:
(2)$SPARK_HOME/conf/slaves
首先使用如下命令生成slaves文件:
cpslaves.template slaves
隨后進(jìn)行修改:
至此,spark的配置文件就修改完了,我們用scp命令將修改好的spark文件傳入到子節(jié)點(diǎn)即可,不要忘記修改子節(jié)點(diǎn)的環(huán)境變量
10、集群?jiǎn)?dòng)和關(guān)閉
首先我們編寫一個(gè)啟動(dòng)腳本:
可以看到,hadoop的啟動(dòng)需要兩個(gè)命令,分別啟動(dòng)dfs和yarn,傳統(tǒng)的start-all.sh已經(jīng)被棄用。而spark的啟動(dòng)只需要一個(gè)命令。
啟動(dòng)的結(jié)果如下圖所示:
隨后我們?cè)倬帉懸粋€(gè)關(guān)閉集群的腳本:
11、Hadoop測(cè)試
我們?cè)?home/sxw/Documents下建立一個(gè)wordcount.txt文件
文件內(nèi)容如下圖:
到hadoop的bin路徑下執(zhí)行如下三條命令:
hadoop fs -mkdir-p /Hadoop/Input
hadoop fs-put wordcount.txt /Hadoop/Input
hadoop jar /home/sxw/Documents/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /Hadoop/Input /Hadoop/Output
可以看到我們的hadoop再進(jìn)行運(yùn)算了:
使用如下命令查看運(yùn)算結(jié)果,發(fā)現(xiàn)我們的期望的結(jié)果正確輸出:
hadoop fs -cat/Hadoop/Output/*
hadoop配置成功!
12、spark測(cè)試
我們直接利用spark-shell 進(jìn)行測(cè)試,編寫幾條簡(jiǎn)單額scala語(yǔ)句:
到spark的bin路徑下執(zhí)行./spark-shell命令進(jìn)入scala的交互模式,并輸入如下幾條scala語(yǔ)句:
valfile=sc.textFile("hdfs://master:9000/Hadoop/Input/wordcount.txt")
val rdd=file.flatMap(line => line.split("")).map(word => (word,1)).reduceByKey(_+_)
rdd.collect()
rdd.foreach(println)
可以看到,我們的spark集群成功搭建!
作者:石曉文 Python愛(ài)好者社區(qū)專欄作者
個(gè)人公眾號(hào):小小挖掘機(jī)
博客專欄:wenwen
關(guān)鍵詞:強(qiáng)攻,虛擬,配置