久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

java大數(shù)據(jù)最全課程學(xué)習(xí)筆記(1)--Hadoop簡介和安裝及偽分布式

 路人甲Java 2022-03-12

目前CSDN,博客園,簡書同步發(fā)表中,更多精彩歡迎訪問我的gitee pages

Hadoop簡介和安裝及偽分布式

大數(shù)據(jù)概念

大數(shù)據(jù)概論

大數(shù)據(jù)(Big Data): 指無法在一定時(shí)間范圍內(nèi)用常規(guī)軟件工具進(jìn)行捕捉,管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強(qiáng)的決策力,洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量,高增長率和多樣化的信息資產(chǎn).

  • 主要解決海量數(shù)據(jù)的存儲(chǔ)和海量數(shù)據(jù)的分析計(jì)算問題.

按順序給出數(shù)據(jù)存儲(chǔ)單位:bit,Byte,KB,MB,GB,TB,PB,EB,ZB,YB,BB,NB,DB.

1Byte =8bit 1KB=1024Byte 1MB=1024KB 1GB=1024MB 1TB=1024GB 1PB=1024TB

大數(shù)據(jù)特點(diǎn)(4V)

  1. Volume(大量):

    截至目前,人類生產(chǎn)的所有印刷材料的數(shù)據(jù)量是200PB,而歷史上全人類總共說過的話的數(shù)據(jù)量大約是5EB.當(dāng)前,典型個(gè)人計(jì)算機(jī)硬盤的容量為TB量級(jí),而一些大企業(yè)的數(shù)據(jù)量已經(jīng)接近EB量級(jí).

  2. Vekocity(高速):

    這是大數(shù)據(jù)區(qū)分于傳統(tǒng)數(shù)據(jù)挖掘的最顯著特征.根據(jù)IDC的"數(shù)字宇宙"的報(bào)告,預(yù)計(jì)到2020年,全球數(shù)據(jù)使用量將達(dá)到35.2ZB.在如此海量的數(shù)據(jù)面前,處理數(shù)據(jù)的效率就是企業(yè)的生命.

  3. Variety(多樣):

    這種類型的多樣性也讓數(shù)據(jù)被分為結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù).相對于以往便于存儲(chǔ)的以數(shù)據(jù)庫/文本為主的結(jié)構(gòu)化數(shù)據(jù),非結(jié)構(gòu)化數(shù)據(jù)越來越多,包括網(wǎng)絡(luò)日志,音頻,視頻,圖片,地理位置信息等,這些多類型的數(shù)據(jù)對數(shù)據(jù)的處理能力提出了更高要求.

  4. Value(低價(jià)值密度):

    價(jià)值密度的高低與數(shù)據(jù)總量的大小成反比.如何快速對有價(jià)值數(shù)據(jù)"提純"成為目前大數(shù)據(jù)背景下待解決的難題.

大數(shù)據(jù)部門組織結(jié)構(gòu)

大數(shù)據(jù)部門組織結(jié)構(gòu),適用于大中型企業(yè).

從Hadoop框架討論大數(shù)據(jù)生態(tài)

Hadoop是什么

hadoop的初衷是采用大量的廉價(jià)機(jī)器,組成一個(gè)集群!完成大數(shù)據(jù)的存儲(chǔ)和計(jì)算!

Hadoop三大發(fā)行版本

Hadoop三大發(fā)行版本:Apache,、Cloudera,、Hortonworks,。

Apache版本最原始(最基礎(chǔ))的版本,對于入門學(xué)習(xí)最好,。

Cloudera在大型互聯(lián)網(wǎng)企業(yè)中用的較多,。

Hortonworks文檔較好,。

Hadoop的優(yōu)勢(4高)

  1. 高可靠性

    Hadoop底層維護(hù)多個(gè)數(shù)據(jù)副本,所以即使Hadoop某個(gè)計(jì)算元素或存儲(chǔ)出現(xiàn)故障,也不會(huì)導(dǎo)致數(shù)據(jù)的丟失.

  2. 高擴(kuò)展性

    在集群間分配任務(wù)數(shù)據(jù),可方便的擴(kuò)展數(shù)以千計(jì)的節(jié)點(diǎn).

  3. 高效性

    在MapReduce的思想下,Hadoop是并行工作的,以加快任務(wù)處理速度.

  4. 高容錯(cuò)性

    能夠自動(dòng)將失敗的任務(wù)重新分配

Hadoop組成(面試重點(diǎn))

  • Hadoop1.x
    • HDFS: 負(fù)責(zé)大數(shù)據(jù)的存儲(chǔ)
    • common: HDFS和MR共有的常用的工具包模塊
    • MapReduce: 負(fù)責(zé)計(jì)算,負(fù)責(zé)計(jì)算資源的申請的調(diào)度
  • 完成大數(shù)據(jù)的計(jì)算
    • 寫程序.程序需要復(fù)合計(jì)算框架的要求
      • java-->main-->運(yùn)行
      • MapReduce(編程模型)-->Map-->Reducer
    • 運(yùn)行程序.申請計(jì)算資源(CPU+內(nèi)存,磁盤IO,網(wǎng)絡(luò)IO)
      • java-->JVM-->os-->申請計(jì)算資源
      • 1.x: MapReduce(編程模型)-->JobTracker-->JVM-->申請計(jì)算資源
      • 2.x: MapReduce(編程模型)-->jar-->運(yùn)行時(shí),將jar包中的任務(wù),提交給YARN,和YARN進(jìn)行通信
        • 由YARN中的組件-->JVM-->申請計(jì)算資源
  • 1.x和2.x的區(qū)別是將資源調(diào)度和管理進(jìn)行分離!由統(tǒng)一的資源調(diào)度平臺(tái)YARN進(jìn)行大數(shù)據(jù)計(jì)算資源的調(diào)度!提升了Hadoop的通用性!Hadoop搭建的集群中的計(jì)算資源,不僅可以運(yùn)行Hadoop中的MR程序!也可以運(yùn)行其他計(jì)算框架的程序!
  • 由于MR的低效性,出現(xiàn)了許多更為高效的計(jì)算框架!例如:Tez,Storm,Spark,Flink

HDFS架構(gòu)概述

HDFS: 負(fù)責(zé)大數(shù)據(jù)的存儲(chǔ)

  • 核心進(jìn)程(必須進(jìn)程):

    • NameNode(1個(gè)):存儲(chǔ)文件的元數(shù)據(jù).如文件名,文件目錄結(jié)構(gòu),文件屬性(生成時(shí)間,副本數(shù),文件權(quán)限),以及每個(gè)文件的塊列表和塊所在的DataNode等.

      • 職責(zé)

        接收客戶端的請求!

        接收DN的請求!

        向DN分配任務(wù)!

    • DataNode(N個(gè)):在本地文件系統(tǒng)存儲(chǔ)文件塊數(shù)據(jù),以及塊數(shù)據(jù)的校驗(yàn)和.

      • 職責(zé)

        負(fù)責(zé)接收NN分配的任務(wù)!

        負(fù)責(zé)數(shù)據(jù)塊(block)的管理(讀,寫)!

  • 可選進(jìn)程:

    • Secondary Namenode(N個(gè)):用來監(jiān)控HDFS狀態(tài)的輔助后臺(tái)程序,每隔一段時(shí)間獲取HDFS元數(shù)據(jù)的快照.

MapReduce架構(gòu)概述

MapReduce將計(jì)算過程分為兩個(gè)階段:Map和Reduce

Map階段并行處理輸入數(shù)據(jù)

Reduce階段對Map結(jié)果進(jìn)行匯總

  • MapReduce(編程規(guī)范): 程序中有Map(簡單處理)和Reducer(合并)
  • 遵循MapReduce的編程規(guī)范編寫的程序打包后,被稱為一個(gè)Job(任務(wù))
  • Job需要提交到Y(jié)ARN上,向YARN申請計(jì)算資源,運(yùn)行Job中的Task(進(jìn)程)
  • Job會(huì)先創(chuàng)建一個(gè)進(jìn)行MRAppMaster(mapReduce應(yīng)用管理者),由MRMaster向YARN申請資源!MRAppMaster負(fù)責(zé)監(jiān)控Job中各個(gè)Task運(yùn)行情況,進(jìn)行容錯(cuò)管理!

YARN架構(gòu)概述

YARN負(fù)責(zé)集群中所有計(jì)算資源的管理和調(diào)度

  • 常見進(jìn)程

    • ResourceManager(1個(gè)): 負(fù)責(zé)整個(gè)集群所有資源的管理,!

      • 職責(zé)

        負(fù)責(zé)接受客戶端的提交Job的請求,!
        負(fù)責(zé)向NM分配任務(wù),!
        負(fù)責(zé)接受NM上報(bào)的信息!

    • NodeManager(N個(gè)): 負(fù)責(zé)單臺(tái)計(jì)算機(jī)所有資源的管理,!

      • 職責(zé)

        負(fù)責(zé)和RM進(jìn)行通信,,上報(bào)本機(jī)中的可用資源!
        負(fù)責(zé)領(lǐng)取RM分配的任務(wù),!
        負(fù)責(zé)為Job中的每個(gè)Task分配計(jì)算資源,!

    • Container(容器)

      NodeManager為Job的某個(gè)Task分配了2個(gè)CPU和2G內(nèi)存的計(jì)算資源!

      為了防止當(dāng)前Task在使用這些資源期間,,被其他的task搶占資源!

      將計(jì)算資源,,封裝到一個(gè)Container中,,在Container中的資源,會(huì)被暫時(shí)隔離,!無法被其他進(jìn)程所搶占,!

      當(dāng)前Task運(yùn)行結(jié)束后,當(dāng)前Container中的資源會(huì)被釋放,!允許其他task來使用,!

大數(shù)據(jù)技術(shù)生態(tài)體系

  • 圖中涉及的技術(shù)名詞解釋如下:

    1. Sqoop:Sqoop是一款開源的工具,主要用于在Hadoop,、Hive與傳統(tǒng)的數(shù)據(jù)庫(MySql)間進(jìn)行數(shù)據(jù)的傳遞,,可以將一個(gè)關(guān)系型數(shù)據(jù)庫(例如 :MySQL,Oracle 等)中的數(shù)據(jù)導(dǎo)進(jìn)到Hadoop的HDFS中,,也可以將HDFS的數(shù)據(jù)導(dǎo)進(jìn)到關(guān)系型數(shù)據(jù)庫中,。

    2. Flume:Flume是Cloudera提供的一個(gè)高可用的,高可靠的,,分布式的海量日志采集,、聚合和傳輸?shù)南到y(tǒng),F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,,用于收集數(shù)據(jù),;同時(shí),F(xiàn)lume提供對數(shù)據(jù)進(jìn)行簡單處理,,并寫到各種數(shù)據(jù)接受方(可定制)的能力,。

    3. Kafka:Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),有如下特性:

      1. 通過O(1)的磁盤數(shù)據(jù)結(jié)構(gòu)提供消息的持久化,,這種結(jié)構(gòu)對于即使數(shù)以TB的消息存儲(chǔ)也能夠保持長時(shí)間的穩(wěn)定性能,。
      2. 高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒數(shù)百萬的消息。
      3. 支持通過Kafka服務(wù)器和消費(fèi)機(jī)集群來分區(qū)消息,。
      4. 支持Hadoop并行數(shù)據(jù)加載,。
    4. Storm:Storm用于“連續(xù)計(jì)算”,,對數(shù)據(jù)流做連續(xù)查詢,在計(jì)算時(shí)就將結(jié)果以流的形式輸出給用戶,。

    5. Spark:Spark是當(dāng)前最流行的開源大數(shù)據(jù)內(nèi)存計(jì)算框架,。可以基于Hadoop上存儲(chǔ)的大數(shù)據(jù)進(jìn)行計(jì)算,。

    6. Oozie:Oozie是一個(gè)管理Hdoop作業(yè)(job)的工作流程調(diào)度管理系統(tǒng),。

    7. Hbase:HBase是一個(gè)分布式的、面向列的開源數(shù)據(jù)庫,。HBase不同于一般的關(guān)系數(shù)據(jù)庫,,它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫。

    8. Hive:Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉庫工具,,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,,并提供簡單的SQL查詢功能,可以將SQL語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行,。 其優(yōu)點(diǎn)是學(xué)習(xí)成本低,,可以通過類SQL語句快速實(shí)現(xiàn)簡單的MapReduce統(tǒng)計(jì),不必開發(fā)專門的MapReduce應(yīng)用,,十分適合數(shù)據(jù)倉庫的統(tǒng)計(jì)分析,。

    9. R語言:R是用于統(tǒng)計(jì)分析、繪圖的語言和操作環(huán)境,。R是屬于GNU系統(tǒng)的一個(gè)自由,、免費(fèi)、源代碼開放的軟件,,它是一個(gè)用于統(tǒng)計(jì)計(jì)算和統(tǒng)計(jì)制圖的優(yōu)秀工具,。

    10. Mahout:Apache Mahout是個(gè)可擴(kuò)展的機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘庫。

    11. ZooKeeper:Zookeeper是Google的Chubby一個(gè)開源的實(shí)現(xiàn),。它是一個(gè)針對大型分布式系統(tǒng)的可靠協(xié)調(diào)系統(tǒng),,提供的功能包括:配置維護(hù)、名字服務(wù),、 分布式同步,、組服務(wù)等。ZooKeeper的目標(biāo)就是封裝好復(fù)雜易出錯(cuò)的關(guān)鍵服務(wù),,將簡單易用的接口和性能高效,、功能穩(wěn)定的系統(tǒng)提供給用戶。

Hadoop運(yùn)行環(huán)境搭建(開發(fā)重點(diǎn))

虛擬機(jī)環(huán)境準(zhǔn)備

  1. 克隆虛擬機(jī)

  2. 修改克隆虛擬機(jī)的靜態(tài)IP

  3. 修改主機(jī)名

  4. 關(guān)閉防火墻

  5. 創(chuàng)建atguigu用戶

    useradd atguigu
    passwd atguigu
    
  6. 配置atguigu用戶具有root權(quán)限(詳見大數(shù)據(jù)技術(shù)之Linux)

    vim /etc/sudoers
    
    • 找到root所在的位置,加入atguigu ALL=(ALL) NOPASSWD: ALL

    root ALL=(ALL) ALL
    atguigu ALL=(ALL) NOPASSWD: ALL

  7. 在/opt目錄下創(chuàng)建文件

    sudo mkdir module
    sudo mkdir soft
    
    • 將/opt目錄下創(chuàng)建的soft目錄和module目錄的所屬主修改為atguigu
    sudo chown -R atguigu:atguigu /opt/soft /opt/module
    

安裝JDK

  • 安裝過程(略)

  • 配置JDK環(huán)境變量

    vim /etc/profile
    
    • Shift+G到最后一行新增
    JAVA_HOME=/opt/module/jdk1.8.0_121
    PATH=$PATH:$JAVA_HOME/bin
    export JAVA_HOME PATH
    
    • wq保存退出后,讓修改后的文件生效
    source /etc/profile
    
    • 測試JDK是否安裝成功
    java -version
    

    java version "1.8.0_144"

安裝Hadoop

  • 安裝過程(略)

  • 將Hadoop添加到環(huán)境變量

    最后文件內(nèi)容為:

    JAVA_HOME=/opt/module/jdk1.8.0_121
    HADOOP_HOME=/opt/module/hadoop-2.7.2
    PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    export JAVA_HOME PATH HADOOP_HOME
    

Hadoop目錄結(jié)構(gòu)

  1. 查看Hadoop目錄結(jié)構(gòu)

  1. 重要目錄

    1. bin目錄:存放對Hadoop相關(guān)服務(wù)(HDFS,YARN)進(jìn)行操作的腳本
    2. etc目錄:Hadoop的配置文件目錄,,存放Hadoop的配置文件
    3. lib目錄:存放Hadoop的本地庫(對數(shù)據(jù)進(jìn)行壓縮解壓縮功能)
    4. sbin目錄:存放啟動(dòng)或停止Hadoop相關(guān)服務(wù)的腳本
    5. share目錄:存放Hadoop的依賴jar包,、文檔、和官方案例

Hadoop運(yùn)行模式

Hadoop運(yùn)行模式包括:本地模式,、偽分布式模式以及完全分布式模式,。

Hadoop官方網(wǎng)站:http://hadoop./

本地運(yùn)行模式

官方Grep案例

  1. 創(chuàng)建在hadoop-2.7.2文件下面創(chuàng)建一個(gè)input文件夾
[atguigu@hadoop101 hadoop-2.7.2]$ mkdir input
  1. 將Hadoop的xml配置文件復(fù)制到input
[atguigu@hadoop101 hadoop-2.7.2]$ cp etc/hadoop/*.xml input
  1. 執(zhí)行share目錄下的MapReduce程序
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hadoop jar

share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
  1. 查看輸出結(jié)果
[atguigu@hadoop101 hadoop-2.7.2]$ cat output/*

官方WordCount案例

  1. 創(chuàng)建在hadoop-2.7.2文件下面創(chuàng)建一個(gè)wcinput文件夾
 [atguigu@hadoop101 hadoop-2.7.2]$ mkdir wcinput
  1. 在wcinput文件下創(chuàng)建一個(gè)wc.input文件
[atguigu@hadoop101 hadoop-2.7.2]$ cd wcinput
[atguigu@hadoop101 wcinput]$ touch wc.input
  1. 編輯wc.input文件
[atguigu@hadoop101 wcinput]$ vi wc.input
  • 在文件中輸入如下內(nèi)容
hadoop yarn
hadoop mapreduce
atguigu
atguigu
  • 保存退出::wq
  1. 回到Hadoop目錄/opt/module/hadoop-2.7.2

  2. 執(zhí)行程序

[atguigu@hadoop101 hadoop-2.7.2]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput
  1. 查看結(jié)果

    1.命令查看

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

? 2.瀏覽器查看

? http://192.168.1.100:50070

偽分布式運(yùn)行模式

啟動(dòng)HDFS并運(yùn)行MapReduce程序

  1. 分析

    1. 配置集群

    2. 啟動(dòng),、測試集群增、刪,、查

    3. 執(zhí)行WordCount案例

  2. 執(zhí)行步驟

    1. 配置集群

      1. 配置: hadoop-env.sh

        • Linux系統(tǒng)中獲取JDK的安裝路徑:

          [atguigu@ hadoop101 ~]# echo $JAVA_HOME
          /opt/module/jdk1.8.0_144
          
        • 修改JAVA_HOME 路徑:

          export JAVA_HOME=/opt/module/jdk1.8.0_144
          
      2. 配置: core-site.xml

        <!-- 指定HDFS中NameNode的地址 -->
        <property>
        <name>fs.defaultFS</name>
            <value>hdfs://mypc:9000</value>
        </property>
        <!-- 指定Hadoop運(yùn)行時(shí)產(chǎn)生文件的存儲(chǔ)目錄 -->
        <property>
        	<name>hadoop.tmp.dir</name>
        	<value>/opt/module/hadoop-2.7.2/data/tmp</value>
        </property>
        
      3. 配置: hdfs-site.xml

        <!-- 指定HDFS副本的數(shù)量 -->
        <property>
        	<name>dfs.replication</name>
        	<value>1</value>
        </property>
        
    2. 啟動(dòng)集群

      1. 格式化NameNode(第一次啟動(dòng)時(shí)格式化,,以后就不要總格式化)

        atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs namenode -format
        
      2. 啟動(dòng)NameNode

        [atguigu@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode
        
      3. 啟動(dòng)DataNode

        [atguigu@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start datanode
        
    3. 查看集群

      1. 查看是否啟動(dòng)成功

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

        注意:jps是JDK中的命令,不是Linux命令,。不安裝JDK不能使用jps

      2. web端查看HDFS文件系統(tǒng)

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

      3. 查看產(chǎn)生的Log日志

        說明:在企業(yè)中遇到Bug時(shí),,經(jīng)常根據(jù)日志提示信息去分析問題、解決Bug,。

        • 當(dāng)前目錄:/opt/module/hadoop-2.7.2/logs

          [atguigu@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
          [atguigu@hadoop101 logs]# cat hadoop-atguigu-datanode-hadoop101.log
          
      4. 思考:為什么不能一直格式化NameNode,,格式化NameNode,要注意什么,?

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

        注意:格式化NameNode,,會(huì)產(chǎn)生新的集群id,導(dǎo)致NameNode和DataNode的集群id不一致,集群找不到已往數(shù)據(jù),。所以,格式NameNode時(shí),,一定要先刪除data數(shù)據(jù)和log日志,,然后再格式化NameNode。

    4. 操作集群

      1. 在HDFS文件系統(tǒng)上創(chuàng)建一個(gè)input文件夾
      [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -mkdir -p /user/atguigu/input
      
      1. 將測試文件內(nèi)容上傳到文件系統(tǒng)上
      [atguigu@hadoop101 hadoop-2.7.2]$bin/hdfs dfs -put wcinput/wc.input /user/atguigu/input/
      
      1. 查看上傳的文件是否正確
      [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -ls  /user/atguigu/input/
      [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat  /user/atguigu/ input/wc.input
      
      1. 運(yùn)行MapReduce程序
      [atguigu@hadoop101 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/atguigu/input/ /user/atguigu/output
      
      1. 查看輸出結(jié)果

        • 命令行查看:

          [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/atguigu/output/*
          
        • 瀏覽器查看:

      1. 將測試文件內(nèi)容下載到本地
      [atguigu@hadoop101 hadoop-2.7.2]$ hdfs dfs -get /user/atguigu/output/part-r-00000 ./wcoutput/
      
      1. 刪除輸出結(jié)果
      [atguigu@hadoop101 hadoop-2.7.2]$ hdfs dfs -rm -r /user/atguigu/output
      

YARN上運(yùn)行MapReduce 程序

  1. 分析

    1. 配置集群YARN上運(yùn)行
    2. 啟動(dòng),、測試集群增,、刪、查
    3. 在YARN上執(zhí)行WordCount案例
  2. 執(zhí)行步驟

    1. 配置集群

      1. 配置yarn-env.sh

        配置一下JAVA_HOME

        export JAVA_HOME=/opt/module/jdk1.8.0_144
        
      2. 配置yarn-site.xml

        <!-- reducer獲取數(shù)據(jù)的方式 -->
        <property>
         		<name>yarn.nodemanager.aux-services</name>
         		<value>mapreduce_shuffle</value>
        </property>
        <!-- 指定YARN的ResourceManager的地址 -->
        <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop101</value>
        </property>
        
      3. 配置:mapred-env.sh

        配置一下JAVA_HOME

        export JAVA_HOME=/opt/module/jdk1.8.0_144
        
      4. 配置: (對mapred-site.xml.template重新命名為) mapred-site.xml

        [atguigu@hadoop101 hadoop]$ mv mapred-site.xml.template mapred-site.xml
        [atguigu@hadoop101 hadoop]$ vi mapred-site.xml
        
        <!-- 指定MR運(yùn)行在YARN上 -->
        <property>
        		<name>mapreduce.framework.name</name>
        		<value>yarn</value>
        </property>
        
    2. 啟動(dòng)集群

      1. 啟動(dòng)前必須保證NameNode和DataNode已經(jīng)啟動(dòng)

      2. 啟動(dòng)ResourceManager

        [atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager
        
      3. 啟動(dòng)NodeManager

        [atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager
        
    3. 集群操作

      1. YARN的瀏覽器頁面查看

        http://192.168.1.100:8088/cluster

      1. 刪除文件系統(tǒng)上的output文件

        [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -rm -R /user/atguigu/output
        
      2. 執(zhí)行MapReduce程序

        [atguigu@hadoop101 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/atguigu/input  /user/atguigu/output
        
      3. 查看運(yùn)行結(jié)果

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

配置歷史服務(wù)器

為了查看程序的歷史運(yùn)行情況,,需要配置一下歷史服務(wù)器

  1. 配置mapred-site.xml
[atguigu@hadoop101 hadoop]$ vi mapred-site.xml

在該文件里面增加如下配置

<property>
<name>mapreduce.jobhistory.address</name>
<value>mypc:10020</value>
</property>
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>mypc:19888</value>
</property>
<!--第三方框架使用yarn計(jì)算的日志聚集功能 -->
<property>
        <name>yarn.log.server.url</name>
        <value>http://mypc:19888/jobhistory/logs</value>
</property>
  1. 啟動(dòng)歷史服務(wù)器

    [atguigu@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver
    
  2. 查看歷史服務(wù)器是否啟動(dòng)

    atguigu@hadoop101 hadoop-2.7.2]$ jps
    
  3. 查看JobHistory

    http://192.168.1.100:19888/jobhistory

配置日志的聚集

日志聚集概念:應(yīng)用運(yùn)行完成以后,,將程序運(yùn)行日志信息上傳到HDFS系統(tǒng)上。

日志聚集功能好處:可以方便的查看到程序運(yùn)行詳情,,方便開發(fā)調(diào)試,。

注意:開啟日志聚集功能,需要重新啟動(dòng)NodeManager ,、ResourceManager和HistoryManager,。

  • 開啟日志聚集功能具體步驟如下:
  1. 配置yarn-site.xml

    [atguigu@hadoop101 hadoop]$ vi yarn-site.xml
    

    在該文件里面增加如下配置

    <!-- 日志聚集功能使能 -->
    <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
    </property>
    <!-- 日志保留時(shí)間設(shè)置7天 -->
    <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
    </property>
    
  2. 關(guān)閉NodeManager 、ResourceManager和HistoryManager

    [atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop resourcemanager
    [atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop nodemanager
    [atguigu@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh stop historyserver
    
  3. 啟動(dòng)NodeManager ,、ResourceManager和HistoryManager

    [atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager
    [atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager
    [atguigu@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver
    
  4. 刪除HDFS上已經(jīng)存在的輸出文件

    [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -rm -R /user/atguigu/output
    
  5. 執(zhí)行WordCount程序

    [atguigu@hadoop101 hadoop-2.7.2]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/atguigu/input /user/atguigu/output
    
    • 我wc1里有文件,wc3不存在

    • 所以我執(zhí)行了一個(gè)簡單的測試命令

    hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /wc1 /wc3

  6. 查看日志

    http://192.168.1.100:19888/jobhistory

配置文件說明及其他注意事項(xiàng)

配置文件說明

Hadoop配置文件分兩類:默認(rèn)配置文件和自定義配置文件,,只有用戶想修改某一默認(rèn)配置值時(shí),才需要修改自定義配置文件,,更改相應(yīng)屬性值,。

  • 默認(rèn)配置文件

    要獲取的默認(rèn)文件 文件存放在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
  • 自定義配置文件

    core-site.xml、hdfs-site.xml,、yarn-site.xml,、mapred-site.xml四個(gè)配置文件存放在$HADOOP_HOME/etc/hadoop這個(gè)路徑上,,用戶可以根據(jù)項(xiàng)目需求重新進(jìn)行修改配置。

其他注意事項(xiàng)

  • 本次學(xué)習(xí)使用的虛擬機(jī)系統(tǒng)是centOS6.8,和生產(chǎn)環(huán)境普遍使用的centOS7.X的部分命令有差異,請注意識(shí)別!

  • 在Hadoop中啟動(dòng)多種不同類型的進(jìn)程.例如NN,DN,,RM,NM,,這些進(jìn)程需要進(jìn)行通信!在通信時(shí),,常用主機(jī)名進(jìn)行通信,!

    • 在192.168.1.100機(jī)器上的DN進(jìn)程,希望訪問192.168.1.104機(jī)器的NN進(jìn)程,!需要在集群的每臺(tái)機(jī)器上,,配置集群中所有機(jī)器的host映射!

    • 配置:

      Linux: /etc/hosts
      Windows: C:\Windows\System32\drivers\etc\hosts

    • 不配報(bào)錯(cuò):DNS映射異常,,HOST映射異常

    • Linux配置完hosts文件后一定要重啟網(wǎng)絡(luò)配置!!!

      service network restart

  • 注意權(quán)限

    • hadoop框架在運(yùn)行需要產(chǎn)生很多數(shù)據(jù)(日志),,數(shù)據(jù)的保存目錄,必須讓當(dāng)前啟動(dòng)hadoop進(jìn)程的用戶擁有寫權(quán)限,!
  • 關(guān)閉防火墻,,設(shè)置開機(jī)不自啟動(dòng)

    service iptables stop
    chkconfig iptables off

  • HDFS的運(yùn)行模式的參數(shù)設(shè)置

    fs.defaultFS在core-default.xml中!

    • 本地模式(在本機(jī)上使用HDFS,,使用的就是本機(jī)的文件系統(tǒng))

      fs.defaultFS=file:///(默認(rèn))

    • 分布式模式

      fs.defaultFS=hdfs://

  • 提交任務(wù)的命令

    hadoop jar jar包 主類名 參數(shù){多個(gè)輸入目錄,,一個(gè)輸出目錄}

    輸入目錄中必須全部是文件!
    輸出目錄必須不存在,!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多