MapReduce là gì?

MapReduce là một trong những công chũm xử lý tài liệu được sử dụng để xử trí dữ liệu tuy nhiên song ngơi nghỉ dạng phân tán. Nó được trở nên tân tiến vào năm 2004, trên cơ sở bài báo gồm tiêu đề “MapReduce: xử trí dữ liệu đơn giản hóa trên các cụm lớn” vì chưng Google xuất bản.

Bạn đang xem: Map reduce là gì

MapReduce là một quy mô có nhị giai đoạn, quy trình ánh xạ và tiến độ rút gọn. Vào Mapper, đầu vào được đưa ra dưới dạng một cặp khóa-giá trị. Đầu ra của Mapper được mang lại bộ giảm tốc làm đầu vào. Bộ tụt giảm chỉ chạy sau thời điểm Mapper kết thúc. Bộ giảm tốc cũng dấn đầu vào ở định dạng khóa-giá trị và đầu ra của bộ giảm tốc là đầu ra cuối cùng. Để hiểu biết thêm thông tin, hãy truy nã cập: đào chế tạo trực tuyến tài liệu lớn

Giảm các bước trong bạn dạng đồ bạn dạng đồ lấy tài liệu dưới dạng các cặp với trả về danh sách các cặp . Những phím sẽ không hẳn là tốt nhất trong trường thích hợp này. Thực hiện đầu ra của bản đồ, sắp xếp và đảo lộn được vận dụng bởi con kiến ​​trúc Hadoop. Việc thu xếp và xáo trộn này vận động trên danh sách các cặp này và gửi ra các khóa duy nhất và danh sách các giá trị được links với khóa duy nhất này . Một đầu ra thu xếp và đảo lộn được giữ hộ đến quy trình tiến độ giảm tốc. Bộ giảm tốc triển khai một tính năng đã xác minh trên danh sách các giá trị cho các khóa duy nhất với đầu ra cuối cùng sẽ tiến hành lưu trữ / hiển thị.
*

*

Việc bố trí và xới trộn xẩy ra trên cổng output của Mapper và trước bộ giảm tốc. Lúc tác vụ Mapper trả thành, công dụng được bố trí theo khóa, được phân vùng nếu có không ít bộ bớt và tiếp đến được ghi vào đĩa. Sử dụng đầu vào từ mỗi Mapper , chúng tôi thu thập toàn bộ các giá bán trị cho mỗi khóa độc nhất k2. Đầu ra này từ quá trình xáo trộn ngơi nghỉ dạng được giữ hộ làm đầu vào cho quy trình giảm tốc.

áp dụng MapReduce Nó hoàn toàn có thể được sử dụng trong các ứng dụng khác nhau như phân nhiều tài liệu, bố trí phân tán và hòn đảo ngược biểu đồ link web. Nó có thể được sử dụng để tra cứu kiếm dựa trên mẫu phân tán. Công ty chúng tôi cũng có thể sử dụng MapReduce trong học máy. Nó đã có Google áp dụng để sinh sản lại chỉ mục của Google về World Wide Web. Nó có thể được sử dụng trong vô số môi trường máy tính xách tay như nhiều cụm, đa lõi và môi trường di động.

Trước khi học MapReduce, bạn phải có kiến ​​thức cơ bản về tài liệu lớn.

khán giả

Hướng dẫn MapReduce của chúng tôi được thiết kế sẽ giúp người mới ban đầu và những chuyên gia.

sự việc

Chúng tôi bảo đảm an toàn rằng các bạn sẽ không tìm thấy bất kỳ vấn đề như thế nào trong lí giải MapReduce này. Nhưng lại nếu có bất kỳ sai sót, xin vui mừng đăng vấn đề trong biểu chủng loại liên hệ.

Luồng dữ liệu trong MapReduce

MapReduce được sử dụng để thống kê giám sát lượng dữ liệu khổng lồ. Để cách xử trí dữ liệu sắp tới đây ở dạng song song với phân tán, tài liệu phải chuyển từ những giai đoạn khác nhau.


*

Luồng dữ liệu trong MapReduce

các giai đoạn của luồng tài liệu MapReduce Đầu đọc nguồn vào

Bộ đọc nguồn vào đọc dữ liệu sắp tới đây và phân chia nó thành các khối dữ liệu có kích cỡ thích thích hợp (64 MB đến 128 MB). Từng khối tài liệu được liên kết với một chức năng bạn dạng đồ.

Khi nguồn vào đọc dữ liệu, nó sẽ khởi tạo ra những cặp khóa-giá trị tương ứng. Những tệp đầu vào nằm vào HDFS.

Chức năng bạn dạng đồ

Hàm bản đồ xử lý các cặp khóa-giá trị tới đây và tạo nên các cặp khóa-giá trị cổng đầu ra tương ứng. Loại đầu vào và áp ra output của phiên bản đồ rất có thể khác nhau.

chức năng phân vùng

Hàm phân vùng gán công dụng đầu ra của mỗi hàm phiên bản đồ cho cỗ giảm thiểu say đắm hợp. Khóa cùng giá trị bao gồm sẵn cung cấp tính năng này. Nó trả về chỉ số của bộ giảm.

Trộn và sắp xếp

Dữ liệu được xới trộn giữa / trong những nút nhằm nó dịch rời ra khỏi bản đồ và sẵn sàng chuẩn bị xử lý cho công dụng giảm. Đôi khi, việc xáo trộn dữ liệu hoàn toàn có thể mất nhiều thời gian tính toán.

Thao tác bố trí được triển khai trên tài liệu đầu vào cho tính năng Giảm. Ở đây, tài liệu được so sánh bằng phương pháp sử dụng tác dụng so sánh cùng được bố trí theo dạng đã được sắp tới xếp.

Giảm công dụng

Chức năng Reduce được gán cho mỗi phím duy nhất. Các phím này sẽ được bố trí theo vật dụng tự sắp xếp. Những giá trị được link với các khóa hoàn toàn có thể lặp lại bớt và tạo cổng đầu ra tương ứng.

bạn viết đầu ra

Khi luồng dữ liệu từ toàn bộ các tiến trình trên, trình ghi đầu ra sẽ thực thi. Mục đích của tín đồ viết đầu ra là ghi sản lượng Reduce vào bộ lưu trữ ổn định.

API MapReduce

Trong phần này, shop chúng tôi tập trung vào các API của MapReduce. Ở đây, bọn họ tìm phát âm về những lớp và cách thức được áp dụng trong lập trình MapReduce.

Lớp lập bạn dạng đồ MapReduce

Trong MapReduce, vai trò của lớp Mapper là ánh xạ các cặp khóa-giá trị đầu vào thành một tập hợp những cặp khóa-giá trị trung gian. Nó gửi các phiên bản ghi nguồn vào thành các phiên bản ghi trung gian.

Các bạn dạng ghi trung gian này được liên kết với một khóa đầu ra output nhất định với được chuyển đến bộ giảm để có công dụng cuối cùng.

Ví dụ về con số từ MapReduce

Trong lấy ví dụ như đếm từ của MapReduce, công ty chúng tôi tìm ra tần suất mở ra của mỗi từ. Ở đây, phương châm của Mapper là ánh xạ các khóa đến các giá trị hiện gồm và sứ mệnh của Reducer là tổng hợp các khóa của các giá trị chung. Vì vậy, hầu hết thứ mọi được màn trình diễn dưới dạng ghép nối Khóa-giá trị. Nếu bạn có nhu cầu tìm hiểu khóa học hoàn chỉnh, hãy truy vấn ITGuru"s: big data và huấn luyện trực con đường hadoop

Điều khiếu nại tiên quyết Cài để Java - bình chọn xem Java sẽ được setup hay chưa bằng lệnh sau. Java -version Cài để Hadoop - bình chọn xem Hadoop vẫn được thiết đặt hay chưa bằng phương pháp sử dụng lệnh sau. Phiên bản hadoop

Trong lấy ví dụ như đếm từ bỏ của MapReduce, cửa hàng chúng tôi tìm ra tần suất xuất hiện thêm của mỗi từ. Ở đây, mục đích của Mapper là ánh xạ các khóa đến những giá trị hiện có và vai trò của Reducer là tổng hợp các khóa của các giá trị chung. Do vậy, phần lớn thứ được biểu diễn dưới dạng cặp Khóa-giá trị.

Điều kiện tiên quyết Cài để Java - bình chọn xem Java sẽ được setup hay chưa bằng lệnh sau. Java -version Cài đặt Hadoop - khám nghiệm xem Hadoop đã được cài đặt hay chưa bằng cách sử dụng lệnh sau. Phiên bản hadoop sinh sản một tệp văn phiên bản trong máy viên bộ của người sử dụng và viết một vài văn phiên bản vào đó. $ nano data.txt
*

*

Trong ví dụ này, chúng tôi tìm ra tần suất của mỗi từ trường tồn trong tệp văn bạn dạng này.

Xem thêm: Tìm M Để Hàm Số Có Tiệm Cận Đứng, Tìm M Để Hàm Số Có Tiệm Cận Ngang Tiệm Cận Đứng

tạo thành một folder trong HDFS, nơi lưu giữ tệp văn bản. $ hdfs dfs -mkdir / test mua lên tệp data.txt bên trên HDFS trong thư mục cố kỉnh thể. $ hdfs dfs -put /home/codegyani/data.txt / test
Viết công tác MapReduce bằng eclipse. gói com.javatpoint; nhập java.io.IOException; nhập java.util.StringTokenizer; nhập org.apache.hadoop.io.IntWained; nhập org.apache.hadoop.io.LongWlike; nhập org.apache.hadoop.io.Text; nhập org.apache.hadoop.mapred.MapReduceBase; nhập org.apache.hadoop.mapred.Mapper; nhập org.apache.hadoop.mapred.OutputCollector; nhập org.apache.hadoop.mapred.Reporter; public class WC_Mapper không ngừng mở rộng MapReduceBase thực hiện Mapper private sau cuối static IntWlike one = new IntWained (1); private Text word = new Text (); phiên bản đồ khoảng chừng trống nơi công cộng (khóa ghi dài, giá trị văn bản, áp ra output OutputCollector , phóng viên báo cáo) ném IOException chiếc chuỗi = value.toString (); StringTokenizer tokenizer = new StringTokenizer (dòng); while (tokenizer.hasMoreTokens ()) word.set (tokenizer.nextToken ()); output.collect (từ, một); gói com.javatpoint; nhập java.io.IOException; nhập java.util.Iterator; nhập org.apache.hadoop.io.IntWained; nhập org.apache.hadoop.io.Text; nhập org.apache.hadoop.mapred.MapReduceBase; nhập org.apache.hadoop.mapred.OutputCollector; nhập org.apache.hadoop.mapred.Reducer; nhập org.apache.hadoop.mapred.Reporter; public class WC_Reducer không ngừng mở rộng MapReduceBase thực thi Reducer public void Reduce (Text key, Iterator giá bán trị, OutputCollector đầu ra, phóng viên báo chí báo cáo) ném IOException int sum = 0; while (giá trị.hasNext ()) sum + = giá trị.next (). Get (); output.collect (key, new IntW ghi (sum)); gói com.javatpoint; nhập java.io.IOException; nhập org.apache.hadoop.fs.Path; nhập org.apache.hadoop.io.IntWained; nhập org.apache.hadoop.io.Text; nhập org.apache.hadoop.mapred.FileInputFormat; nhập org.apache.hadoop.mapred.FileOutputFormat; nhập org.apache.hadoop.mapred.JobClient; nhập org.apache.hadoop.mapred.JobConf; nhập org.apache.hadoop.mapred.TextInputFormat; nhập org.apache.hadoop.mapred.TextOutputFormat; lớp công cộng WC_Runner public static void main (String <> args) ném IOException JobConf conf = new JobConf (WC_Runner.class); conf.setJobName (“WordCount”); conf.setOutputKeyClass (Text.class); conf.setOutputValueClass (IntWained.class); conf.setMapperClass (WC_Mapper.class); conf.setCombinerClass (WC_Reducer.class); conf.setReducerClass (WC_Reducer.class); conf.setInputFormat (TextInputFormat.class); conf.setOutputFormat (TextOutputFormat.class); FileInputFormat.setInputPaths (conf, new Path (args <0>)); FileOutputFormat.setOutputPath (conf, new Path (args <1>)); JobClient.runJob (conf); tạo tệp jar của lịch trình này với đặt thương hiệu là countworddemo.jar. Chạy tệp jar hadoop jar /home/codegyani/wordcountdemo.jar com.javatpoint.WC_Runner /test/data.txt / r_output Đầu ra được lưu lại trong / r_output / part-00000