注意:下面步驟中的配置文件中的漢字建議全部刪除,否則會出現編碼出錯
安裝方式:僞分佈式,讓進程跑在一臺機器上,只是端口不一樣
文檔:http://hadoop.apache.org/docs/r2.7.6/hadoop-project-dist/hadoop-common/SingleCluster.html
1、使用rz命令上傳 前提:使用yum安裝lrzsz插件,可以上傳文件到Linux系統
此處上傳hadoop的tar包
2、解壓:此處將解壓後的hadoop放到了opt目錄下的一個文件夾中
tar -zxvf hadoop-2.7.3.tar.gz -C /opt/modules/
3、Hadoop目錄結構
刪除一些無用文件和目錄:
rm -rf bin/*.cmd
rm -rf sbin/*.cmd
rm -rf share/doc/
4、修改環境變量
5、common模塊:core-site.xml:中文註釋幫助你更好理解配置的屬性的作用,運行時建議刪除,否則有可能報錯
6、HDFS模塊:hdfs-site.xml
slaves:指定DataNode運行在那些機器上
說明:如果有多個機器,一行一個
7、啓動HDFS
(1)對文件系統進行格式化
bin/hdfs namenode -format
注意:只需要格式化一次即可
(2)格式化成功的標準
如果進行了第二次格式化,格式化之前:將臨時目錄刪除:即步驟5中建立的文件夾中的內容
(3)啓動服務
- 主節點:sbin/hadoop-daemon.sh start namenode
-
- 從節點:sbin/hadoop-daemon.sh start datanode
(4)驗證是否啓動
方式一:jps
方式二:通過web ui查看
hdfs webui端口是50070
8、測試HDFS
- 幫助命令;
- bin/hdfs dfs
- 創建目錄
- bin/hdfs dfs -mkdir -p /datas/tmp
- 上傳文件:Linux -》HDFS
- bin/hdfs dfs -put /opt/datas/wordcount /datas/tmp/
- 列舉目錄文件:
- bin/hdfs dfs -ls /datas/
- 查看文件內容
- bin/hdfs dfs -cat /datas/tmp/wordcount
- 刪除文件
- bin/hdfs dfs -rm -r -f /datas/tmp/wordcount
- 下載文件(HDFS->linux):
- bin/hdfs dfs -get /datas/tmp/wordcount /opt/modules/
9、Yarn模塊
對於分佈式資源管理和任務調度框架來說
在Yarn上面能夠運行很多種應用程序
MapReduce
並行數據處理框架
Spark
基於內存分佈式計算框架
Storm/Flink
實時流式計算框架
Tez
分析數據,比MapReduce速度快
yarn-site.xml
slaves
指定nodemanager運行在那些機器上,在配置HDFS的時候,已經配置了,
10、啓動Yarn
- 主節點
- sbin/yarn-daemon.sh start resourcemanager
-
- 從節點
- sbin/yarn-daemon.sh start nodemanager
11、驗證Yarn是否啓動
方式一:jps
方式二:通過web UI :主機名:8088
12、MapReduce
(1)重命名配置文件
mv mapred-site.xml.template mapred-site.xml
(2)修改mapred-site.xml
13、測試MapReduce程序
程序運行在Yarn,讀取HDFS上的數據進行處理
準備數據:
vi /datas/tmp/wordcount
MapReduce程序
Hadoop框架給我們提供了測試程序
/opt/modules/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
提交運行
程序提交到Yarn上運行只有一種方式:bin/yarn jar
完整命令
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /datas/tmp/wordcount /datas/mapreduce/output1
結果查看
(1)主機名:8088
(2)HDFS 主機名: 50070
日誌文件講解
進程啓動不了,控制沒有報什麼錯誤,這個時候,我們只能通過查看日誌的方式找到問題。
日誌文件目錄:${Hadoop_home}/logs
日誌文件詳解
文件名:主鍵模塊的名稱-用戶名-服務名稱-主機名