Hadoop框架:單服務下偽分散式叢集搭建

環境:centos7Hadoop版本:2.7.2jdk版本:1.8
  • bin目錄:存放對Hadoop的HDFS,YARN服務進行操作的指令碼
  • etc目錄:Hadoop的相關配置檔案目錄
  • lib目錄:存放Hadoop的本地庫,提供資料壓縮解壓縮能力
  • sbin目錄:存放啟動或停止Hadoop相關服務的指令碼
  • share目錄:存放Hadoop的依賴jar包、文件、和相關案例
vim /etc/profile# 新增環境export JAVA_HOME=/opt/jdk1.8export PATH=$PATH:$JAVA_HOME/binexport HADOOP_HOME=/opt/hadoop2.7export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin# 退出重新整理配置source /etc/profile

以下配置檔案所在路徑:/opt/hadoop2.7/etc/hadoop,這裡是Linux環境,指令碼配置sh格式。

root# vim hadoop-env.sh# 修改前export JAVA_HOME=# 修改後export JAVA_HOME=/opt/jdk1.8

檔案結構概覽

NameNode的地址

fs.defaultFShdfs://127.0.0.1:9000

資料存放目錄:Hadoop執行時產生檔案的儲存目錄。

hadoop.tmp.dir/opt/hadoop2.7/data/tmp

檔案結構和上述一樣,配置hdfs副本個數,這裡偽環境,配置1個即可。

dfs.replication1
export JAVA_HOME=/opt/jdk1.8

指定YARN的ResourceManager的地址

yarn.resourcemanager.hostname192.168.72.132

指定map產生的中間結果傳遞給reduce採用的機制是shuffle

yarn.nodemanager.aux-servicesmapreduce_shuffle
export JAVA_HOME=/opt/jdk1.8

將mapred-site.xml.template重新命名為mapred-site.xml。

指定MapReduce程式資源調在度叢集上執行。如果不指定為yarn,那麼MapReduce程式就只會在本地執行而非在整個叢集中執行。

mapreduce.framework.nameyarn

Hdfs相關

格式化NameNode

第一次啟動時執行該操作。

[hadoop2.7]# bin/hdfs namenode -format

格式化NameNode,會產生新的clusterID,導致NameNode和DataNode的叢集id不一致,叢集找不到已往資料。所以,格式NameNode時,一定要停止相關程序,刪除data資料和log日誌,然後再格式化NameNode。clusterID在如下目錄中的VERSION檔案裡,可自行檢視對比。

/opt/hadoop2.7/data/tmp/dfs/name/current/opt/hadoop2.7/data/tmp/dfs/data/current

啟動NameNode

[hadoop2.7]# sbin/hadoop-daemon.sh start namenode

啟動DataNode

[hadoop2.7]# sbin/hadoop-daemon.sh start datanode

jps檢視狀態

[root@localhost hadoop2.7]# jps2450 Jps2276 NameNode2379 DataNode

Web介面檢視

需要Linux關閉防火牆和相關安全增強控制(這裡很重要)。

IP地址:50070
Hadoop框架:單服務下偽分散式叢集搭建

Yarn相關

啟動ResourceManager

[hadoop2.7]# sbin/yarn-daemon.sh start resourcemanager

啟動NodeManager

[hadoop2.7]# sbin/yarn-daemon.sh start nodemanager

Web介面檢視

IP地址:8088/cluster
Hadoop框架:單服務下偽分散式叢集搭建

MapReduce相關

檔案操作測試

建立一個測試檔案目錄

[root@localhost inputfile]# pwd/opt/inputfile[root@localhost inputfile]# echo "hello word hadoop" > word.txt

HDFS檔案系統上建立資料夾

[hadoop2.7] bin/hdfs dfs -mkdir -p /opt/upfile/input

上傳檔案

[hadoop2.7]# bin/hdfs dfs -put /opt/inputfile/word.txt /opt/upfile/input

檢視檔案

[hadoop2.7]# bin/hdfs dfs -ls /opt/upfile/input
Hadoop框架:單服務下偽分散式叢集搭建

執行檔案分析

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /opt/upfile/input /opt/upfile/output

檢視分析結果

bin/hdfs dfs -cat /opt/upfile/output/*

結果:每個單詞各自出現一次。

刪除分析結果

bin/hdfs dfs -rm -r /opt/upfile/output

MapReduce的JobHistoryServer,這是一個獨立的服務,可透過 web UI 展示歷史作業日誌。

mapreduce.jobhistory.address192.168.72.132:10020mapreduce.jobhistory.webapp.address192.168.72.132:19888
[hadoop2.7]# sbin/mr-jobhistory-daemon.sh start historyserver
IP地址:19888
Hadoop框架:單服務下偽分散式叢集搭建

日誌聚集概念:應用服務執行完成以後,將執行日誌資訊上傳到HDFS系統上。方便的檢視到程式執行詳情,方便開發除錯。

開啟日誌聚集功能之後,需要重新啟動NodeManager 、ResourceManager和HistoryManager。

關閉上述服務

[hadoop2.7]# sbin/yarn-daemon.sh stop resourcemanager[hadoop2.7]# sbin/yarn-daemon.sh stop nodemanager[hadoop2.7]# sbin/mr-jobhistory-daemon.sh stop historyserver

修改yarn-site

yarn.log-aggregation-enabletrueyarn.log-aggregation.retain-seconds604800

修改完之後再次啟動上述伺服器。再次執行檔案分析任務。

檢視Web端

Hadoop框架:單服務下偽分散式叢集搭建
Hadoop框架:單服務下偽分散式叢集搭建

版權宣告:本文源自 網路, 於,由 楠木軒 整理釋出,共 2921 字。

轉載請註明: Hadoop框架:單服務下偽分散式叢集搭建 - 楠木軒