前期準備
(1)JAVA_HOME:由於Hadoop的配置文件中依賴 $JAVA_HOME。修改/etc/profile文件。
(2)hostname:修改主機名,方便管理。/etc/sysconfig/network。
(3)ip hostname:方便管理,hadoop默認是使用hostname做爲ip的域名。/etc/hosts。
(4)iptables stop:關閉防火牆,因爲集羣須要用到的端口比較多,因此最好是先關掉。7版本:systemctl stop firewalld
(5)visudo:賦予sudo權限,CentOS中其餘用戶都沒有sudo權限。/etc/sudoers。
(6)chown:更改hadoop文件夾的全部者。sudo chown -R user:group hadoop。
(7)驗證:在hadoop根目錄輸入 bin/hadoop,驗證是否配置正常。
(8)hadoop-env.sh添加 JAVA_HOME變量。
2,僞分佈式部署
··· 以wordcount爲例:
(1)修改core-site.xml 文件
<configuration>
<!-- 用來指定默認文件系統的名稱以及NameNode服務的主機和端口號
注意:下面的mini主機名要改爲你本機的實際的hostname -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hostname:8020</value>
</property>
<!-- 配置hadoop臨時保存目錄
注意:目錄名和你安裝的目錄名要對應 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/app/hadoop/data/tmp</value>
</property>
</configuration>
(2)修改hdfs-site.xml文件
<configuration>
<!-- 用來指定Hadoop中每個數據的副本數,默認都是3,可是在僞分佈式中只有一個節點,因此這個
值必須設置爲1 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
(3)對HDFS進行格式化
bin/hadoop namendoe -format
注意:只能夠格式化一次,若是再次格式化,須要刪除配置的臨時文件目錄 data文件夾
(4)啓動NameNode和DataNode進程
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
注意:
啓動NameNode時必定要聯網。
能夠經過jps查看進程是否啓動。
能夠經過web訪問HDFS(http://主機IP(或域名):50070/explorer.html#
(5)上傳文件到HDFS
建立文件夾:bin/hdfs dfs -mkdir /input
添加文件到HDFS的input目錄:bin/hdfs dfs -put input.txt /input
查看是否上傳成功:bin/hdfs dfs -ls /input
(6)運行與查看
運行:bin/hadoop jar share/..../....jar wordcount /input /output
查看結果:bin/hdfs dfs -cat /output/par*
··· 在YARN上運行MapReduce
(1)複製一份 mapred-site.xml文件
cp mapred-site.xml.template mapred-site.xml
(2)配置 MapReduce的計算框架爲yarn
<!-- 配置MapReduce的計算框架,能夠是local,classic,yarn,若是不配置,默認是local -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(3)配置yarn-site.xml文件
<!-- 設置該屬性通知NodeManager須要實現名爲mapreduce.shuffle的輔助服務-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
(4)啓動
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
或者:start-yarn.sh
經過:http://hostname:8088 查看yarn上執行的程序。
··· 配置歷史服務器和日誌彙集:
(1)配置mapred-site.xml文件
<!-- 配置歷史服務器的地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>mini:10020</value>
</property>
<!-- 配置歷史服務器的web展現地址,以及端口號 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>mini:19888</value>
</property>
(2)啓動
sbin/mr-jobhistory-daemon.sh start historyserver # 啓動歷史服務器
查看:http://hadoop11:19888
(3)日誌彙集
做用:在MR任務運行結束後,將相關的運行日誌上傳到HDFS文件系統中。
配置yarn-site.xml文件:
<!-- 配置日誌彙集屬性-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 配置日誌彙集的時間 (7天) -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
配置完後須要 重啓 歷史服務器和 yarn
··· 注意事項:
· start-dfs.sh 能夠一次啓動NameNode、DataNode和 SecondaryNameNode,可是須要輸入三次密碼,能夠通 過設置本地免密登陸,來面輸密碼;ssh-copy-id -i ~/.ssh/id_rsa.pub shendeng@hadoop11(本地主機名)。
· start-yarn.sh 能夠一次啓動 resourcemanager和nodemanager。
··· 5個配置文件
· core-site.xml:配置hadoop的文件系統爲hdfs以及地址、臨時文件夾位置。
· hdfs-site.xml:配置SecondaryNameNode的主機地址、NameNode的web地址、關閉文件系統的權限控制。
· yarn-site.xml:配置ResourceManager主機的位置、shuffle服務、開啓日誌彙集功能、日誌保存的時間。
· mapred-site.xml:配置MapReduce的計算框架爲yarn、MapReduce歷史記錄地址、歷史記錄web地址。
· slaves:在該文件中添加從節點的主機名(注意不能有空格)。
··· 啓動
· 複製配置文件:
將配置文件複製到其餘節點上。scp -r /opt/app/hadoop27/etc/hadoop/ hadoop22:/opt/app/hadoop27/etc/
· 初始化NameNode節點:
注意:必須刪除 /tmp和 hadoop根目錄中的 data/tmp文件,不然沒法初始化
在部署NameNode的節點上初始化NameNode。hadoop namenode -format
· 啓動守護進程
在部署NameNode的節點上啓動 HDFS。start-hdfs.sh
在部署resourcemanager的節點上啓動YARN。start-yarn.sh