日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MapReduce的工作原理,详细解释WordCount程序

發布時間:2023/12/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MapReduce的工作原理,详细解释WordCount程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇文章主要說兩部分:簡單介紹MapReduce的工作原理;詳細解釋WordCount程序。

  • MapReduce的工作原理
  • 在《Hadoop in action》一書中,對MapReduce計算模型有了很好的描述,在這里我們直接引用過來:“

    在 Hadoop 中,用于執行 MapReduce 任務的機器角色有兩個:一個是 JobTracker;另一個是 TaskTracker, JobTracker是用于調度工作的, TaskTracker是用于執行工作的。一個 Hadoop集群中只有一臺 JobTracker。

    在分布式計算中, MapReduce 框架負責處理了并行編程中分布式存儲、工作調度、負載均衡、容錯均衡、容錯處理以及網絡通信等復雜問題,把處理過程高度抽象為兩個函數:map 和 reduce,map 負責把任務分解成多個任務, reduce 負責把分解后多任務處理的結果匯總起來。

    在 Hadoop 中,每個 MapReduce 任務都被初始化為一個 Job,每個 Job 又可以分為兩種階段: map 階段和 reduce 階段。這兩個階段分別用兩個函數表示,即 map 函數和 reduce 函數。 map 函數接收一個<key,value>形式的輸入,然后同樣產生一個<key,value>形式的中間輸出, Hadoop 函數接收一個如<key,(list ofvalues)>形式的輸入,然后對這個 value 集合進行處理,每個 reduce 產生 0 或 1 個輸出,reduce 的輸出也是<key,value>形式的。”

    從上面的解釋我們可以看出:MapReduce把對大規模數據集的操作,分發給一個主節點(master)管理下的各個分節點(slaves)共同完成,然后通過整合各個節點的中間結果,得到最終結果。用 MapReduce 來處理的數據集(或任務)必須具備這樣的特點:待處理的數據集可以分解成許多小的數據集,而且每一個小數據集都可以完全并行地進行處理。整個過程都是按照<key, value>的形式來輸入輸出。

    下圖很好的描述了MapReduce的工作過程:

    下面我們結合一個簡單的實例來說明MapReduce的內部運行流程,首先給出一個WordCount的數據流程圖:

    Step1:輸入文件file1和file2先按照TextInputFormat形式被處理成兩個InputSplit,然后輸入到兩個map中。此時map的輸入格式為<key, value>的,需要指出的是此時的key為當前的行號(位移量),value為對應行的內容;

    Step 2:Map對每行的內容進行切詞,每切下一個詞就將其組織成<word, 1>的形式輸出,注意每個word的value均為1;

    Step 3:把map的輸出進入Reduce階段,TaskTracker會接收到<word, {1,1,1,…}>形式的數據,reduce會進行統計頻數,組織成<word, sum>的形式直接輸出。

    在以上過程初始的輸入文件和最終輸出結果都是放在HDFS上的,但是中間的map程序只是寫到本地磁盤中,而不是寫到HDFS中。這是因為Map的輸出在Jpb完成后即可刪除了,因此不需要存儲到HDFS上。雖然存儲到HDFS上會比較安全,但是因為網絡傳輸會降低MapReduce任務的執行效率,因此Map的輸出文件時寫在本地磁盤的。如果Map程序在沒來得及將數據傳送給Reduce時就崩毀了,那么JobTracker只需要另選一臺機器重新執行這個Task就可以了(JobTracker是要有這個功能的,JobTracker調度任務給TaskTracker,TaskTracker執行任務的時候,會返還進行報告,JobTracker則會記錄進度的進行狀況,如果某個TaskTracker上的任務執行失敗了,那么JobTracker會把這個任務分配給另一個TaskTracker,直到任務執行完成)。

  • 詳解WordCount程序
  • WordCount程序是學習Hadoop的入門程序,我們有必要詳解一下。能夠完整的運行WordCount程序需要如下結果步驟:本地的文本文件上傳到HDFS上,WordCount程序實現MapReduce過程,輸出結果到HDFS上。

    Step 1:進入CentOS系統(上篇博文已經介紹過在centos6.0上搭建hadoop框架),在本地新建一個file文件夾。在file文件夾中,新建兩個文本文件file1和file2. file1的內容為Hello World,file2的內容為Hello Hadoop。

    Step 2:在HDFS上創建輸入文件夾,并把本地的file中文件上傳到集群的input目錄上;

    Step 3:在集群上運行WordCount程序,以input為輸入目錄,以output為輸出目錄;

    以上過程可以再centos的終端完成:

    mkdir ~/file 在本地創建file文件夾
    cd file

    echo “Hello World” > file1.txt 在file1和file2文件中存放文本,
    echo “Hello Hadoop” > file2.txt echo命令的作用是輸出內容,> file1/2就是輸出到文件中

    hadoop fs -mkdir input 在HDFS上創建輸入目錄文件夾

    hadoop fs -put ~file/file*.txt input 上傳本地file文件夾中的文件到HDFS上

    運行WordCount程序
    hadoop jar /usr/local/hadoop/hadoop-0.20.2/hadoop-0.20.2-examples.jar wordcount input output
    “hadoop jar”——執行jar命令;
    “/usr/local/hadoop/hadoop-0.20.2/hadoop-0.20.2-examples.jar”——WordCount所在的jar包的地址
    “wordcount” 程序主類名
    “input output” 輸入、輸出文件夾

    hadoop fs -cat output/part-r-00000 查看輸出文件中的內容

    細心的讀者會發現,hadoop框架下操作命令都是以hadoop fs -*的形式。下面我們就列舉一下hadoop fs -*命令:

    1,hadoop fs –fs [local | ]:聲明hadoop使用的文件系統,如果不聲明的話,使用當前配置文件配置的,按如下順序查找:hadoop jar里的hadoop-default.xml->HADOOPCONFDIR下的hadoop?default.xml?&gt;HADOOP_CONF_DIR下的hadoop-default.xml-&gt;HADOOPC?ONFD?IRhadoop?default.xml?>HADOOP_CONF_DIR下的hadoop-site.xml。使用local代表將本地文件系統作為hadoop的DFS。如果傳遞uri做參數,那么就是特定的文件系統作為DFS。
    2,hadoop fs –ls :等同于本地系統的ls,列出在指定目錄下的文件內容,支持pattern匹配。輸出格式如filename(full path) size.其中n代表replica的個數,size代表大小(單位bytes)。
    3,hadoop fs –lsr :遞歸列出匹配pattern的文件信息,類似ls,只不過遞歸列出所有子目錄信息。
    4,hadoop fs –du :列出匹配pattern的指定的文件系統空間總量(單位bytes),等價于unix下的針對目錄的du –sb /*和針對文件的du –b ,輸出格式如name(full path) size(in bytes)。
    5,hadoop fs –dus :等價于-du,輸出格式也相同,只不過等價于unix的du -sb。
    6,hadoop fs –mv :將制定格式的文件 move到指定的目標位置。當src為多個文件時,dst必須是個目錄。
    7,hadoop fs –cp :拷貝文件到目標位置,當src為多個文件時,dst必須是個目錄。
    8,hadoop fs –rm [-skipTrash] :刪除匹配pattern的指定文件,等價于unix下的rm 。
    9,hadoop fs –rmr [skipTrash] :遞歸刪掉所有的文件和目錄,等價于unix下的rm –rf 。
    10,hadoop fs –rmi [skipTrash] :等價于unix的rm –rfi 。
    11,hadoop fs –put … :從本地系統拷貝文件到DFS。
    12,hadoop fs –copyFromLocal … :等價于-put。
    13,hadoop fs –moveFromLocal … :等同于-put,只不過源文件在拷貝后被刪除。
    14,hadoop fs –get [-ignoreCrc] [-crc] :從DFS拷貝文件到本地文件系統,文件匹配pattern,若是多個文件,則dst必須是目錄。
    15,hadoop fs –getmerge :顧名思義,從DFS拷貝多個文件、合并排序為一個文件到本地文件系統。
    16,hadoop fs –cat :展示文件內容。
    17,hadoop fs –copyToLocal [-ignoreCrc] [-crc] :等價于-get。
    18,hadoop fs –mkdir :在指定位置創建目錄。
    19,hadoop fs –setrep [-R] [-w] <path/file>:設置文件的備份級別,-R標志控制是否遞歸設置子目錄及文件。
    20,hadoop fs –chmod [-R] <MODE[,MODE]…|OCTALMODE> PATH…:修改文件的權限,-R標記遞歸修改。MODE為a+r,g-w,+rwx等,OCTALMODE為755這樣。
    21,hadoop fs -chown [-R] [OWNER][:[GROUP]] PATH…:修改文件的所有者和組。-R表示遞歸。
    22,hadoop fs -chgrp [-R] GROUP PATH…:等價于-chown … :GROUP …。
    23,hadoop fs –count[-q] :計數文件個數及所占空間的詳情,輸出表格的列的含義依次為:DIR_COUNT,FILE_COUNT,CONTENT_SIZE,FILE_NAME或者如果加了-q的話,還會列出QUOTA,REMAINING_QUOTA,SPACE_QUOTA,REMAINING_SPACE_QUOTA。

    總結

    以上是生活随笔為你收集整理的MapReduce的工作原理,详细解释WordCount程序的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: jizz少妇| 国产一区2区 | 中日韩免费视频 | 日韩欧美成人精品 | 永久免费成人代码 | 青青草原在线免费观看视频 | 山村大伦淫第1部分阅读小说 | 精品国产丝袜一区二区三区乱码 | 东京干手机福利视频 | 亚洲激情a| 美女激情网 | 与亲女洗澡时伦了毛片 | 国产三级按摩推拿按摩 | 一级久久久久 | 色老板精品凹凸在线视频观看 | 久久黄视频 | 天天玩天天干 | 中文成人无字幕乱码精品区 | 亚洲精品在线不卡 | 看av在线 | 人人免费操 | 怡红院av在线 | 免费在线播放视频 | 欧美揉bbbbb揉bbbbb | 葵司在线视频 | 天天成人| 免费看污的网站 | 欧美黑人性生活 | 欧美不在线| 免费公开在线视频 | 碰碰97 | 日韩福利一区 | 色中色综合 | 亚洲国产影院 | fc2ppv色の美マンに中出し | 中文字幕无码乱码人妻日韩精品 | 久久色在线视频 | 亚洲精品国产乱伦 | 另类激情 | 国产黄大片 | 国产一二在线 | 青青草原av在线 | 综合色婷婷一区二区亚洲欧美国产 | 91在线视频观看 | 黄色国产一区 | 91黑丝视频| 毛片无遮挡| 二区三区免费 | 高潮一区二区 | 中文字字幕码一二三区 | 91精品人妻一区二区三区 | 日本十八禁视频无遮挡 | 不许穿内裤随时挨c调教h苏绵 | 午夜婷婷| 伊人视频在线观看 | 国产精品--色哟哟 | 欧美日韩高清 | 国产精品久久久久久网站 | 国产乱xxⅹxx国语对白 | 成人毛片在线视频 | 免费一级肉体全黄毛片 | 茄子视频懂你更多在线观看 | 超污网站在线观看 | 亚洲av综合av一区二区三区 | 一区二区成人av | 动漫av网站免费观看 | 午夜精品在线观看 | 三级色网站 | 国产超碰人人模人人爽人人添 | 久久视频免费在线观看 | 性欢交69国产精品 | 性欧美大战久久久久久久 | 欧美老熟妇乱大交xxxxx | 亚洲一区欧美激情 | 日日夜夜精品免费视频 | 亚洲av无码乱码在线观看富二代 | 一级片成人 | 午夜羞羞网站 | www国产亚洲精品久久网站 | 中文字幕av日韩 | 日本一本高清视频 | 99久久久久成人国产免费 | 欧美激情成人在线 | 亚洲综合日韩精品欧美综合区 | 91丨九色丨蝌蚪丨丝袜 | 姑娘第5集在线观看免费好剧 | 操人视频在线观看 | 啪啪免费网站 | 男女久久久 | 亚洲国产在 | 日日操日日 | 奇米影视首页 | 2018狠狠干| 久久精彩免费视频 | 久久这里只有精品9 | 欧美日韩精品免费 | 幸福宝在线观看 | 亚洲精品乱码久久久久久久 | 天堂网va |