一,環(huán)境準(zhǔn)備
版本信息
jdk:jdk1.8.0
hadoop:hadoop-2.10.1
spark:spark-3.0.1
首先配置java環(huán)境和Hadoop環(huán)境變量
將jdk解壓縮

之后在/etc/profile里面添加環(huán)境變量

注意每次都要source /etc/profile
解壓Hadoop
并配置環(huán)境變量,將Hadoop的路徑寫入~/.bashrc

需要source ~/.bashrc
配置免密登錄
修改hostname,
sudo vim? /etc/hostname
修改hosts的名字
sudo vim? /etc/hosts
以下是master的hostname和hosts


slave1和slave2的hostname也需要改。
配置免密登錄

ssh-keygen -t rsa? ? ? # 一直按回車就可以
cat ./id_rsa.pub >> ./authorized_keys
Hadoop配置文件修改
需要修改Hadoop安裝目錄下/etc/hadoop中的5個(gè)配置文件。slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml
slaves內(nèi)容

core-site.xml

<configuration>
<property>
? ? ? ? ? ? ? ? <name>fs.defaultFS</name>
? ? ? ? ? ? ? ? <value>hdfs://master:9000</value>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>hadoop.tmp.dir</name>
? ? ? ? ? ? ? ? <value>file:/home/zkx/hadoop-2.10.1/tmp</value>
? ? ? ? ? ? ? ? <description>Abase for other temporary directories.</description>
? ? ? ? </property>
</configuration>
hdfs-site.xml
這文件記錄備份相關(guān)。我們有2個(gè) slave 節(jié)點(diǎn),因此可以將 dfs.replication 的值設(shè)為 2
<configuration>
<property>
? ? ? ? ? ? ? ? <name>dfs.namenode.secondary.http-address</name>
? ? ? ? ? ? ? ? <value>master:50090</value>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>dfs.replication</name>
? ? ? ? ? ? ? ? <value>2</value>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>dfs.namenode.name.dir</name>
? ? ? ? ? ? ? ? <value>file:/home/zkx/hadoop-2.10.1/tmp/dfs/name</value>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>dfs.datanode.data.dir</name>
? ? ? ? ? ? ? ? <value>file:/home/zkx/hadoop-2.10.1/tmp/dfs/data</value>
? ? ? ? </property>
</configuration>

mapred-site.xml
如果是mapred-site.xml.template ,此時(shí)需要重命名

<configuration>
<property>
? ? ? ? ? ? ? ? <name>mapreduce.framework.name</name>
? ? ? ? ? ? ? ? <value>yarn</value>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>mapreduce.jobhistory.address</name>
? ? ? ? ? ? ? ? <value>master:10020</value>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>mapreduce.jobhistory.webapp.address</name>
? ? ? ? ? ? ? ? <value>master:19888</value>
? ? ? ? </property>
</configuration>
yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
<property>
? ? ? ? ? ? ? ? <name>yarn.resourcemanager.hostname</name>
? ? ? ? ? ? ? ? <value>master</value>
? ? ? ? </property>
? ? ? ? <property>
? ? ? ? ? ? ? ? <name>yarn.nodemanager.aux-services</name>
? ? ? ? ? ? ? ? <value>mapreduce_shuffle</value>
? ? ? ? </property>
</configuration>
將Hadoop文件打包發(fā)送到slave節(jié)點(diǎn)上解壓
先刪除logs和tmp里的文件
之后壓縮
tar -zcf ~/hadoop.master.tar.gz ./hadoop-2.10.1
使用scp命令發(fā)送到slave1和slave2
scp ./hadoop.master.tar.gz zkx@slave1:/home/zkx
之后解壓
啟動(dòng)
master節(jié)點(diǎn)格式化
hdfs namenode -format # 首次運(yùn)行需要執(zhí)行初始化,之后不需要
啟動(dòng)和結(jié)束腳本在sbin目錄下

start-all.sh
mr-jobhistory-daemon.sh start historyserver #啟動(dòng)歷史服務(wù)器
jps 查看master和slave


worker是spark的,不用參考
實(shí)例:求PI
hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.1.jar pi 100 1000
結(jié)果如下

二、spark的安裝
使用教程
http://spark.apache.org/docs/latest/index.html
解壓壓縮包
目錄如下

修改conf下的spark-env.sh

export SPARK_DIST_CLASSPATH=$(/home/zkx/hadoop-2.10.1/bin/hadoop classpath)
export JAVA_HOME=/home/zkx/jdk1.8.0_241
SPARK_MASTER_HOST=master
SPARK_MASTER_PORT=7077
修改slaves

之后將整個(gè)目錄壓縮,scp發(fā)送到slave上,解壓
測(cè)試
啟動(dòng)spark
./sbin/start-all.sh
之后打開瀏覽器輸入maste的spark的URL,節(jié)點(diǎn)的端口是8080。

可以看到有三個(gè)worker