首先注意版本兼容問題!!!本文采用的是Scala 2.11.8 + Hadoop 2.7.5 + Spark 2.2.0

請在下載Spark時務必看清對應的Scala和Hadoop版本!
一、配置JDK
1. 下載jdk
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2. 配置環境變量
(1)在終端使用 sudo su 命令進入root用戶模式;
(2)使用 vim /etc/profile 命令打開profile文件,按下大寫“I”進入編輯模式,在文件中添加以下信息:
JAVA_HOME對應的是你的JDK安裝路徑
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home" CLASS_PATH="$JAVA_HOME/lib" PATH=".;$PATH:$JAVA_HOME/bin" export JAVA_HOME
(3)使用“esc”鍵推出編輯模式,按下“:”,輸入wq並回車,保存且退出。
(4)退出終端並重新打開,輸入 java -version 命令查看JDK配置情況。也可以直接輸入命令 source /etc/profile 使修改信息立即生效。配置成功信息如下圖所示。
二、配置Scala
1. 下載Scala
Scala 2.11.8下載鏈接:http://www.scala-lang.org/download/2.11.8.html
2. 將下載的scala壓縮文件解壓后復制到/usr/local/Cellar文件夾下(位置無具體要求,按個人習慣,最好將scala、hadoop和spark放在同一位置)

3. 配置Scala環境
(1)與配置JDK一樣的步驟,使用 vim /etc/profile 命令進入編輯模式,添加以下信息(對應你的解壓路徑):
export PATH="$PATH:/usr/local/Cellar/scala-2.11.8/bin"
(2)使用 source /etc/profile 命令使修改生效,輸入 scala 檢查配置是否成功。配置成功信息如下所示。

三、配置SSH無密碼登陸
配置ssh就是為了能夠實現免密登錄,這樣方便遠程管理Hadoop並無需登錄密碼在Hadoop集群上共享文件資源。
1. 輸入 ssh-keygen -t rsa 命令,然后一直回車即可,輸出以下信息便設置成功。

2. 輸入 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 授權你的公鑰到本地可以無需密碼實現登錄;
3. 進入root模式,使用 chmod 700 .ssh 命令對.ssh賦予權限;
4. 然后使用 cd .ssh 命令進入該目錄,使用 chmod 600 authorized_keys 對authorized_keys賦予權限;
5. 打開系統偏好設置->共享->打開遠程登錄

6. 在root模式下輸入 ssh localhost 命令進行測試,測試成功結果如下所示。
![]()
四、下載並配置Hadoop
1. 下載Hadoop
Hadoop 2.7.5鏡像下載鏈接:http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.5/hadoop-2.7.5.tar.gz
2. 將下載后的壓縮文件復制到/usr/local/Cellar目錄下並解壓
3. 配置Hadoop
(1)使用 cd /usr/local/Cellar/hadoop-2.7.5/etc/hadoop/ 進入Hadoop配置目錄,找到“hadoop-env.sh”文件

(2)配置Hadoop環境
使用 vim hadoop-env.sh 命令進行編輯,找到並修改以下信息:(注意:JAVA_HOME是你自己之前配置的)
export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc="
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home"
(3) 配置hdfs地址和端口
使用 vim core-site.xml 命令進行編輯,將“<configuration></configuration>”替換為以下信息:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop-2.7.5/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration><configuration>
fs.defaultFS用於設置Hadoop的默認文件系統,設置為“hdfs://localhost:9000”。HDFS的守護程序通過該屬性項來確定HDFS namenode的主機和端口。
(4)配置HDFS的默認參數副本數
使用 vim hdfs-site.xml 命令進行編輯,將“<configuration></configuration>”替換為以下信息:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop-2.7.5/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop-2.7.5/tmp/dfs/data</value>
</property>
</configuration>
dfs.replication的value設置為“1”,這樣HDFS就不會按默認設置將文件系統塊復本設置為3。否則在單獨一個datanode上運行時,HDFS無法將塊復制到3個datanode上,所以會持續給出塊復本不足的警告。
(5)配置mapreduce中jobtracker的地址和端口
使用 vim mapred-site.xml.template 命令進行編輯,將“<configuration></configuration>”替換為以下信息:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
(6)接着修改配置文件 yarn-site.xml
添加以下信息:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
(7)文件系統初始化
進入到Hadoop安裝路徑的bin目錄下,使用命令 ./hadoop namenode -format 進行初始化,初始化成功會輸出以下信息,注意紅框標記處。

(8)配置Hadoop環境變量
目的是方便在任意目錄下全局開啟關閉hadoop相關服務,而不需要到/usr/local/Cellar/hadoop/2.7.5/sbin下去執行啟動或關閉命令。使用命令 vim ~/.zshrac 進行編輯,添加以下內容:(注意:zshrac是自己創建的,不要糾結自己找不到這個文件)
export HADOOP_HOME=/usr/local/Cellar/hadoop-2.7.5
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
然后使用 source ~/.zshrac 命令使修改生效,以上關於Hadoop的配置全部結束。
4. 啟動Hadoop
(1)啟動/關閉Hadoop服務
使用命令 start-dfs.sh 啟動,然后使用 jps 命令查看啟動結果,啟動成功如下圖所示:

我們在瀏覽器中輸入http://localhost:50070打開以下網頁,可以查看 NameNode 和 Datanode 信息,還可以在線查看 HDFS 中的文件。

使用 stop-dfs.sh 關閉Hadoop服務。
(2)啟動/關閉yarn服務
使用 start-yarn.sh 命令啟動yarn服務,讓 yarn來負責資源管理與任務調度。啟動成功后,使用 jps 命令可以輸出以下信息:

比之前只啟動Hadoop服務時多了一個NodeManager和ResourceManager,然后在瀏覽器中打開http://localhost:8088,可以通過 Web 界面查看任務的運行情況。

關閉yarn服務時,輸入以下命令 stop-yarn.sh
(3) 快速啟動和關閉
直接使用命令 start-all.sh 和 stop-all.sh 可以同時啟動Hadoop服務和yarn服務,比依次啟動和關閉方便很多。
2017-12-19 19:49:47
