一、安裝Hadoop
環(huán)境
使用Ubuntu 14.04 64位 作為系統(tǒng)環(huán)境(Ubuntu 12.04,Ubuntu16.04 也行,32位、64位均可),請自行安裝系統(tǒng)。
Hadoop版本: Hadoop 2.7.4
創(chuàng)建hadoop用戶
如果你安裝 Ubuntu 的時候不是用的 "hadoop" 用戶,那么需要增加一個名為 hadoop 的用戶。
首先按 ctrl+alt+t 打開終端窗口,輸入如下命令創(chuàng)建新用戶 :
sudo useradd -m hadoop -s /bin/bash
這條命令創(chuàng)建了可以登陸的 hadoop 用戶,并使用 /bin/bash 作為 shell。
接著使用如下命令設(shè)置密碼,可簡單設(shè)置為 hadoop,按提示輸入兩次密碼:
sudo passwd hadoop
可為 hadoop 用戶增加管理員權(quán)限,方便部署,避免一些對新手來說比較棘手的權(quán)限問題:
sudo adduser hadoop sudo
最后注銷當前用戶(點擊屏幕右上角的齒輪,選擇注銷),返回登陸界面。在登陸界面中選擇剛創(chuàng)建的 hadoop 用戶進行登陸。
更新apt
用 hadoop 用戶登錄后,我們先更新一下 apt,后續(xù)我們使用 apt 安裝軟件,如果沒更新可能有一些軟件安裝不了。按 ctrl+alt+t 打開終端窗口,執(zhí)行如下命令:
sudo apt-get update
若出現(xiàn)如下 "Hash校驗和不符" 的提示,可通過更改軟件源來解決。若沒有該問題,則不需要更改。從軟件源下載某些軟件的過程中,可能由于網(wǎng)絡(luò)方面的原因出現(xiàn)沒法下載的情況,那么建議更改軟件源。在學(xué)習Hadoop過程中,即使出現(xiàn)“Hash校驗和不符”的提示,也不會影響Hadoop的安裝。

首先點擊左側(cè)任務(wù)欄的【系統(tǒng)設(shè)置】(齒輪圖標),選擇【軟
件和更新】

點擊 “下載自” 右側(cè)的方框,選擇【其他節(jié)點】

在列表中選中【mirrors.aliyun.com】,并點擊右下角的【選擇服務(wù)器】,會要求輸入用戶密碼,輸入即可。

接著點擊關(guān)閉。

此時會提示列表信息過時,點擊【重新載入】,

最后耐心等待更新緩存即可。更新完成會自動關(guān)閉【軟件和更新】這個窗口。如果還是提示錯誤,請選擇其他服務(wù)器節(jié)點如mirrors.163.com再次進行嘗試。更新成功后,再次執(zhí)行 sudo apt-get update 就正常了。
安裝SSH、配置SSH無密碼登陸
sudo apt-get install openssh-server
安裝后,可以使用如下命令登陸本機:
ssh localhost
此時會有如下提示(SSH首次登陸提示),輸入 yes 。然后按提示輸入密碼 hadoop,這樣就登陸到本機了。

但這樣登陸是需要每次輸入密碼的,我們需要配置成SSH無密碼登陸比較方便。
首先退出剛才的 ssh,就回到了我們原先的終端窗口,然后利用 ssh-keygen 生成密鑰,并將密鑰加入到授權(quán)中:
exit # 退出剛才的 ssh localhost
cd ~/.ssh/ # 若沒有該目錄,請先執(zhí)行一次ssh localhost
ssh-keygen -t rsa # 會有提示,都按回車就可以
cat ./id_rsa.pub >> ./authorized_keys # 加入授權(quán)
此時再用 ssh localhost 命令,無需輸入密碼就可以直接登陸了,如下圖所示。

安裝Java環(huán)境
請把壓縮格式的文件jdk-8u162-linux-x64.tar.gz下載到本地電腦,假設(shè)保存在“/home/linziyu/Downloads/”目錄下。
在Linux命令行界面中,執(zhí)行如下Shell命令(注意:當前登錄用戶名是hadoop):
cd /usr/lib
sudo mkdir jvm #創(chuàng)建/usr/lib/jvm目錄用來存放JDK文件
cd ~ #進入hadoop用戶的主目錄
cd Downloads #注意區(qū)分大小寫字母,剛才已經(jīng)通過FTP軟件把JDK安裝包jdk-8u162-linux-x64.tar.gz上傳到該目錄下
sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm #把JDK文件解壓到/usr/lib/jvm目錄下
JDK文件解壓縮以后,可以執(zhí)行如下命令到/usr/lib/jvm目錄查看一下:
cd /usr/lib/jvm
ls
可以看到,在/usr/lib/jvm目錄下有個jdk1.8.0_162目錄。
下面繼續(xù)執(zhí)行如下命令,設(shè)置環(huán)境變量:
cd ~
vi ~/.bashrc
上面命令使用vi編輯器打開了hadoop這個用戶的環(huán)境變量配置文件,請在這個文件的開頭位置,添加如下幾行內(nèi)容:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存.bashrc文件并退出vim編輯器。然后,繼續(xù)執(zhí)行如下命令讓.bashrc文件的配置立即生效:
source ~/.bashrc
這時,可以使用如下命令查看是否安裝成功:
java -version
如果能夠在屏幕上返回如下信息,則說明安裝成功:

安裝 Hadoop 2
下載hadoop-2.7.4.tar.gz并上傳到~/Downloads目錄,將 Hadoop 安裝至 /usr/local/ 中:
sudo tar -zxf ~/下載/hadoop-2.6.0.tar.gz -C /usr/local # 解壓到/usr/local中
cd /usr/local/
sudo mv ./hadoop-2.6.0/ ./hadoop # 將文件夾名改為hadoop
sudo chown -R hadoop ./hadoop # 修改文件權(quán)限
Hadoop 解壓后即可使用。輸入如下命令來檢查 Hadoop 是否可用,成功則會顯示 Hadoop 版本信息:

二、安裝Spark
下載Spark安裝文件spark-2.4.0-bin-without-hadoop.tgz,默認會被瀏覽器保存在“/home/hadoop/下載”目錄下。
這里介紹Local模式(單機模式)的 Spark安裝。我們選擇Spark 2.4.0版本,并且當前用戶hadoop登錄了Linux操作系統(tǒng)。
sudo tar -zxf ~/下載/spark-2.4.0-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-2.4.0-bin-without-hadoop/ ./spark
sudo chown -R hadoop:hadoop ./spark # 此處的 hadoop 為你的用戶名
修改相關(guān)配置文件
安裝后,還需要修改Spark的配置文件spark-env.sh
cd /usr/local/spark
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
編輯spark-env.sh文件(vim ./conf/spark-env.sh),在第一行添加以下配置信息:
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
有了上面的配置信息以后,Spark就可以把數(shù)據(jù)存儲到Hadoop分布式文件系統(tǒng)HDFS中,也可以從HDFS中讀取數(shù)據(jù)。如果沒有配置上面信息,Spark就只能讀寫本地數(shù)據(jù),無法讀寫HDFS數(shù)據(jù)。
然后通過如下命令,修改環(huán)境變量:
vi ~/.bashrc
在.bashrc文件中添加如下內(nèi)容:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$PATH:${JAVA_HOME}/lib:/usr/local/hbase/bin
export HADOOP_HOME=/usr/local/hadoop
export SPARK_HOME=/usr/local/spark
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.7-src.zip:$PYTHONPATH
export PYSPARK_PYTHON=python3
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PATH
PYTHONPATH環(huán)境變量主要是為了在Python3中引入pyspark庫,PYSPARK_PYTHON變量主要是設(shè)置pyspark運行的python版本。
.bashrc中必須包含JAVA_HOME,HADOOP_HOME,SPARK_HOME,PYTHONPATH,PYSPARK_PYTHON,PATH這些環(huán)境變量。如果已經(jīng)設(shè)置了這些變量則不需要重新添加設(shè)置。另外需要注意,上面的配置項中,PYTHONPATH這一行有個py4j-0.10.4-src.zip,這個zip文件的版本號一定要和“/usr/local/spark/python/lib”目錄下的py4j-0.10.4-src.zip文件保持版本一致。比如,如果“/usr/local/spark/python/lib”目錄下是py4j-0.10.7-src.zip,那么,PYTHONPATH這一行后面也要寫py4j-0.10.7-src.zip,從而使二者版本一致。
接著還需要讓該環(huán)境變量生效,執(zhí)行如下代碼:
source ~/.bashrc
驗證Spark是否安裝成功
配置完成后就可以直接使用,不需要像Hadoop運行啟動命令。
通過運行Spark自帶的示例,驗證Spark是否安裝成功。
cd /usr/local/spark
./bin/run-example SparkPi
執(zhí)行時會輸出非常多的運行信息,輸出結(jié)果不容易找到,可以通過 grep 命令進行過濾(命令中的 2>&1 可以將所有的信息都輸出到 stdout 中,否則由于輸出日志的性質(zhì),還是會輸出到屏幕中):
bin/run-example SparkPi 2>&1 | grep "Pi is"
這里涉及到Linux Shell中管道的知識,詳情可以參考Linux Shell中的管道命令
過濾后的運行結(jié)果如下圖示,可以得到π 的 5 位小數(shù)近似值:

Spark和Hadoop的交互
Hadoop 和Spark 可以相互協(xié)作,由Hadoop的HDFS 、HBase 等組件負責數(shù)據(jù)的存儲和管理,由Spark負責數(shù)據(jù)的計算。
為了能夠讓Spark操作HDFS中的數(shù)據(jù),需要先啟動HDFS。打開一個Linux終端,在Linux shell中輸入如下命令啟動HDFS:
cd /usr/local/hadoop
./sbin/start-dfs.sh

HDFS啟動完成后,可以通過命令jps來判斷是否成功啟動,命令如下:
jps

若成功啟動,則會列出如下進程:NameNode、DataNode、和SecondaryNameNode。然后就可以對HDFS中的數(shù)據(jù)進行讀取或?qū)懭氩僮?/p>
使用結(jié)束后,可以使用如下命令關(guān)閉HDFS:
./sbin/stop-dfs.sh
啟動pyspark
按照上面的配置相關(guān)文件設(shè)置了PYSPARK_PYTHON環(huán)境變量,就可以直接使用如下命令啟動pyspark:
cd /usr/local/spark
./bin/pyspark
如果沒有設(shè)置PYSPARK_PYTHON環(huán)境變量,則需要使用如下命令啟動pyspark:
PYSPARK_PYTHON=python3
cd /usr/local/spark
./bin/pyspark
啟動以后會進入pyspark交互式執(zhí)行環(huán)境,如圖:

就可以在里面輸入python代碼進行調(diào)試:文章來源:http://www.zghlxwxcb.cn/news/detail-400364.html

最后,可以使用如下命令"exit()"退出pyspark:文章來源地址http://www.zghlxwxcb.cn/news/detail-400364.html
>>> exit()
到了這里,關(guān)于Hadoop(偽分布式)+Spark(local模式)搭建Hadoop和Spark組合環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!