mac搭建hadoop3.1.1偽分佈模式 全網最詳細教程!
最近實習使用到了hadoop,那今天就出一個使用mac搭建hadoop3.1.1的詳細教程。幫助大家避免安裝的坑!
首先需要安裝一個mac神器:Homebrew,相信使用mac的童鞋都知道吧!Homebrew是一個包管理器,是Mac上的軟體安裝管理工具,類似於Linux中的apt-get,擁有安裝、解除安裝、更新、檢視等很多實用的功能。簡單的一條指令,就可以實現包管理,十分方便。
1、Homebrew安裝
可以通過如下程式碼進行安裝:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝成功後可以通過brew doctor來檢視是否安裝成功。
2、ssh免密登入配置
首先我們開啟系統偏好設定-->共享,進入到如下頁面:
我們將遠端登入、所有使用者勾選,然後開啟終端,輸入:
ssh localhost
這時會讓你輸入密碼,輸入密碼後顯示如下登陸成功頁面:
但是hadoop中需要免密登入,比如在啟動datanode、namenode時都需要免密登入,如果不設定,則會出現許可權不允許(Permission denied)的錯誤提示,導致無法啟動DataNode等。
使用如下程式碼設定ssh免密登入:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys
接下來在使用ssh localhost命令,我們會發現不用輸入密碼,直接可以登入。
3、hadoop安裝
前提準備:在安裝hadoop之前確保你的電腦中有jdk,如果沒有,可以通過如下程式碼安裝:
brew install java
這裡說明一下java版本的問題:Hadoop 2.7 以及後續版本需要 Java 7 以上版本,如果你電腦中的java是低於7的版本,那就請你去更新嘍!
可以使用java -version檢視jdk版本,我的java版本如下:
當然如果你使用brew安裝,那大可不必擔心版本問題,因為使用brew安裝的都是最新的版本。
使用如下程式碼進行hadoop安裝:
brew install hadoop
這裡還有一點說明的地方,如果你的電腦中沒有jdk,那麼你使用 brew install hadoop安裝時會提示你先安裝jdk後在安裝hadoop,所以java版本問題我們不用太擔心。
我安裝的是hadoop最新版本,hadoop3.1.1,大小:770MB,下載好預設存放的位置是:
/usr/local/Cellar/hadoop/3.1.1
使用brew安裝會比在官網上下載快很多。(如果你不想安裝了,那可以通過brew uninstall hadoop進行解除安裝,解除安裝的也非常乾淨)
4、偽分散式配置
當大家進行完上一步驟的安裝後,恭喜你,你已經安裝好了hadoop的單機模式!你可以在終端中輸入如下程式碼進行檢視:
hadoop
檢視結果為:
這裡我只截取了一部分圖片!
單機模式是hadoop最簡單的模式,他沒有hdfs,而是直接使用本地作業系統的檔案系統,不擅長處理大資料量。因此我們需要進行搭建偽分散式!
偽分佈模式需要我們對檔案進行配置。下面配置的檔案均在 /usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop 路徑中。
a.hadoop-env.sh配置
當你開啟你的hadoop-env.sh時,這部分是備註釋的,也就是前面有一個#,那我們需要去掉#,並將自己的java位置放到我用紅框框圈刪的地方!檢視自己電腦java存放位置使用:
/usr/libexec/java_home
將路徑複製過去即可。
b.core-site.xml配置
將core-site.xml中程式碼修改為:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
c.hdfs-site.xml配置
將hdfs-site.xml中程式碼修改為:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
d.mapred-site.xml配置
將mapred-site.xml中程式碼修改為:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
如果檔案字尾是 .xml.example
,改為 .xml
e.yarn-site.xml配置
將yarn-site.xml中程式碼修改為:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
5、執行
首先對檔案系統進行格式化,先進入到 /usr/local/Cellar/hadoop/3.1.1/libexec/bin 路徑中,輸入程式碼:
hdfs namenode -format
輸入之後會出現很多資訊,在最後會看到:
然後進行啟動NameNode和datanode
進入 /usr/local/Cellar/hadoop/3.1.1/libexec/sbin 路徑中,輸入
start-dfs.sh
這時候NameNode和DataNode都已經啟動成功了,我們可以在網頁中看到Overview頁面了!
NameNode - http://localhost:9870
接下來啟動 ResourceManager 和 NodeManager:
還是在 /usr/local/Cellar/hadoop/3.1.1/libexec/sbin 路徑中,輸入
start-yarn.sh
啟動後可以在瀏覽器中檢視All Applications 介面。
ResourceManager - http://localhost:8088
補充:如果你在輸入以上兩個程式碼時出現了
不要怕,這是由於你沒有配置hadoop的環境變數導致的,無關緊要,我們可以在命令前加上sh,如下
sh start-dfs.sh
sh start-yarn.sh
這樣,就可以順利啟動它們了。
我們可以通過jps檢視程序:
可以發現所有的程序都已經在運行了!!!
補充: 如果你在啟動Nodemanager和ResourceManager發生了錯誤,導致使用jps檢視程序時出現:
不要擔心,這是java版本的問題,因為自從jdk9以後預設禁止訪問javax.*API,解決辦法:我們可以在路徑 /usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop 下找到檔案 yarn-env.sh
在檔案中找到:
#export YARN_RESOURCEMANAGER_OPTS=
#export YARN_NODEMANAGER_OPTS=
將其修改為:
export YARN_RESOURCEMANAGER_OPTS="--add-modules=ALL-SYSTEM"
export YARN_NODEMANAGER_OPTS="--add-modules=ALL-SYSTEM"
然後在執行 sh start-yarn.sh 重新啟動就OK了。
當你不再使用hadoop時,可以進行關閉,在 /usr/local/Cellar/hadoop/3.1.1/libexec/sbin 路徑中輸入
sh stop-all.sh
可以關閉所有的程序。
本教程親測有效,我也是剛剛搭建好,由於網上的教程有些地方不詳細,導致搭建過程中出現問題,本教程相對詳細,如果大家有什麼疑問,請在評論區留言,歡迎一起討論!
此文章作者原創,如有轉載,請註明出處:https://blog.csdn.net/liaoningxinmin/article/details/85992752