Hadoop之運行模式

  Hadoop運行模式包括:本地模式、僞分佈式以及徹底分佈式模式。html

1、本地運行模式node

一、官方Grep案例web

  1)在hadoop-2.7.2目錄下建立一個 input 文件夾瀏覽器

[hadoop@hadoop101 hadoop-2.7.2]$ mkdir input

  2)將hadoop的xml配置文件複製到 input  服務器

[hadoop@hadoop101 hadoop-2.7.2]$ cp etc/hadoop/*.xml input

  3)執行share 目錄下的MapReduce 程序app

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'

  4)查看輸出結果webapp

[hadoop@hadoop101 hadoop-2.7.2]$ cat output/*

二、官方WordCount 案例分佈式

  1)在hadoop-2.7.2目錄下建立一個 wcinput 文件夾oop

[hadoop@hadoop101 hadoop-2.7.2]$ mkdir wcinput

  2)在wcinput文件家下建立一個 wc.input 文件測試

[hadoop@hadoop101 hadoop-2.7.2]$ cd wcinput
[hadoop@hadoop101 wcinput]$ touch wc.input

  3)編輯 wc.input 文件,輸入以下內容

hadoop yarn
hadoop mapreduce
tom
tom

  4)回到hadoop目錄 /opt/module/hadoop-2.7.2

  5)執行程序

[hadoop@hadoop101 hadoop-2.7.2]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput

  6)查看結果

[atguigu@hadoop101 hadoop-2.7.2]$ cat wcoutput/part-r-00000
tom 2
hadoop  2
mapreduce       1
yarn    1

 

2、僞分佈式運行模式

一、啓動HDFS並運行MapReduce程序

  一、分析

   1)配置集羣

   2)啓動、測試集羣 增、刪、查

   3)執行 WordCount 案例

  二、執行步驟

  1)配置集羣

   a、配置:hadoop-env.sh

    Linux系統中獲取JDK的安裝路徑

[hadoop@ hadoop101 ~]# echo $JAVA_HOME
/opt/module/jdk1.8.0_144

    修改JAVA_HOME路徑:

export JAVA_HOME=/opt/module/jdk1.8.0_144

   b、配置:core-site.xml

<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
    <value>hdfs://hadoop101:9000</value>
</property>

<!-- 指定Hadoop運行時產生文件的存儲目錄 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>

   c、配置:hdfs-site.xml

<!-- 指定HDFS副本的數量 -->
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

  2)啓動集羣

  a、格式化NameNode(第一次啓動時格式化,之後就不要總格式化)

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs namenode -format

  b、啓動NameNode

[hadoop@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode

  c、啓動DataNode

[hadoop@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start datanode

  3)查看集羣

  a、查看是否啓動成功

[hadoop@hadoop101 hadoop-2.7.2]$ jps
13586 NameNode
13668 DataNode
13786 Jps

  b、web端查看HDFS文件系統

  http://hadoop101:50070/dfshealth.html#tab-overview

  注意:若是不能查看,看以下帖子處理:http://www.cnblogs.com/zlslch/p/6604189.html

  c、查看產生的Log日誌

  當前目錄:/opt/module/hadoop-2.7.2/logs

[hadoop@hadoop101 logs]$ ls
hadoop-atguigu-datanode-hadoop.atguigu.com.log
hadoop-atguigu-datanode-hadoop.atguigu.com.out
hadoop-atguigu-namenode-hadoop.atguigu.com.log
hadoop-atguigu-namenode-hadoop.atguigu.com.out
SecurityAuth-root.audit
[hadoop@hadoop101 logs]# cat hadoop-atguigu-datanode-hadoop101.log

  d、思考:爲何不能一直格式化NameNode,格式化NameNode,要注意什麼?

[hadoop@hadoop101 hadoop-2.7.2]$ cd data/tmp/dfs/name/current/

[hadoop@hadoop101 current]$ cat VERSION
clusterID=CID-f0330a58-36fa-4a2a-a65f-2688269b5837

[hadoop@hadoop101 hadoop-2.7.2]$ cd data/tmp/dfs/data/current/
clusterID=CID-f0330a58-36fa-4a2a-a65f-2688269b5837

  注意:格式化NameNode,會產生新的集羣id,致使NameNode和DataNode的集羣id不一致,集羣找不到以往數據。因此,格式化NameNode時,必定要先刪除data數據和log日誌,而後再格式化NameNode。

  4)操做集羣

  a、在HDFS文件系統上建立一個 input 文件夾

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -mkdir -p /user/hadoop/input

  b、將測試文件內容上傳到文件系統上  

[hadoop@hadoop101 hadoop-2.7.2]$bin/hdfs dfs -put wcinput/wc.input /user/hadoop/input/

  c、查看上傳的文件是否正確

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -ls  /user/hadoop/input/
[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat  /user/hadoop/input/wc.input

  d、運行MapReduce程序

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/hadoop/input/ /user/hadoop/output

  e、查看輸出結果

  命令行查看:

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/hadoop/output/*

  瀏覽器查看:

  f、將測試文件內容下載到本地  

[hadoop@hadoop101 hadoop-2.7.2]$ hdfs dfs -get /user/hadoop/output/part-r-00000 ./wcoutput/

  g、刪除輸出結果

[hadoop@hadoop101 hadoop-2.7.2]$ hdfs dfs -rm -r /user/hadoop/output

 

二、啓動YARN並運行MapReduce程序

  一、分析

  1)配置集羣在YARN上運行MR

  2)啓動、測試集羣 增、刪、查

  3)在YARN上執行WordCount案例

  二、執行步驟

  1)配置集羣

    a、配置yarn-env.sh

    配置一下JAVA_HOME

export JAVA_HOME=/opt/module/jdk1.8.0_144

    b、配置yarn-site.xml

<!-- Reducer獲取數據的方式 -->
<property>
  <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>hadoop101</value>
</property>

    c、配置:mapred-env.sh

    配置一下 JAVA_HOME

export JAVA_HOME=/opt/module/jdk1.8.0_144

    d、配置:(對mapred-site.xml.template重命名爲)mapred-site.xml    

[hadoop@hadoop101 hadoop]$ mv mapred-site.xml.template mapred-site.xml
[hadoop@hadoop101 hadoop]$ vi mapred-site.xml

<!-- 指定MR運行在YARN上 -->
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>

  2)啓動集羣

    a、啓動前必須保證NameNode和DataNode已經啓動

    b、啓動ResourceManager

[hadoop@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager

    c、啓動NodeManager

[hadoop@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager

  3)集羣操做

    a、yarn的瀏覽器頁面查看:

    http://hadoop101:8088/cluster

    b、刪除文件系統上的output文件夾

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -rm -R /user/atguigu/output

    c、執行MapReduce程序

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/hadoop/input  /user/hadoop/output

    d、查看運行結果:    

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/atguigu/output/*

 

 三、配置歷史服務器

  爲了查看程序的歷史運行狀況,須要配置一下歷史服務器,具體配置步驟以下:

  1)配置mapred-site.xml

  在該文件裏面增長以下配置:

<!-- 歷史服務器端地址 -->
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>hadoop101:10020</value>
</property>

<!-- 歷史服務器web端地址 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop101:19888</value> </property>

  2)啓動歷史服務器

[hadoop@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver

  3)查看歷史服務器是否啓動

[hadoop@hadoop101 hadoop-2.7.2]$ jps

  4)查看JobHistory

  http://hadoop101:19888/jobhistory

 

四、配置日誌的彙集

  日誌彙集概念:應用運行完成之後,將程序運行日誌信息上傳到HDFS系統上。

  日誌彙集功能好處:能夠方便地查看到程序運行詳情,方便開發調試。

  注意:開啓日誌彙集功能,須要從新啓動 NodeManager、ResourceManager 和 HistoryManager。

  步驟以下:

  1)配置 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>

  2)關閉 NodeManager、ResourceManager 和 HistoryManager

[hadoop@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop resourcemanager
[hadoop@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop nodemanager
[hadoop@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh stop historyserver

  3)啓動NodeManager、ResourceManager 和 HistoryManager

[hadoop@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager
[hadoop@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager
[hadoop@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver

  4)刪除HDFS 上已經存在的輸出文件

[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -rm -R /user/atguigu/output

  5)執行 WordCount 程序  

[hadoop@hadoop101 hadoop-2.7.2]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/atguigu/input /user/atguigu/output

  6)查看日誌,如圖

  http://hadoop101:19888/jobhistory   

   

 

五、配置文件說明

   Hadoop配置文件分兩類:默認配置文件和自定義配置文件,只有用戶想修改某一默認配置值時,才須要修改自定義配置文件,更改相應屬性值。

  1)默認配置文件:

要獲取的默認文件 文件存放在hadoop的jar包中的位置
core-default.xml hadoop-common-2.7.2.jar/core-default.xml
hdfs-default.xml hadoop-hdfs-2.7.2.jar/hdfs-default.xml
yarn-default.xml hadoop-yarn-common-2.7.2.jar/yarn-default.xml
mapred-default.xml hadoop-mapreduce-client-core-2.7.2.jar/mapred-default.xml

  2)自定義配置文件:

    core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四個配置文件存放在 $HADOOP_HOME/etc/hadoop 這個路徑上,用戶能夠根據項目需求從新進行修改配置。

相關文章
相關標籤/搜索