Hadoop框架:單服務下僞分佈式集羣搭建

本文源碼:GitHub·點這裏 || GitEE·點這裏node

1、基礎環境

一、環境版本

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

二、Hadoop目錄結構

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

三、配置加載

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

2、僞集羣配置

如下配置文件所在路徑:/opt/hadoop2.7/etc/hadoop,這裏是Linux環境,腳本配置sh格式。git

一、配置hadoop-env

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

二、配置core-site

文件結構概覽github

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

NameNode的地址web

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

數據存放目錄:Hadoop運行時產生文件的存儲目錄。vim

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

三、配置hdfs-site

文件結構和上述同樣,配置hdfs副本個數,這裏僞環境,配置1個便可。centos

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

四、配置yarn-env

export JAVA_HOME=/opt/jdk1.8

五、配置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>

六、配置mapred-env

export JAVA_HOME=/opt/jdk1.8

七、配置mapred-site

將mapred-site.xml.template從新命名爲mapred-site.xml。app

指定MapReduce程序資源調在度集羣上運行。若是不指定爲yarn,那麼MapReduce程序就只會在本地運行而非在整個集羣中運行。框架

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

3、環境啓動測試

一、測試文件系統

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

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

二、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

4、歷史服務器

MapReduce的JobHistoryServer,這是一個獨立的服務,可經過 web UI 展現歷史做業日誌。

一、修改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>

二、啓動服務

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

三、Web端查看

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

<!-- 日誌彙集功開啓 -->
<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框架:單服務下僞分佈式集羣搭建

5、源代碼地址

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

Hadoop框架:單服務下僞分佈式集羣搭建

相關文章
相關標籤/搜索