Mac OS下搭建Hadoop + Spark集群


首先注意版本兼容問題!!!本文采用的是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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM