天天看點

Hadoop架構:單服務下僞分布式叢集搭建一、基礎環境二、僞叢集配置三、環境啟動測試四、曆史伺服器五、源代碼位址

本文源碼: GitHub·點這裡 || GitEE·點這裡

一、基礎環境

1、環境版本

環境:centos7
hadoop版本:2.7.2
jdk版本:1.8           

2、Hadoop目錄結構

  • bin目錄:存放對Hadoop的HDFS,YARN服務進行操作的腳本
  • etc目錄:Hadoop的相關配置檔案目錄
  • lib目錄:存放Hadoop的本地庫,提供資料壓縮解壓縮能力
  • sbin目錄:存放啟動或停止Hadoop相關服務的腳本
  • share目錄:存放Hadoop的依賴jar包、文檔、和相關案例

3、配置加載

vim /etc/profile
# 添加環境
export JAVA_HOME=/opt/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/opt/hadoop2.7
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

# 退出重新整理配置
source /etc/profile           

二、僞叢集配置

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

1、配置hadoop-env

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

2、配置core-site

檔案結構概覽

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
</configuration>           

NameNode的位址

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://127.0.0.1:9000</value>
</property>           

資料存放目錄:Hadoop運作時産生檔案的存儲目錄。

<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop2.7/data/tmp</value>
</property>           

3、配置hdfs-site

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

<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>           

4、配置yarn-env

export JAVA_HOME=/opt/jdk1.8           

5、配置yarn-site

指定YARN的ResourceManager的位址

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>192.168.72.132</value>
</property>           

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

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>           

6、配置mapred-env

export JAVA_HOME=/opt/jdk1.8           

7、配置mapred-site

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

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

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>           

三、環境啟動測試

1、測試檔案系統

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]# jps
2450 Jps
2276 NameNode
2379 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           
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           

2、Web端檢視檔案

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 展示曆史作業日志。

1、修改mapred-site

<!-- 伺服器端位址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.72.132:10020</value>
</property>

<!-- 伺服器web端位址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>192.168.72.132:19888</value>
</property>           

2、啟動服務

[hadoop2.7]# sbin/mr-jobhistory-daemon.sh start historyserver           

3、Web端檢視

IP位址:19888           
Hadoop架構:單服務下僞分布式叢集搭建一、基礎環境二、僞叢集配置三、環境啟動測試四、曆史伺服器五、源代碼位址

4、配置日志的聚集

日志聚集概念:應用服務運作完成以後,将運作日志資訊上傳到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

<!-- 日志聚集功開啟 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>

<!-- 日志保留時間7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>           

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

檢視Web端

Hadoop架構:單服務下僞分布式叢集搭建一、基礎環境二、僞叢集配置三、環境啟動測試四、曆史伺服器五、源代碼位址
Hadoop架構:單服務下僞分布式叢集搭建一、基礎環境二、僞叢集配置三、環境啟動測試四、曆史伺服器五、源代碼位址

五、源代碼位址

GitHub·位址
https://github.com/cicadasmile/big-data-parent
GitEE·位址
https://gitee.com/cicadasmile/big-data-parent