What are the Hadoop MapReduce concepts?

What do you mean by Map-Reduce programming?

MapReduce is a programming model designed for processing large volumes of data in parallel by dividing the work into a set of independent tasks.

MapReduce პროგრამირების მოდელი არის შთაგონებული ფუნქციური ენებზე და მიზნად მონაცემთა ინტენსიური გაანგარიშებები. შეტანის ფორმატი განაცხადის სპეციფიკური, და მითითებული მომხმარებლის მიერ. გამომავალი არის კომპლექტი <key,ღირებულება> pairs. მომხმარებლის გამოხატავს ალგორითმის გამოყენებით ორი ფუნქცია, რუკა და შემცირება. რუკა ფუნქცია გამოყენებული შემავალი მონაცემების და აწარმოებს სია შუალედური <key,ღირებულება> pairs. შემცირება ფუნქცია მიმართა ყველა შუალედური წყვილი იგივე გასაღები. ეს, როგორც წესი, ახორციელებს რამდენიმე სახის შერწყმის ოპერაცია და აწარმოებს ნულოვანი ან მეტი გამომავალი წყვილი. ბოლოს, გამომავალი წყვილი დალაგებულია მათი ძირითადი ღირებულება. იმ მარტივი ფორმა MapReduce პროგრამები, პროგრამისტი უზრუნველყოფს მხოლოდ Map ფუნქცია. ყველა სხვა ფუნქცია, მათ შორის, დაჯგუფება შუალედური წყვილი რომელთაც აქვთ იგივე გასაღები და საბოლოო დახარისხება, არ არის გათვალისწინებული runtime.

ფაზის MapReduce მოდელი

ზედა დონის ერთეული მუშაობის MapReduce არის სამუშაო. სამუშაო როგორც წესი, აქვს რუკა და შეამციროს ეტაპი, მიუხედავად იმისა, რომ შეამციროს ეტაპი შეიძლება გამოტოვებული. For example, განიხილოს MapReduce სამუშაო, რომელიც ითვლის რაოდენობა ჯერ თითოეული სიტყვა გამოიყენება მთელი რიგი დოკუმენტები. რუკაზე ეტაპი ითვლის სიტყვა თითოეულ დოკუმენტში, მაშინ შეამციროს ეტაპი აგრეგატები პოსტი-დოკუმენტის მონაცემების სიტყვას აქვს პორტატული მთელი კოლექცია.

დროს რუკა ეტაპი, შეყვანის მონაცემები დაყოფილია შეყვანის ყოფს ანალიზი by map ამოცანების პარალელურად მთელს Hadoop კასეტური. სტანდარტულად, MapReduce ფარგლებში იღებს შეყვანის მონაცემების Hadoop განაწილებული ფაილური სისტემა (HDFS).

შემცირება ეტაპი იყენებს შედეგების რუკა ამოცანები, როგორც შეყვანის კომპლექტი პარალელურად შემცირება ამოცანები. შემცირება ამოცანები კონსოლიდაცია მონაცემების საბოლოო შედეგები. სტანდარტულად, MapReduce ფარგლებში მაღაზიებში შედეგების HDFS.

მიუხედავად იმისა, რომ შეამციროს მდგომარეობა დამოკიდებულია გამომავალი რუკაზე ეტაპი, რუკაზე და შეამციროს დამუშავება არ არის აუცილებელი, რიგითი. ეს არის, შეამციროს ამოცანები შეიძლება დაიწყოს როგორც კი რაიმე რუკა ამოცანა ასრულებს. არ არის აუცილებელი, ყველა რუკა ამოცანები დაასრულებს, სანამ რაიმე შემცირების ამოცანა შეიძლება დაიწყოს.

MapReduce მუშაობს ძირითადი ღირებულების წყვილი. Conceptually, MapReduce სამუშაოს იღებს კომპლექტი შეყვანის ძირითადი ღირებულება წყვილი და აწარმოებს კომპლექტი გამომავალი ძირითადი ღირებულების წყვილი გავლით მონაცემების მეშვეობით რუკა და ამცირებს ფუნქციები. რუკაზე ამოცანების წარმოების შუალედური კომპლექტი ძირითადი ღირებულების წყვილი რომ შეამციროს ამოცანები იყენებს როგორც შეყვანის.

გასაღებები რუკა გამომავალი წყვილი არ უნდა იყოს უნიკალური. შორის რუკა დამუშავება და შეამციროს დამუშავება, როგორც shuffle ნაბიჯი ჯიშები ყველა რუკა გამომავალი ღირებულებების იგივე გასაღები ერთ შეამციროს შეყვანის (key, ღირებულების ჩამონათვალი) წყვილი, სადაც "მნიშვნელობა’ ჩამოთვლილია ყველა ღირებულებების გაზიარების იგივე გასაღები. Thus, შეყვანის რომ შეამციროს ამოცანაა რეალურად კომპლექტი (key, ღირებულების ჩამონათვალი) pairs.

მიუხედავად იმისა, რომ თითოეული კომპლექტი ძირითადი ღირებულების წყვილი არის ერთგვაროვანი, საკვანძო მნიშვნელობის წყვილის თითოეული ნაბიჯი არ უნდა აქვს იგივე ტიპის. For example, საკვანძო მნიშვნელობის წყვილის შეყვანის მითითებული (KV1) შეიძლება (string, string) pairs, რუკაზე ეტაპი მწარმოებელ (string, რიცხვი) წყვილი როგორც შუალედური შედეგები (kv2), და შეამციროს ეტაპი მწარმოებელ (რიცხვი, string) წყვილი საბოლოო შედეგები (KV3).

გასაღებები რუკა გამომავალი წყვილი არ უნდა იყოს უნიკალური. შორის რუკა დამუშავება და შეამციროს დამუშავება, როგორც shuffle ნაბიჯი ჯიშები ყველა რუკა გამომავალი ღირებულებების იგივე გასაღები ერთ შეამციროს შეყვანის (key, ღირებულების ჩამონათვალი) წყვილი, სადაც "მნიშვნელობა’ ჩამოთვლილია ყველა ღირებულებების გაზიარების იგივე გასაღები. Thus, შეყვანის რომ შეამციროს ამოცანაა რეალურად კომპლექტი (key, ღირებულების ჩამონათვალი) pairs.

მაგალითი დემონსტრირებას MapReduce ცნებები

მაგალითი ადასტურებს ძირითადი MapReduce კონცეფცია გაანგარიშების ნომერი კლების ყოველი სიტყვა კომპლექტი ტექსტური ფაილი.

MapReduce შეყვანის მონაცემები დაყოფილია შეყვანის ყოფს, და ყოფს, რომლებიც იყოფა შეყვანის ძირითადი ღირებულება წყვილი. ამ მაგალითში, შეყვანის მონაცემები კომპლექტი არის ორი დოკუმენტი, document1 და document2. InputFormat ქვეკლასით ყოფს მონაცემები კომპლექტი ერთ გაყოფილი თითო დოკუმენტი, ამისთვის სულ 2 ყოფს:

შენიშვნა: MapReduce ფარგლებში ყოფს შეყვანის მონაცემები მითითებული შევიდა მოცულობით მოუწოდა ყოფს გამოყენებით org.apache.hadoop.mapreduce.InputFormat ქვეკლასით მიეწოდება სამუშაოს კონფიგურაცია. ყოფს ქმნის ადგილობრივი სამსახური კლიენტი და შედის სამუშაოს ხელმისაწვდომი ინფორმაციის სამსახური Tracker. JobTracker ქმნის რუკა ამოცანაა თითოეული გაყოფილი. თითოეული რუკა ამოცანა იყენებს RecordReader გათვალისწინებული InputFormat ქვეკლასით გარდაქმნის გაყოფილი შეყვანის ძირითადი ღირებულება წყვილი.

A (ხაზის ნომერი, text) ძირითადი ღირებულების წყვილი გენერირდება თითოეული ხაზი შეყვანის დოკუმენტის. რუკაზე ფუნქცია შეცვალოს ხაზის ნომერი და აწარმოებს ერთ-line (სიტყვა, count) წყვილი თითოეული სიტყვა შეყვანის ხაზი. შემცირება ეტაპი აწარმოებს (სიტყვა, count) წყვილი წარმოადგენს საერთო სიტყვას აქვს მთელი შემავალი დოკუმენტაციის. იმის გათვალისწინებით, რომ შემავალი მონაცემების ნაჩვენებია რუკაზე შეამციროს პროგრესიით მაგალითზე სამუშაო:

გამომავალი საწყისი რუკა ეტაპი შეიცავს მრავალი ძირითადი ღირებულების წყვილი იგივე გასაღები: The 'შვრია’ და "ჭამა’ გასაღებები ორჯერ გამოჩნდება. შეგახსენებთ, რომ MapReduce ფარგლებში კონსოლიდირებულია ყველა ღირებულებების იგივე გასაღები სანამ შეამციროს ეტაპი, ასე შეყვანის შეამციროს ფაქტიურად (key, ღირებულებები) pairs. ამიტომ, სრული პროგრესიით რუკა გამომავალი, მეშვეობით ამცირებს, საბოლოო შედეგების ნაჩვენებია ზემოთ.

MapReduce სამსახური სიცოცხლის ციკლი

შემდეგ არის ცხოვრების ციკლი ტიპიური MapReduce სამუშაო და როლები პირველადი actors.The სრული ცხოვრების ციკლი უფრო რთული, ასე რომ აქ ჩვენ კონცენტრირება ძირითადი კომპონენტის.

, Hadoop კონფიგურაცია შეიძლება გაკეთდეს სხვადასხვა გზები, მაგრამ ძირითადი კონფიგურაცია შედგება შემდეგი.

  • ერთიანი სამაგისტრო კვანძის გაშვებული Job Tracker
  • მრავალჯერადი მუშა კვანძების გაშვებული სამუშაო Tracker

შემდეგ სიცოცხლის ციკლის კომპონენტები MapReduce სამუშაო.

  • ლოკალური სამსახური კლიენტს: ადგილობრივი სამუშაო Client ამზადებს სამუშაო წარდგენის და ხელები off ვაკანსიის Tracker.
  • სამუშაოს ძიება: სამსახური Tracker მიერ სამუშაოს და დისტრიბუციას რუკაზე მუშაობა შორის სამუშაო ტრეკერები პარალელურად დამუშავება.
  • სამუშაო Tracker: თითოეული სამუშაო Tracker აჩენს რუკა სამუშაო. სამსახური Tracker იღებს პროგრესი ინფორმაციას სამუშაო ტრეკერები.

მას შემდეგ, რაც რუკა შედეგები ხელმისაწვდომია, სამსახური Tracker ავრცელებს შეამციროს მუშაობა შორის სამუშაო ტრეკერები პარალელურად დამუშავება.

თითოეული სამუშაო Tracker აჩენს შემცირება სამუშაო ასრულებს სამუშაოს. სამსახური Tracker იღებს პროგრესი ინფორმაციას სამუშაო ტრეკერები.

ყველა რუკა ამოცანები არ დასრულდებოდა შეამციროს ამოცანები დაიწყოს გაშვებული. შემცირება ამოცანები შეიძლება დაიწყება, როგორც კი რუკას ამოცანები დაიწყოს დასრულების. Thus, რუკაზე და შეამციროს ნაბიჯები ხშირად გადახურვა.

ფუნქციონალური სხვადასხვა კომპონენტების MapReduce სამუშაო

სამუშაო Client: სამუშაო კლიენტს ასრულებს შემდეგ ამოცანებს

  • ამტკიცებს სამუშაო კონფიგურაცია
  • გენერირებას შეყვანის ყოფს. ეს არის ძირითადად გაყოფა შეყვანის სამუშაო მოცულობით
  • ასლები სამუშაოს რესურსები (კონფიგურაციის, სამუშაო JAR ფაილი, შეყვანის ყოფს) გაუზიარეს ადგილმდებარეობა, როგორიცაა HDFS დირექტორია, სადაც ეს არის ხელმისაწვდომი Job Tracker და სამუშაო ტრეკერები
  • წარუდგენს სამუშაოს სამუშაოს ძიება

სამუშაოს ძიება: სამუშაოს ძიება ასრულებს შემდეგ ამოცანებს

  • იძიებს შეყვანის ყოფს გაზიარებული ადგილმდებარეობა, სადაც სამუშაოს დამკვეთი განთავსებული ინფორმაცია
  • ქმნის რუკა ამოცანაა თითოეული გაყოფილი
  • თითოეულს რუკა ამოცანა სამუშაო Tracker (თანამშრომელი კვანძის)

მას შემდეგ, რაც რუკა ამოცანა არის სრული, სამუშაოს ძიება აკეთებს შემდეგ ამოცანებს

  • ქმნის შეამციროს ამოცანები მდე მაქსიმალური ჩართულია სამუშაო კონფიგურაცია.
  • თითოეულს რუკა შედეგი დანაყოფი, რომ შეამციროს ამოცანა.
  • თითოეულს შემცირების ამოცანა სამუშაო Tracker.

სამუშაო Tracker: ამოცანა Tracker მართავს ამოცანები ერთი თანამშრომელი კვანძის და ანგარიშები სტატუსის Job Tracker.

სამუშაო Tracker აკეთებს შემდეგ ამოცანებს, როდესაც რუკა ან შემცირება ამოცანა, რომელიც მას მინიჭებული

  • იძიებს სამუშაო რესურსების ადგილობრივად
  • აჩენს ბავშვს JVM წლის მუშა კვანძის შეასრულოს რუკაზე ან შემცირება ამოცანა
  • ანგარიშები სტატუსის Job Tracker

გამართვის რუკა შემცირება

Hadoop ინარჩუნებს ჟურნალი მნიშვნელოვანი მოვლენების დროს პროგრამის შესრულების. სტანდარტულად, ამ ინახება ჟურნალები / ქვედირექტორიაში Hadoop ვერსია / დირექტორია, სადაც თქვენ აწარმოებს Hadoop ეხლა. შესვლა ფაილი სახელად Hadoop-username-service-hostname.log. ბოლო მონაცემებით არის .Log ფაილი; ძველი ჟურნალები აქვთ თარიღი ჩაჯდება მათ. სახელი ჟურნალის ფაილის ეხება სახელის ქვეშ, რომელიც Hadoop დაიწყო — ეს არ არის აუცილებელი იგივე სახელი თქვენ იყენებთ პროგრამების გასაშვებად. სერვისის სახელი ეხება, რომელიც რამდენიმე Hadoop პროგრამების წერა შესვლა; თეზისის შეიძლება jobtracker, namenode, datanode, secondarynamenode, ან tasktracker. ეს ყველაფერი მნიშვნელოვანია გამართვის მთელი Hadoop მონტაჟი. მაგრამ ინდივიდუალური პროგრამები, tasktracker ჟურნალი იქნება ყველაზე შესაბამისი. გამონაკლისს დააგდეს თქვენი პროგრამა იქნება ჩაწერილი tasktracker ჟურნალები.

ჟურნალი დირექტორია ასევე ექნება ქვედირექტორიაში მოუწოდა userlogs. აქ არის კიდევ ერთი subdirectory ყველა ამოცანა აწარმოებს. თითოეული ამოცანა ჩანაწერს მის stdout და stderr ორი ფაილი ამ დირექტორიაში. გაითვალისწინეთ, რომ მრავალ კვანძის Hadoop კასეტური, ამ ჟურნალი არ არის ცენტრალიზებული საერთო — თქვენ უნდა შეამოწმოს თითოეული TaskNode ის ჟურნალები / userlogs / მომსახურება მათი გამომავალი.

გამართვის გავრცელებულ გარემოში რთული და მოითხოვს შესვლის რამდენიმე მანქანები წვდომის ჟურნალის მონაცემები. თუ შესაძლებელია, პროგრამები უნდა იყოს ერთეული ტესტირება გაშვებული Hadoop ადგილობრივად. რა კონფიგურაცია განლაგებული Hadoop ეშვება “ერთი შემთხვევა” რეჟიმი, სადაც მთელი MapReduce პროგრამა აწარმოებს იგივე მაგალითად ჯავის როგორც მოუწოდა JobClient.runJob(). გამოყენება debugger მოსწონს Eclipse, შეგიძლიათ შემდეგ მითითებული breakpoints შიგნით რუკა() ან შემცირება() მეთოდები აღმოჩენა თქვენი შეცდომები.

შეამცირებს სამუშაო სავალდებულოა?

სამუშაო ადგილები შეიძლება შეავსოთ ყველა მათი მუშაობის დროს რუკა ეტაპი. ასე რომ სამუშაო შეიძლება რუკა მხოლოდ სამუშაო. იმისათვის, რომ შეწყდეს სამუშაოს შემდეგ რუკაზე ასრულებს, მითითებული რაოდენობის შემცირება ამოცანები ნულის.

დასკვნა

ეს მოდული აღწერილი MapReduce შესრულების პლატფორმა გულში Hadoop სისტემა. გამოყენებით MapReduce, მაღალი ხარისხით პარალელიზმის მიიღწევა პროგრამები. MapReduce ფარგლებში უზრუნველყოფს მაღალი ხარისხით ბრალია ტოლერანტობის განაცხადების გაშვებული ის მიერ შეზღუდვის ურთიერთობა, რომელიც შეიძლება მოხდეს შორის კვანძების.

============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share