Bạn đang xem bài viết Distributed Data Processing Using Mapreduce được cập nhật mới nhất tháng 9 năm 2023 trên website Hsnf.edu.vn. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất.
Bài viết được sự cho phép của tác giả Kiên Nguyễn
Ngày nay, xử lý dữ liệu lớn đã trở thành bài toán tiếp xúc hằng ngày đối với Kỹ sư phần mềm, Distributed Data Processing dựa trên MapReduce mà một kỹ thuật được sử dụng để giải quyết những bài toán đó.
Thông qua kiến trúc và cách xử lý của MapReduce. Dữ liệu lên tới hàng Petabyte cũng có thể xử lý linh hoạt và nhanh chóng.
Còn chần chừ gì nữa mà không tìm hiểu xem ta có thể thực hiện như thế nào?. Bắt dầu thôi!
1. Distributed Data ProcessingProcessing đối với data được đề cập trong bài viết này là đề cập tới dữ liệu lớn (large data). Con số lên tới petabytes.
Ngoài ra, process cũng bao gồm các vấn đề khó nhắn như: Search LIKE, trả về tất cả dữ liệu có chứa dòng chữ “hello”. Sẽ không có gì để bàn nếu ta đang muốn giữ cho peformance ở mức tốt cho dù dữ liệu rất lớn. Bằng cách sử dụng hệ cơ sở dữ liệu phân tán (Distributed Database) kết hợp với kiến trúc MapReduce
Bắt đầu với MapReduce, vậy MapReduce là gì?
1.1 MapReduce = Map + Reduce.Map, written by the user, takes an input pair and produces a set of intermediate key/value pairs. The MapReduce library groups together all intermediate values associated with the same intermediate key I and passes them to the Reduce function
Map, thường được viết bởi user, nhận đầu vào là một cặp key value, tạo ra một tập hợp các key-value trun gian. Thư viện MapReduce sẽ gom tất cả các cặp key value trung gian cùng với khóa tạm I và gửi chúng tới Reduce function
Túm váy lại thì Map sẽ tạo ra các cặp key-value, nó là input cho Reduce, khi đã có danh sách key-value trung gian, ta sẽ gọi Reduce function.
The Reduce function, also written by the user, accepts an intermediate key I and a set of values for that key. It merges together these values to form a possibly smaller set of values. The intermediate values are supplied to the user’s reduce function via an iterator. This allows us to handle lists of values that are too large totinmemory
Reduce function, cũng được viết bởi user, nhận vào khóa tạm I và danh sách giá trị cho khóa đó. Merge chúng lại với nhau để tạo thành một tập giá trị có thể nhỏ hơn. Các giá trị trung gian được tạo ra thông qua quá trình lặp (interator). Điều này cho phép chúng ta xử lý danh sách các giá trị quá lớn để vừa trong bộ nhớ
Đọc hơi khó hiểu, tuy nhiên chỉ cần nhớ đơn giản rằng MapReduce cho phép lặp các giá trị tuần tự trong MapReduce, đem ra xử lí. Quá trình xử lí này là tuần tự cho từng phần tử. Trường hợp dữ liệu cực lớn, không cần phải có toàn bộ dữ liệu mới thực hiện xử lý (data processing)
2. MapReduce ArchitectureVới lượng dữ liệu khổng lồ, nếu muốn xử lí dữ liệu theo hướng thông thường như lưu trên disk, ram, thực hiện tuần tự là điều không khả thi. Chính vì vậy, ta cần một kiến trúc mới, xử lí tuần tự như MapReduce. Lúc này Distributed Data Processing cho dữ liệu lớn trở nên khả thi hơn bao giờ hết.
Bài toán thực tế cho thấy ta có:
Documents: file cần xử lý với dung lượng khổng lồ, cỡ Petabyte
Master: thực hiện tính toán phân chia cho các worker trên system. Dựa vào tài nguyên thì mỗi worker sẽ có khả năng xử lý nhất định, (MB/s)
Worker: Xử lí nội dung file theo yêu cầu từ phía master, sức mạnh của các worker là ngang bằng nhau.
Áp dụng nguyên lý và ý tưởng từ Distributed Storage và Distributed Database, ta sẽ chia Documents thành các phần nhỏ. Mỗi phần sẽ vừa đủ để một Worker có thể xử lí
Trường hợp mỗi Worker có thể xử lý 256MB, ta sẽ chia document thành 4000 phần nhỏ. Nếu có 1000 workers, mỗi worker sẽ chịu trách nhiệm xử lý cho 4 Splits.
Lúc này, vai trò của master trở thành người giám sát, ghi lại tiến trình của từng worker. Phân phối Splits nếu worker đã không còn gì để mà xúc.
Để đảm bảo tính phân tán và stateless của mỗi worker, splits không phân chia tuần tự tới từng worker
Các splits không phân chia tuần tự tới từng worker
3. Handle khi MapReduce failTrong quá trình processing data, không thể tránh khỏi các trường hợp bị fail. Lúc này, khi một worker bị fail, master sẽ ghi nhận và đổi trạng thái của worker thành failed
Any map task or reduce task in progress on a failed worker is also reset to idle and becomes eligible for rescheduling
Bất kì Map task hay reduce task đang có trạng thái in progress hay failed đều sẽ reset về trạng thái idle và có thể rescheduling lại
Về phía master
If the master task dies,a new copy can be started from the last check pointed state. However, given that there is only a single master, its failure is unlikely ;therefore our current implementation aborts the MapReduce computation if the master fails. Client scan check for this condition and retry the MapReduce operation if they desir
Nếu master tiêu, một bản copy khác có thể bắt đầu lại từ trạng thái kiểm tra cuối cùng. Tuy nhiên, do chỉ có một master duy nhất, nên việc thất bại ở master thường không xảy ra. Do đó, trường hợp master fail, ta đơn giản hủy bỏ tính toán của MapReduce hiện tại, phía client có thể kiểm tra điều kiện này và thử lại ở MapReduce nào bị fail
4. Tham khảoThank you for your focus – Have a best friend – Happy coding!
“Village Director” Collects Billions By Processing Cashews And Planting Bat Do Bamboo
Cashew processing, double profit
In the early days of the cashew crop, back to the border commune of Ia Chia (Ia Grai district, Gia Lai), met Mr. Nguyen Van Thiem (45 years old), a farmer known as “Village Director” is busy with work. .
Mr. Thiem has boldly built a company in a poor village to deeply process the agricultural products of his family and relatives in the commune, in order to improve the value of agricultural products.
Mr. Thiem finds a way to process cashews in the village to increase the value of agricultural products (Photo: Pham Hoang).
Mr. Thiem shared: “In this area, the raw materials are good, but traders pressured the price. That’s why I boldly made a chain, deep processing technology for cashew nuts and registered a trademark to bring it to customers. delicious, organic products. From there, farmers in the village have a higher income.”
Mr. Thiem confided that because life in the countryside was difficult, he and his family moved to the border area of Ia Chia to establish a business. At first, he and his wife worked as rubber workers, and their great-grandchildren bought a small garden.
Seeing that the toxic rubber worker job had to stay up late, Mr. Thiem decided to take a break to develop the economy on the rocky land the couple had accumulated.
Cashews of the border people Ia Chia take care of organically, so the seeds are small but delicious, natural and fragrant (Photo: Pham Hoang).
After many years of hard work on the rocky land, Mr. Thiem and his wife own nearly ten hectares of land. Because of the barren soil, Mr. Thiem chose cashew as the main crop to plant with about 6 hectares of cultivation. Every year, he harvests 10-12 tons of cashews.
Initially, the harvested cashews were roasted by Thiem and his wife in batches. Due to manual roasting, it is difficult to control the temperature, which is easy to burn. In addition, there is no grain separator, so the product is also broken and crumbled a lot.
After many failures, Mr. Thiem has produced satisfactory batches of roasted cashews. He also boldly established a company to bring his village’s cashew brand to all provinces.
Every year, Mr. Thiem earns hundreds of millions of dong from caring for and processing cashews (Photo: Pham Hoang)
After nearly 3 years of investment and development, cashew nuts from the border commune of Ia Chia have reached the market in many big cities such as Ho Chi Minh City, Da Nang and the central provinces.
According to Mr. Thiem, each hectare of cashew, sold raw, earns about 60 million VND/year. But when roasting, drying up, the profit will double. On average, each year he sells to the market about 3 tons of deep-processed cashews and 7 tons of dry products, earning a profit of about 700 million VND.
Nurturing Bat Do bamboo on barren land
Thiem recalled, in 2023, he returned to his hometown of Phu Tho and realized that the Bat Do bamboo growing model brought high economic efficiency. This bamboo variety has a high yield of bamboo shoots and can be sold for making handicrafts and selling seeds. Therefore, he bought the seeds and planted them on the rocky soil of Ia Chia commune.
After more than a year, Bat Do bamboo began to produce the first shoots. Realizing that bamboo shoots have a crunchy, naturally sweet taste and good consumption potential, Mr. Thien continues to expand the area to build a raw material area. He also registered trademarks and packaging to bring to the market many quality products.
Currently, he has planted about 1,000 bamboo roots, of which 700 are being harvested. Last year, Mr. Thiem collected tons of bamboo shoots for domestic and foreign markets. After deducting expenses, Mr. Thiem earns a profit of more than 250 million VND/year.
Bamboo shoots from Bat Do bamboo variety were harvested by Mr. Thiem in the first crop (Photo: ND).
Mr. Thiem confided: “Bat Do bamboo shoots are big, yield many times higher than normal bamboo shoots. Each bamboo shoot weighs 3-8kg, thin skin, white flesh, thick, small core, ratio meat is over 85%”.
Currently, fresh bamboo shoots are priced at 10-15 thousand VND/kg, dried bamboo shoots cost 220-250 thousand VND/kg. Last year, he also sold a lot of seeds to people in the village to replicate the model.
Mr. Phan Dinh Tham – Head of Agriculture and Rural Development Department of Ia Grai district said: “The district owns many large raw material areas such as coffee, pepper, cashew, fruit trees. To increase the value of products, many Farmers boldly build cooperatives and companies to deeply process local agricultural products.. Nguyen Thiem’s household is also a typical case, with the model of deep processing cashew nut, growing Bat Do bamboo shoots. Seeing the high value, many relatives have linked and replicated the model”.
Photo: Internet (Vinlove.net)
Đăng bởi: Hoàng Dần
Từ khoá: “Village director” collects billions by processing cashews and planting Bat Do bamboo
Distributed Data Processing Using Mapreduce
Bài viết được sự cho phép của tác giả Kiên Nguyễn
Ngày nay, xử lý dữ liệu lớn đã trở thành bài toán tiếp xúc hằng ngày đối với Kỹ sư phần mềm, Distributed Data Processing dựa trên MapReduce mà một kỹ thuật được sử dụng để giải quyết những bài toán đó.
Thông qua kiến trúc và cách xử lý của MapReduce. Dữ liệu lên tới hàng Petabyte cũng có thể xử lý linh hoạt và nhanh chóng.
Còn chần chừ gì nữa mà không tìm hiểu xem ta có thể thực hiện như thế nào?. Bắt dầu thôi!
1. Distributed Data ProcessingProcessing đối với data được đề cập trong bài viết này là đề cập tới dữ liệu lớn (large data). Con số lên tới petabytes.
Ngoài ra, process cũng bao gồm các vấn đề khó nhắn như: Search LIKE, trả về tất cả dữ liệu có chứa dòng chữ “hello”. Sẽ không có gì để bàn nếu ta đang muốn giữ cho peformance ở mức tốt cho dù dữ liệu rất lớn. Bằng cách sử dụng hệ cơ sở dữ liệu phân tán (Distributed Database) kết hợp với kiến trúc MapReduce
Bắt đầu với MapReduce, vậy MapReduce là gì?
1.1 MapReduce = Map + Reduce.Map, written by the user, takes an input pair and produces a set of intermediate key/value pairs. The MapReduce library groups together all intermediate values associated with the same intermediate key I and passes them to the Reduce function
Map, thường được viết bởi user, nhận đầu vào là một cặp key value, tạo ra một tập hợp các key-value trun gian. Thư viện MapReduce sẽ gom tất cả các cặp key value trung gian cùng với khóa tạm I và gửi chúng tới Reduce function
Túm váy lại thì Map sẽ tạo ra các cặp key-value, nó là input cho Reduce, khi đã có danh sách key-value trung gian, ta sẽ gọi Reduce function.
The Reduce function, also written by the user, accepts an intermediate key I and a set of values for that key. It merges together these values to form a possibly smaller set of values. The intermediate values are supplied to the user’s reduce function via an iterator. This allows us to handle lists of values that are too large totinmemory
Reduce function, cũng được viết bởi user, nhận vào khóa tạm I và danh sách giá trị cho khóa đó. Merge chúng lại với nhau để tạo thành một tập giá trị có thể nhỏ hơn. Các giá trị trung gian được tạo ra thông qua quá trình lặp (interator). Điều này cho phép chúng ta xử lý danh sách các giá trị quá lớn để vừa trong bộ nhớ
Đọc hơi khó hiểu, tuy nhiên chỉ cần nhớ đơn giản rằng MapReduce cho phép lặp các giá trị tuần tự trong MapReduce, đem ra xử lí. Quá trình xử lí này là tuần tự cho từng phần tử. Trường hợp dữ liệu cực lớn, không cần phải có toàn bộ dữ liệu mới thực hiện xử lý (data processing)
2. MapReduce ArchitectureVới lượng dữ liệu khổng lồ, nếu muốn xử lí dữ liệu theo hướng thông thường như lưu trên disk, ram, thực hiện tuần tự là điều không khả thi. Chính vì vậy, ta cần một kiến trúc mới, xử lí tuần tự như MapReduce. Lúc này Distributed Data Processing cho dữ liệu lớn trở nên khả thi hơn bao giờ hết.
Bài toán thực tế cho thấy ta có:
Documents: file cần xử lý với dung lượng khổng lồ, cỡ Petabyte
Master: thực hiện tính toán phân chia cho các worker trên system. Dựa vào tài nguyên thì mỗi worker sẽ có khả năng xử lý nhất định, (MB/s)
Worker: Xử lí nội dung file theo yêu cầu từ phía master, sức mạnh của các worker là ngang bằng nhau.
Áp dụng nguyên lý và ý tưởng từ Distributed Storage và Distributed Database, ta sẽ chia Documents thành các phần nhỏ. Mỗi phần sẽ vừa đủ để một Worker có thể xử lí
Trường hợp mỗi Worker có thể xử lý 256MB, ta sẽ chia document thành 4000 phần nhỏ. Nếu có 1000 workers, mỗi worker sẽ chịu trách nhiệm xử lý cho 4 Splits.
Lúc này, vai trò của master trở thành người giám sát, ghi lại tiến trình của từng worker. Phân phối Splits nếu worker đã không còn gì để mà xúc.
Để đảm bảo tính phân tán và stateless của mỗi worker, splits không phân chia tuần tự tới từng worker
Các splits không phân chia tuần tự tới từng worker
3. Handle khi MapReduce failTrong quá trình processing data, không thể tránh khỏi các trường hợp bị fail. Lúc này, khi một worker bị fail, master sẽ ghi nhận và đổi trạng thái của worker thành failed
Any map task or reduce task in progress on a failed worker is also reset to idle and becomes eligible for rescheduling
Bất kì Map task hay reduce task đang có trạng thái in progress hay failed đều sẽ reset về trạng thái idle và có thể rescheduling lại
Về phía master
If the master task dies,a new copy can be started from the last check pointed state. However, given that there is only a single master, its failure is unlikely ;therefore our current implementation aborts the MapReduce computation if the master fails. Client scan check for this condition and retry the MapReduce operation if they desir
Nếu master tiêu, một bản copy khác có thể bắt đầu lại từ trạng thái kiểm tra cuối cùng. Tuy nhiên, do chỉ có một master duy nhất, nên việc thất bại ở master thường không xảy ra. Do đó, trường hợp master fail, ta đơn giản hủy bỏ tính toán của MapReduce hiện tại, phía client có thể kiểm tra điều kiện này và thử lại ở MapReduce nào bị fail
4. Tham khảoThank you for your focus – Have a best friend – Happy coding!
Distributed Data Processing Using Mapreduce
Bài viết được sự cho phép của tác giả Kiên Nguyễn
Ngày nay, xử lý dữ liệu lớn đã trở thành bài toán tiếp xúc hằng ngày đối với Kỹ sư phần mềm, Distributed Data Processing dựa trên MapReduce mà một kỹ thuật được sử dụng để giải quyết những bài toán đó.
Thông qua kiến trúc và cách xử lý của MapReduce. Dữ liệu lên tới hàng Petabyte cũng có thể xử lý linh hoạt và nhanh chóng.
Còn chần chừ gì nữa mà không tìm hiểu xem ta có thể thực hiện như thế nào?. Bắt dầu thôi!
1. Distributed Data ProcessingProcessing đối với data được đề cập trong bài viết này là đề cập tới dữ liệu lớn (large data). Con số lên tới petabytes.
Ngoài ra, process cũng bao gồm các vấn đề khó nhắn như: Search LIKE, trả về tất cả dữ liệu có chứa dòng chữ “hello”. Sẽ không có gì để bàn nếu ta đang muốn giữ cho peformance ở mức tốt cho dù dữ liệu rất lớn. Bằng cách sử dụng hệ cơ sở dữ liệu phân tán (Distributed Database) kết hợp với kiến trúc MapReduce
Bắt đầu với MapReduce, vậy MapReduce là gì?
1.1 MapReduce = Map + Reduce.Map, written by the user, takes an input pair and produces a set of intermediate key/value pairs. The MapReduce library groups together all intermediate values associated with the same intermediate key I and passes them to the Reduce function
Map, thường được viết bởi user, nhận đầu vào là một cặp key value, tạo ra một tập hợp các key-value trun gian. Thư viện MapReduce sẽ gom tất cả các cặp key value trung gian cùng với khóa tạm I và gửi chúng tới Reduce function
Túm váy lại thì Map sẽ tạo ra các cặp key-value, nó là input cho Reduce, khi đã có danh sách key-value trung gian, ta sẽ gọi Reduce function.
The Reduce function, also written by the user, accepts an intermediate key I and a set of values for that key. It merges together these values to form a possibly smaller set of values. The intermediate values are supplied to the user’s reduce function via an iterator. This allows us to handle lists of values that are too large totinmemory
Reduce function, cũng được viết bởi user, nhận vào khóa tạm I và danh sách giá trị cho khóa đó. Merge chúng lại với nhau để tạo thành một tập giá trị có thể nhỏ hơn. Các giá trị trung gian được tạo ra thông qua quá trình lặp (interator). Điều này cho phép chúng ta xử lý danh sách các giá trị quá lớn để vừa trong bộ nhớ
Đọc hơi khó hiểu, tuy nhiên chỉ cần nhớ đơn giản rằng MapReduce cho phép lặp các giá trị tuần tự trong MapReduce, đem ra xử lí. Quá trình xử lí này là tuần tự cho từng phần tử. Trường hợp dữ liệu cực lớn, không cần phải có toàn bộ dữ liệu mới thực hiện xử lý (data processing)
2. MapReduce ArchitectureVới lượng dữ liệu khổng lồ, nếu muốn xử lí dữ liệu theo hướng thông thường như lưu trên disk, ram, thực hiện tuần tự là điều không khả thi. Chính vì vậy, ta cần một kiến trúc mới, xử lí tuần tự như MapReduce. Lúc này Distributed Data Processing cho dữ liệu lớn trở nên khả thi hơn bao giờ hết.
Bài toán thực tế cho thấy ta có:
Documents: file cần xử lý với dung lượng khổng lồ, cỡ Petabyte
Master: thực hiện tính toán phân chia cho các worker trên system. Dựa vào tài nguyên thì mỗi worker sẽ có khả năng xử lý nhất định, (MB/s)
Worker: Xử lí nội dung file theo yêu cầu từ phía master, sức mạnh của các worker là ngang bằng nhau.
Áp dụng nguyên lý và ý tưởng từ Distributed Storage và Distributed Database, ta sẽ chia Documents thành các phần nhỏ. Mỗi phần sẽ vừa đủ để một Worker có thể xử lí
Trường hợp mỗi Worker có thể xử lý 256MB, ta sẽ chia document thành 4000 phần nhỏ. Nếu có 1000 workers, mỗi worker sẽ chịu trách nhiệm xử lý cho 4 Splits.
Lúc này, vai trò của master trở thành người giám sát, ghi lại tiến trình của từng worker. Phân phối Splits nếu worker đã không còn gì để mà xúc.
Để đảm bảo tính phân tán và stateless của mỗi worker, splits không phân chia tuần tự tới từng worker
Các splits không phân chia tuần tự tới từng worker
3. Handle khi MapReduce failTrong quá trình processing data, không thể tránh khỏi các trường hợp bị fail. Lúc này, khi một worker bị fail, master sẽ ghi nhận và đổi trạng thái của worker thành failed
Any map task or reduce task in progress on a failed worker is also reset to idle and becomes eligible for rescheduling
Bất kì Map task hay reduce task đang có trạng thái in progress hay failed đều sẽ reset về trạng thái idle và có thể rescheduling lại
Về phía master
If the master task dies,a new copy can be started from the last check pointed state. However, given that there is only a single master, its failure is unlikely ;therefore our current implementation aborts the MapReduce computation if the master fails. Client scan check for this condition and retry the MapReduce operation if they desir
Nếu master tiêu, một bản copy khác có thể bắt đầu lại từ trạng thái kiểm tra cuối cùng. Tuy nhiên, do chỉ có một master duy nhất, nên việc thất bại ở master thường không xảy ra. Do đó, trường hợp master fail, ta đơn giản hủy bỏ tính toán của MapReduce hiện tại, phía client có thể kiểm tra điều kiện này và thử lại ở MapReduce nào bị fail
4. Tham khảoThank you for your focus – Have a best friend – Happy coding!
Distributed Data Processing Using Mapreduce
Bài viết được sự cho phép của tác giả Kiên Nguyễn
Ngày nay, xử lý dữ liệu lớn đã trở thành bài toán tiếp xúc hằng ngày đối với Kỹ sư phần mềm, Distributed Data Processing dựa trên MapReduce mà một kỹ thuật được sử dụng để giải quyết những bài toán đó.
Thông qua kiến trúc và cách xử lý của MapReduce. Dữ liệu lên tới hàng Petabyte cũng có thể xử lý linh hoạt và nhanh chóng.
Còn chần chừ gì nữa mà không tìm hiểu xem ta có thể thực hiện như thế nào?. Bắt dầu thôi!
1. Distributed Data ProcessingProcessing đối với data được đề cập trong bài viết này là đề cập tới dữ liệu lớn (large data). Con số lên tới petabytes.
Ngoài ra, process cũng bao gồm các vấn đề khó nhắn như: Search LIKE, trả về tất cả dữ liệu có chứa dòng chữ “hello”. Sẽ không có gì để bàn nếu ta đang muốn giữ cho peformance ở mức tốt cho dù dữ liệu rất lớn. Bằng cách sử dụng hệ cơ sở dữ liệu phân tán (Distributed Database) kết hợp với kiến trúc MapReduce
Bắt đầu với MapReduce, vậy MapReduce là gì?
1.1 MapReduce = Map + Reduce.Map, written by the user, takes an input pair and produces a set of intermediate key/value pairs. The MapReduce library groups together all intermediate values associated with the same intermediate key I and passes them to the Reduce function
Map, thường được viết bởi user, nhận đầu vào là một cặp key value, tạo ra một tập hợp các key-value trun gian. Thư viện MapReduce sẽ gom tất cả các cặp key value trung gian cùng với khóa tạm I và gửi chúng tới Reduce function
Túm váy lại thì Map sẽ tạo ra các cặp key-value, nó là input cho Reduce, khi đã có danh sách key-value trung gian, ta sẽ gọi Reduce function.
The Reduce function, also written by the user, accepts an intermediate key I and a set of values for that key. It merges together these values to form a possibly smaller set of values. The intermediate values are supplied to the user’s reduce function via an iterator. This allows us to handle lists of values that are too large totinmemory
Reduce function, cũng được viết bởi user, nhận vào khóa tạm I và danh sách giá trị cho khóa đó. Merge chúng lại với nhau để tạo thành một tập giá trị có thể nhỏ hơn. Các giá trị trung gian được tạo ra thông qua quá trình lặp (interator). Điều này cho phép chúng ta xử lý danh sách các giá trị quá lớn để vừa trong bộ nhớ
Đọc hơi khó hiểu, tuy nhiên chỉ cần nhớ đơn giản rằng MapReduce cho phép lặp các giá trị tuần tự trong MapReduce, đem ra xử lí. Quá trình xử lí này là tuần tự cho từng phần tử. Trường hợp dữ liệu cực lớn, không cần phải có toàn bộ dữ liệu mới thực hiện xử lý (data processing)
2. MapReduce ArchitectureVới lượng dữ liệu khổng lồ, nếu muốn xử lí dữ liệu theo hướng thông thường như lưu trên disk, ram, thực hiện tuần tự là điều không khả thi. Chính vì vậy, ta cần một kiến trúc mới, xử lí tuần tự như MapReduce. Lúc này Distributed Data Processing cho dữ liệu lớn trở nên khả thi hơn bao giờ hết.
Bài toán thực tế cho thấy ta có:
Documents: file cần xử lý với dung lượng khổng lồ, cỡ Petabyte
Master: thực hiện tính toán phân chia cho các worker trên system. Dựa vào tài nguyên thì mỗi worker sẽ có khả năng xử lý nhất định, (MB/s)
Worker: Xử lí nội dung file theo yêu cầu từ phía master, sức mạnh của các worker là ngang bằng nhau.
Áp dụng nguyên lý và ý tưởng từ Distributed Storage và Distributed Database, ta sẽ chia Documents thành các phần nhỏ. Mỗi phần sẽ vừa đủ để một Worker có thể xử lí
Trường hợp mỗi Worker có thể xử lý 256MB, ta sẽ chia document thành 4000 phần nhỏ. Nếu có 1000 workers, mỗi worker sẽ chịu trách nhiệm xử lý cho 4 Splits.
Lúc này, vai trò của master trở thành người giám sát, ghi lại tiến trình của từng worker. Phân phối Splits nếu worker đã không còn gì để mà xúc.
Để đảm bảo tính phân tán và stateless của mỗi worker, splits không phân chia tuần tự tới từng worker
Các splits không phân chia tuần tự tới từng worker
3. Handle khi MapReduce failTrong quá trình processing data, không thể tránh khỏi các trường hợp bị fail. Lúc này, khi một worker bị fail, master sẽ ghi nhận và đổi trạng thái của worker thành failed
Any map task or reduce task in progress on a failed worker is also reset to idle and becomes eligible for rescheduling
Bất kì Map task hay reduce task đang có trạng thái in progress hay failed đều sẽ reset về trạng thái idle và có thể rescheduling lại
Về phía master
If the master task dies,a new copy can be started from the last check pointed state. However, given that there is only a single master, its failure is unlikely ;therefore our current implementation aborts the MapReduce computation if the master fails. Client scan check for this condition and retry the MapReduce operation if they desir
Nếu master tiêu, một bản copy khác có thể bắt đầu lại từ trạng thái kiểm tra cuối cùng. Tuy nhiên, do chỉ có một master duy nhất, nên việc thất bại ở master thường không xảy ra. Do đó, trường hợp master fail, ta đơn giản hủy bỏ tính toán của MapReduce hiện tại, phía client có thể kiểm tra điều kiện này và thử lại ở MapReduce nào bị fail
4. Tham khảoThank you for your focus – Have a best friend – Happy coding!
Distributed Data Processing Using Mapreduce
Bài viết được sự cho phép của tác giả Kiên Nguyễn
Ngày nay, xử lý dữ liệu lớn đã trở thành bài toán tiếp xúc hằng ngày đối với Kỹ sư phần mềm, Distributed Data Processing dựa trên MapReduce mà một kỹ thuật được sử dụng để giải quyết những bài toán đó.
Thông qua kiến trúc và cách xử lý của MapReduce. Dữ liệu lên tới hàng Petabyte cũng có thể xử lý linh hoạt và nhanh chóng.
Còn chần chừ gì nữa mà không tìm hiểu xem ta có thể thực hiện như thế nào?. Bắt dầu thôi!
1. Distributed Data ProcessingProcessing đối với data được đề cập trong bài viết này là đề cập tới dữ liệu lớn (large data). Con số lên tới petabytes.
Ngoài ra, process cũng bao gồm các vấn đề khó nhắn như: Search LIKE, trả về tất cả dữ liệu có chứa dòng chữ “hello”. Sẽ không có gì để bàn nếu ta đang muốn giữ cho peformance ở mức tốt cho dù dữ liệu rất lớn. Bằng cách sử dụng hệ cơ sở dữ liệu phân tán (Distributed Database) kết hợp với kiến trúc MapReduce
Bắt đầu với MapReduce, vậy MapReduce là gì?
1.1 MapReduce = Map + Reduce.Map, written by the user, takes an input pair and produces a set of intermediate key/value pairs. The MapReduce library groups together all intermediate values associated with the same intermediate key I and passes them to the Reduce function
Map, thường được viết bởi user, nhận đầu vào là một cặp key value, tạo ra một tập hợp các key-value trun gian. Thư viện MapReduce sẽ gom tất cả các cặp key value trung gian cùng với khóa tạm I và gửi chúng tới Reduce function
Túm váy lại thì Map sẽ tạo ra các cặp key-value, nó là input cho Reduce, khi đã có danh sách key-value trung gian, ta sẽ gọi Reduce function.
The Reduce function, also written by the user, accepts an intermediate key I and a set of values for that key. It merges together these values to form a possibly smaller set of values. The intermediate values are supplied to the user’s reduce function via an iterator. This allows us to handle lists of values that are too large totinmemory
Reduce function, cũng được viết bởi user, nhận vào khóa tạm I và danh sách giá trị cho khóa đó. Merge chúng lại với nhau để tạo thành một tập giá trị có thể nhỏ hơn. Các giá trị trung gian được tạo ra thông qua quá trình lặp (interator). Điều này cho phép chúng ta xử lý danh sách các giá trị quá lớn để vừa trong bộ nhớ
Đọc hơi khó hiểu, tuy nhiên chỉ cần nhớ đơn giản rằng MapReduce cho phép lặp các giá trị tuần tự trong MapReduce, đem ra xử lí. Quá trình xử lí này là tuần tự cho từng phần tử. Trường hợp dữ liệu cực lớn, không cần phải có toàn bộ dữ liệu mới thực hiện xử lý (data processing)
2. MapReduce ArchitectureVới lượng dữ liệu khổng lồ, nếu muốn xử lí dữ liệu theo hướng thông thường như lưu trên disk, ram, thực hiện tuần tự là điều không khả thi. Chính vì vậy, ta cần một kiến trúc mới, xử lí tuần tự như MapReduce. Lúc này Distributed Data Processing cho dữ liệu lớn trở nên khả thi hơn bao giờ hết.
Bài toán thực tế cho thấy ta có:
Documents: file cần xử lý với dung lượng khổng lồ, cỡ Petabyte
Master: thực hiện tính toán phân chia cho các worker trên system. Dựa vào tài nguyên thì mỗi worker sẽ có khả năng xử lý nhất định, (MB/s)
Worker: Xử lí nội dung file theo yêu cầu từ phía master, sức mạnh của các worker là ngang bằng nhau.
Áp dụng nguyên lý và ý tưởng từ Distributed Storage và Distributed Database, ta sẽ chia Documents thành các phần nhỏ. Mỗi phần sẽ vừa đủ để một Worker có thể xử lí
Trường hợp mỗi Worker có thể xử lý 256MB, ta sẽ chia document thành 4000 phần nhỏ. Nếu có 1000 workers, mỗi worker sẽ chịu trách nhiệm xử lý cho 4 Splits.
Lúc này, vai trò của master trở thành người giám sát, ghi lại tiến trình của từng worker. Phân phối Splits nếu worker đã không còn gì để mà xúc.
Để đảm bảo tính phân tán và stateless của mỗi worker, splits không phân chia tuần tự tới từng worker
Các splits không phân chia tuần tự tới từng worker
3. Handle khi MapReduce failTrong quá trình processing data, không thể tránh khỏi các trường hợp bị fail. Lúc này, khi một worker bị fail, master sẽ ghi nhận và đổi trạng thái của worker thành failed
Any map task or reduce task in progress on a failed worker is also reset to idle and becomes eligible for rescheduling
Bất kì Map task hay reduce task đang có trạng thái in progress hay failed đều sẽ reset về trạng thái idle và có thể rescheduling lại
Về phía master
If the master task dies,a new copy can be started from the last check pointed state. However, given that there is only a single master, its failure is unlikely ;therefore our current implementation aborts the MapReduce computation if the master fails. Client scan check for this condition and retry the MapReduce operation if they desir
Nếu master tiêu, một bản copy khác có thể bắt đầu lại từ trạng thái kiểm tra cuối cùng. Tuy nhiên, do chỉ có một master duy nhất, nên việc thất bại ở master thường không xảy ra. Do đó, trường hợp master fail, ta đơn giản hủy bỏ tính toán của MapReduce hiện tại, phía client có thể kiểm tra điều kiện này và thử lại ở MapReduce nào bị fail
4. Tham khảoThank you for your focus – Have a best friend – Happy coding!
Cập nhật thông tin chi tiết về Distributed Data Processing Using Mapreduce trên website Hsnf.edu.vn. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Chúc bạn một ngày tốt lành!