Một, mấu chốt khái niệm
1.Client bản cài đặt
Tác dụng: Đệ trình mapreduce nhiệm vụ máy tính.
2.Resource manager
Tác dụng: Dùng cho quản lý toàn bộ tụ quần tài nguyên điều hành phân phối, bao hàm Applications manager cùng Resource Scheduler.
( 1 ) Applications manager: Quản lý mỗi cái đệ trình nhiệm vụ, sáng tạo mỗi cái nhiệm vụ Application master.
( 2 ) Resource Schedule: Dùng cho quản lý mỗi cái nhiệm vụ tài nguyên phân phối, sẽ phân phối cho mỗi cái nhiệm vụ tương ứng tài nguyên ( container )
3.ApplicationMaster
Tác dụng: Phụ trách bản cài đặt đệ trình Job điều hành tiến trình, mỗi cái job đối ứng một cái applicationMaster.
4.Node manager
Tác dụng: Đơn cái tiết điểm tài nguyên quản lý khí. Bao hàm tính toán tài nguyên Container, là mỗi cái map hoặc là reduce nhiệm vụ vận hành vị trí. Một cái Node manager có thể có bao nhiêu cái Container, mỗi cái Container vận hành một cái map hoặc là reduce nhiệm vụ.
Ghi chú: maptask cùng reducetask cam chịu tài nguyên là 1G nội tồn cùng 1 hạch CPU,
Nhị, công tác lưu trình
1. Dàn giáo đồ
2. Đệ trình lưu trình
( 1 ) Clinet hướng RM xin tài nguyên, RM thượng có tất cả NM tiết điểm tài nguyên tin tức, RM đem tài nguyên tin tức (Node Manager hostname, cùng với phân phối nội tồn cùng CPU lớn nhỏ ) gửi đi cấp Client
( 2 ) Client căn cứ thỉnh cầu đến tài nguyên tin tức gửi đi đến đối ứng Node Manager, Node Manager trung sinh ra Container đối tượng, sau đó ở Container đối tượng trung thuyên chuyển tương quan số hiệu, khởi động Application Master
( 3 ) Application Master bắt đầu thu hoạch bản cài đặt đệ trình job tương quan thiết trí tin tức. Tỷ như, đạt được được đến map task số lượng ( từ InputFormat getSplits phương pháp quyết định ) cùng reduce task số lượng ( từ tham số mapreduce.job.reduces ảnh hưởng )
( 4 ) Application Master hướng RM xin Map Task vận hành tài nguyên ( một cái Map Task hoặc là Reduce Task liền yêu cầu xin một cái container), RM đem phân phối tài nguyên gửi đi cấp Application Master
( 5 ) cùng ( 6 ) Application Master viễn trình thuyên chuyển NM tương quan phương pháp khởi động đối ứng Container, cũng ở Container trung khởi động đối ứng Map Task
( 7 ) bao hàm hai loại nhiệm vụ:
-》map Task: Đương một cái Map Task chấp hành hoàn thành sau, sẽ thông tri AM tiến trình, trước mặt Map Task chấp hành hoàn thành;
-》reduce Task: Đương tổng Map Task trung có 5% chấp hành hoàn thành, AM hướng RM xin reduce task vận hành tài nguyên ( một cái task yêu cầu một cái container), RM đem tài nguyên tin tức gửi đi cấp AM, AM ở đối ứng NM tiết điểm khởi động đối ứng Container, cũng ở Container trung vận hành đối ứng reduce task nhiệm vụ
( 8 ) đương reduce task nhiệm vụ chấp hành hoàn thành sau, sẽ thông tri Application Master tiến trình, cùng với tiến thêm một bước thông tri Applications Manager. Đương sở hữu reduce task chấp hành hoàn thành, AM thông tri client tỏ vẻ trình tự chấp hành hoàn thành.
Tam, Map cùng Reduce chi tiết điều hành
1.map task vận hành vị trí
map task vận hành vị trí là từ RM phản hồi cấp AM tài nguyên thời điểm quyết định, bởi vì RM thượng sẽ có toàn bộ CPU cùng nội tồn, đã sử dụng CPU cùng nội tồn, RM sẽ căn cứ tầng dưới chót viết tốt thuật toán, phản hồi bản cài đặt NM tin tức.
RM ở phân phối tài nguyên thời điểm, sẽ tận khả năng đem Map Task khởi động đến đối ứng số liệu tiết điểm thượng. Nói như vậy AM ở khởi động RM thời điểm liền sẽ ở số liệu tiết điểm thượng khởi động xử lý nên số liệu task nhiệm vụ, nên cơ chế gọi là mapreduce số liệu bản địa hóa cơ chế. Nhưng là, nếu số liệu tiết điểm bản địa tài nguyên không đủ, liền sẽ lựa chọn cùng cái cơ giá mặt khác máy móc, nhất thứ là mặt khác cơ giá server.
Một cái maptask cam chịu sử dụng 1 hạch cpu, sử dụng 1G nội tồn.
2.reduce task vận hành vị trí
Cam chịu thuật toán phân phối, cái này giống nhau vô pháp chỉ định.
3.map số lượng thiết trí
MapReduce có hai bộ API, org.apache.hadoop.mapred( cũ API) cùng org.apache.hadoop.mapreduce( tân API), khai phá khi cơ bản dùng tân API. Map cùng reduce số lượng chịu hai cái thao tác ảnh hưởng, split cùng partition, một cái split chính là đối ứng một cái maptask, một cái partition đối ứng một cái reduce số liệu đưa vào.
Tân phiên bản mapreduce textInputFormat sử dụng tham số: mapreduce.input.fileinputformat.split.maxsize cùng mapreduce.input.fileinputformat.split.minsize tới khống chế split cũng chính là map số lượng.
( 1 ) công thức: split_size = max(minsize,min(maxsize,blocksize))
Trong đó, tham số cam chịumaxsizeVì Long.MaxValue,minsize vì 0, cho nên cam chịu map lớn nhỏ tương đương blocksize, cũng chính là 128M; nếu muốn tăng nhiều map số lượng, liền đem maxsize giá trị thiết trí so blocksize tiểu; nếu muốn giảm bớt map số lượng, liền đem minsize giá trị thiết trí so blocksize đại.
( 2 ) phương pháp một: Đệ trình job khi
bin/hadoop jar Hadoop.jar Hadoop.WordCountOnline /core-site.xml /output8 -Dmapreduce.input.fileinputformat.split.maxsize=20191226l -Dmapreduce.input.fileinputformat.split.minsize=1000
Kết quả:
[root@hadoop01 hadoop-2.6.0-cdh5.7.0]# bin/hadoop jar Hadoop.jar Hadoop.WordCountOnline /core-site.xml /output8 -Dmapreduce.input.fileinputformat.split.maxsize=20191226l -Dmapreduce.input.fileinputformat.split.minsize=1000
Kết quả:
19/04/04 12:52:19 INFO mapreduce.Job: Counters: 49
File System Counters
FILE: Number of bytes read=1357
FILE: Number of bytes written=337515
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
HDFS: Number of bytes read=1080
HDFS: Number of bytes written=998
HDFS: Number of read operations=9
HDFS: Number of large read operations=0
HDFS: Number of write operations=4
Job Counters
Launched map tasks=1
Launched reduce tasks=2
Data-local map tasks=1
Total time spent by all maps in occupied slots (ms)=3219
Total time spent by all reduces in occupied slots (ms)=13345
Total time spent by all map tasks (ms)=3219
Total time spent by all reduce tasks (ms)=13345
Total vcore-seconds taken by all map tasks=3219
Total vcore-seconds taken by all reduce tasks=13345
Total megabyte-seconds taken by all map tasks=3296256
Total megabyte-seconds taken by all reduce tasks=13665280
Map-Reduce Framework
Map input records=28
Map output records=133
Map output bytes=1513
Map output materialized bytes=1357
Input split bytes=99
Combine input records=133
Combine output records=87
Reduce input groups=87
Reduce shuffle bytes=1357
Reduce input records=87
Reduce output records=87
Spilled Records=174
Shuffled Maps =2
Failed Shuffles=0
Merged Map outputs=2
GC time elapsed (ms)=366
CPU time spent (ms)=3300
Physical memory (bytes) snapshot=625266688
Virtual memory (bytes) snapshot=8269815808
Total committed heap usage (bytes)=445120512
Shuffle Errors
BAD_ID=0
CONNECTION=0
IO_ERROR=0
WRONG_LENGTH=0
WRONG_MAP=0
WRONG_REDUCE=0
File Input Format Counters
Bytes Read=981
File Output Format Counters
Bytes Written=998
success:0
( 2 ) phương pháp nhị: Thông qua api ở trình tự trung thiết trí
FileInputFormat.setMaxInputSplitSize(job,20190101l);
FileInputFormat.setMinInputSplitSize(job,1000);
4.reduce số lượng thiết trí
Phương pháp một: Thông qua api thiết trí
job.setNumReduceTasks(2);
Bốn, MapReduce trình tự
1. Tham khảo: Đại số liệu điều chỉnh thử hoàn cảnh phối trí ( 2 ): IDEA phần ngoài liên tiếp Hadoop điều chỉnh thử hoàn cảnh phối trí cùng với bố trí jar bao đến serverhttps://blog.csdn.net/u010886217/article/details/89278390