超詳細 Hadoop 2.7.4 Installation Procedure
∑工作快兩年了,一直沒有個自己的技術部落格啥的,感到很慚愧,每次遇到問題都是百度大神的文章,今天是週日,我也想寫點我一直學習成長中遇到的問題和 解決方法,今天我就拿這個hadoop2.7.4開刀吧,至少我再這個配置上卡住了很久。拿出來給大家分享一下
-------------------------------------------------------------------------------------------------------------------------------
這次主要講的是hadoop2.7.4的安裝和一些需要的 環境
hadoop2.7.4 vm12 centos 6.5 jdk1.8
下面紅色字為修改的檔案和命令 藍色字為修改的內容
*如果沒有軟體的可以百度一下或者直接問我要
1.在root賬戶下設定hosts
#> vim /etc/hosts
192.168.1.35 master 192.168.1.36 slave1
檔案原有的東西不用動加上,上面的內容 儲存退出 [ESC] [:wq!]
2.設定主機名
#> vim /etc/sysconfig/network
NETWORKING=yes HOSTNAME=master
同上儲存退出 在slave1機器上也同樣設定
然後 重啟所有虛擬機器
#> shutdown -r now
3.ssh key配置
[root@master ~]# ssh-keygen -t rsa然後一路回車 [root@master ~]# cd ~/.ssh/ [root@master .ssh]# cat id_rsa.pub >>authorized_keys [root@master .ssh]# scp ./id_rsa.pub root@slave1:$PWD 然後輸入slave1的密碼就可以了,在slave1上執行下面的命令 [root@slave1~]# cd ~/.ssh/ [root@slave1 .ssh]# cat id_rsa.pub >>authorized_keys 到此 ssh就配置好了master無密碼訪問slave1了 **slave1訪問master還是 需要密碼的
4.配置hadoop2.7.4【只需要在master配置完了,複製到其他節點就可以了】
主要配置以下幾個檔案:
下面所修改的檔案都在一個目錄下面我就不在累述了
[root@master hadoop]# pwd
/opt/software/hadoop-2.7.4/etc/hadoop
[root@master hadoop]# vim
core-site.xml
core-site.xml hadoop-env.sh hdfs-site.xml mapred-env.sh mapred-site.xml slaves yarn-env.sh yarn-site.xml
上傳hadoop2.7.4 jdk1.8 到linux /opt/software 目錄下 不管用啥方法給他整上去就行了,opt目錄下是沒有software的需要你自己建立一個 mkdir -p /opt/software
然後 解壓檔案hadoop2.7.4 jdk1.8
[root@master software]#tar -zxvf hadoop-2.7.4.tar [root@master software]#tar -zxvf jdk***.tar
修改檔案
core-site.xml
[root@master software]# vim /opt/software/hadoop-2.7.4/etc/hadoop/ core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> <description>設定namenode的主機名及埠(建議不要更改埠號)</description> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/software/hadoop-2.7.4/tmp</value> <description> 存放臨時檔案的目錄 </description> </property> </configuration>
hadoop-env.sh
[root@master software]# vim /opt/software/hadoop-2.7.4/etc/hadoop/ hadoop-env.sh
export JAVA_HOME=/opt/software/jdk1.8.0_144 將25行的#去掉填上正確的路徑
hdfs-site.xml
[root@master software]# vim /opt/software/hadoop-2.7.4/etc/hadoop/ hdfs-site.xml
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>/opt/software/hadoop-2.7.4/hdfs/name</value> <description> namenode 用來持續存放名稱空間和交換日誌的本地檔案系統路徑 </description> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/software/hadoop-2.7.4/hdfs/data</value> <description> DataNode 在本地存放塊檔案的目錄列表,用逗號分隔 </description> </property> <property> <name>dfs.replication</name> <value>1</value> <description> 設定 HDFS 儲存檔案的副本個數,預設為3 </description> </property> </configuration>
mapred-env.sh
[root@master software]# vim /opt/software/hadoop-2.7.4/etc/hadoop/ mapred-env.sh
export JAVA_HOME=/opt/software/jdk1.8.0_144 將16行的java_home填寫正確
mapred-site.xml
一般這個檔案在2.7版本以上是沒有的需要修改一下 在複製我的程式碼上去就可以了[root@master hadoop]#cp /opt/software/hadoop-2.7.4/etc/hadoop/mapred-site.xml.template /opt/software/hadoop-2.7.4/etc/hadoop/mapred-site.xml
[root@master software]# vim /opt/software/hadoop-2.7.4/etc/hadoop/ mapred-site.xml
<configuration> <property> <name>mapreduce.framwork.name</name> <value>yarn</value> </property> <property> <name>mapred.job.tracker</name> <value>master:9001</value> </property> </configuration>
slaves 這個檔案配置上所有節點的主機名 這裡我就開了2個虛擬機器 所以就2個都寫上了
[root@master software]# vim /opt/software/hadoop-2.7.4/etc/hadoop/ slaves
master slave1
yarn-env.sh
[root@master software]# vim /opt/software/hadoop-2.7.4/etc/hadoop/ yarn-env.sh
export JAVA_HOME=/opt/software/jdk1.8.0_144 在程式碼23行補全這個java_home的配置
最重要的就是下面這個檔案了 我捅咕了好久才知道他出來問題,因為這個hadoop的版本升級以後yarn所需要的資源預設情況下虛擬機器是滿足不了的,所以你star-all.sh 也好start-yarn.sh也好nodemanager起來就掉了
yarn-site.xml
[root@master software]# vim /opt/software/hadoop-2.7.4/etc/hadoop/ yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> <description>如果nodemanager沒有啟動將下面的引數加上</description> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>1024</value> </property> <property> <name>yarn.nodemanager.resource.cpu-vcores</name> <value>1</value> </property> </configuration>
到此hadoop的配置檔案已經修改好了需要 建立資料夾 來儲存他生產出來的日誌、data資訊、name資訊
在hadoop-2.7.4的根目錄下建立 tmp hdfs/name hdfs/data
[root@master hadoop-2.7.4]# mkdir -p hdfs/name [root@master hadoop-2.7.4]# mkdir -p hdfs/data [root@master hadoop-2.7.4]# mkdir tmp
最後剩下的就是配置環境變數啦 在檔案內容最下方 新增下面的程式碼
[root@master ~]# vim /etc/profile export JAVA_HOME=/opt/software/jdk1.8.0_144 export HADOOP_HOME=/opt/software/hadoop-2.7.4 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
記住記住
[root@master ~]# source /etc/profile
[root@master ~]# scp -r /opt/software/hadoop-2.7.4 root@slave1:/opt/software/ 在slave1上也要建立software資料夾 也需要將環境變數配置好同上也好source
[root@master ~]# scp -r /opt/software/jdk1.8.0_144 root@slave1:/opt/software/ 在slave1上也要建立software資料夾 也需要將環境變數配置好同上也好source
5.格式化叢集
[root@master ~]# hdfs namenode -format
如果報錯了,看日誌,就在建立的資料夾下,新手最好不要手打配置檔案,但是手打配置檔案是好習慣 往往會提示 你的標籤沒有關閉 或者是標籤錯誤
6.啟動叢集
[root@master ~]# start-all.sh
這是一個組合命令, start-dfs.sh and start-yarn.sh
單獨啟動hdfs =>> start-dfs.sh
單獨啟動yarn =>> start-yarn.sh
7.1檢視程序並驗證
[root@master software]# jps 17315 Jps 12854 SecondaryNameNode 12535 NameNode 13592 RunJar 13161 NodeManager 13037 ResourceManager 12671 DataNode
[root@slave1 ~]# jps 6336 DataNode 6452 NodeManager 6716 Jps
7.2hdfs的web介面驗證位址列裡輸入: master:50070
繼續往下找會看到活躍的節點和dead的節點數
下面的是yarn的web地址 master:8088
這裡還沒算完事 只是看到了jps程序和web介面都是正常的 還需要執行一下hadoop自帶是一個事例jar
[root@master software]# cd /opt/software/hadoop-2.7.4/share/hadoop/mapreduce/
root@master mapreduce]# hadoop jar ./hadoop-mapreduce-examples-2.7.4.jar pi 10 10
如果說正確的走到了這裡那麼才算徹底的完成了hadoop2.7.4的安裝,恭喜您啦