Chúng tôi sẽ mua một số phần cứng mới để sử dụng chỉ cho một cụm Hadoop và chúng tôi đang mắc kẹt vào những gì chúng ta nên mua. Giả sử chúng ta có ngân sách $ 5k nên chúng ta mua hai máy siêu đẹp ở mức $ 2500/mỗi, bốn máy khoảng $ 1200/mỗi hoặc tám vào khoảng $ 600 mỗi cái? Hadoop có hoạt động tốt hơn với các máy chậm hơn hoặc ít máy nhanh hơn nhiều không? Hoặc, giống như hầu hết mọi thứ "nó phụ thuộc"? :-)Cụm Hadoop. 2 máy nhanh, 4 trung bình, 8 máy chậm hơn?
Trả lời
Nói chung, bạn nên sử dụng Hadoop để nhận thêm một số máy bổ sung ít lành mạnh hơn. Bạn hầu như không bao giờ nhìn thấy các bảng dữ liệu với hơn 16GB ram và CPU quad-core kép, và thường chúng nhỏ hơn thế.
Bạn luôn phải chạy một dưới dạng nút tên (chính), và thường bạn cũng không chạy một nút dữ liệu (công nhân/nô lệ) trên cùng một hộp, mặc dù bạn có thể do cụm của bạn nhỏ. Giả sử bạn không, mặc dù, nhận được 2 máy sẽ để lại cho bạn chỉ có 1 nút công nhân, mà phần nào đánh bại mục đích. (Không hoàn toàn, bởi vì bạn vẫn có thể chạy 4-8 công việc song song với nô lệ, nhưng vẫn còn.)
Đồng thời, bạn không muốn có một cụm 1000 486. Nếu ngân sách của bạn là 5 nghìn đô la, tôi sẽ tạo ra số dư và thực hiện 4 máy 1200 đô la. Những người sẽ cung cấp một cơ sở phong nha về hiệu suất cá nhân, bạn sẽ có 3 datanodes để phân phối công việc, và bạn sẽ có chỗ để phát triển cụm của bạn nếu bạn cần.
Những điều cần lưu ý: bạn sẽ muốn chạy nhiều bản đồ hoặc giảm tác vụ cho mỗi nút dữ liệu và điều đó có nghĩa là nhiều JVM chạy đồng thời. Tôi sẽ cố gắng thu được ít nhất 4GB và tốt nhất là 8GB ram. CPU ít quan trọng vì hầu hết các công việc MR đều bị ràng buộc bởi IO. Bạn có thể có thể có được một máy như thế này cho mục tiêu giá 1200 đô la của bạn, vì vậy đó là phiếu bầu của tôi.
Tôi khuyên bạn nên xem bản trình bày này: http://www.cloudera.com/hadoop-training-thinking-at-scale Tại đây, các chuyên gia và mô hình khác nhau được mô tả.
Tóm lại, bạn muốn tối đa số lượng lõi bộ xử lý và đĩa. Bạn có thể hy sinh độ tin cậy và chất lượng, nhưng không có phần cứng rẻ nhất ngoài kia, vì bạn sẽ có quá nhiều vấn đề về độ tin cậy.
Chúng tôi đã đi với máy chủ Dell 4 lõi dell 2xCPU, vì vậy 8 lõi mỗi hộp. Bộ nhớ 16GB mỗi hộp, là 2GB mỗi lõi, một chút thấp khi bạn cần bộ nhớ cho cả nhiệm vụ của bạn và cho bộ đệm đĩa. Ổ cứng 5x500GB và tôi muốn chúng tôi sử dụng ổ đĩa terabyte hoặc cao hơn thay thế.
Đối với các ổ đĩa, ý kiến của tôi là mua các ổ đĩa rẻ hơn, chậm, không đáng tin cậy, có dung lượng cao như trái ngược với các ổ đĩa đắt tiền, nhanh hơn, nhỏ hơn, đáng tin cậy hơn. Nếu bạn đang gặp vấn đề với thông lượng đĩa, nhiều bộ nhớ hơn sẽ giúp đệm.
Đây có lẽ là cấu hình mạnh hơn bạn đang xem, nhưng tối đa lõi và ổ đĩa so với mua thêm hộp thường là lựa chọn tốt - chi phí năng lượng ít hơn, quản trị dễ dàng hơn và nhanh hơn đối với một số thao tác.
Các ổ đĩa khác có nghĩa là thông lượng đĩa đồng thời hơn trên mỗi lõi, do đó, có nhiều ổ đĩa như lõi là một điều tốt. Benchmarking dường như chỉ ra rằng cấu hình RAID chậm hơn so với cấu hình JBOD (chỉ gắn các ổ đĩa và có tải Hadoop trên chúng) và JBOD cũng đáng tin cậy hơn.
LAST! Hãy chắc chắn để có được bộ nhớ ECC. Hadoop đẩy terabyte dữ liệu thông qua bộ nhớ và một số người dùng đã nhận thấy rằng cấu hình bộ nhớ không phải ECC đôi khi có thể giới thiệu các lỗi bit đơn lẻ trong bộ dữ liệu có kích thước terabyte. Gỡ lỗi các lỗi này là một cơn ác mộng.
Tôi nghĩ rằng câu trả lời cũng phụ thuộc vào kỳ vọng của bạn về cụm phát triển và công nghệ mạng mà bạn đang sử dụng.Nếu bạn đồng ý với ethernet 1GB - thì loại máy ít quan trọng hơn. Đồng thời - nếu bạn muốn có 10GB ethernet - bạn nên chọn số lượng máy nhỏ hơn để giảm chi phí kết nối mạng.
tài liệu tham khảo khác: http://hadoopilluminated.com/hadoop_book/Hardware_Software.html (từ chối trách nhiệm: Tôi là một đồng tác giả của cuốn sách hadoop miễn phí này)
- 1. Hơn so với lõi nhanh hơn trên máy chủ web
- 2. Cấu hình chậm hơn Hadoop
- 3. Máy phát hoán vị nhanh hơn
- 4. Cách tính trung bình đường chéo nhanh hơn trong ma trận lớn
- 5. Graphics.drawImage() trong Java cực kỳ chậm chạp trên một số máy tính nhưng nhanh hơn nhiều trên các máy khác
- 6. Trò chơi đua xe, xe di chuyển nhanh hơn trên máy tính nhanh hơn
- 7. Tại sao chính xác là hiển thị HTML phía máy chủ nhanh hơn phía máy khách?
- 8. Bộ lọc nhanh trung bình trong C++
- 9. Máy ảo 32 hoặc 64 bit nhanh hơn trên máy 64 bit (vmware)
- 10. 2 luồng chậm hơn 1?
- 11. Làm chậm CPU để mô phỏng máy tính chậm hơn trong kiểm tra trình duyệt
- 12. Hadoop trên cửa sổ máy chủ
- 13. Trung bình nhanh mà không có phân chia
- 14. Tại sao cụm từ thông dụng này nhanh hơn?
- 15. Tại sao Ruby chạy chậm hơn rất nhiều trên máy chủ Windows so với trên máy tính Windows dev?
- 16. Websockets nhanh hơn WebRTC?
- 17. Không phải là Hadoop nhiều lưới hơn là một cụm sao?
- 18. Máy phân loại bảng Javascript nhanh?
- 19. Máy tính cụm trong Go
- 20. Tìm trung tâm của một cụm
- 21. Làm cách nào để có được trung bình (trung bình) của các cột được chọn
- 22. Nhân OpenCL của tôi chậm hơn trên phần cứng nhanh hơn .. Nhưng tại sao?
- 23. ma trận trung bình hiệu quả
- 24. Ghi nhật ký Python cực kỳ chậm trên máy chủ Linux ... nhưng nhanh trên máy phát triển Linux?
- 25. Tại sao java.lang.Object.getClass() (và phản chiếu) chậm hơn bình thường?
- 26. Số lớn hơn 2^32 được xử lý bởi máy 32 bit như thế nào?
- 27. Số lượng Máy chủ SQL chậm
- 28. Tắt máy Tomcat RẤT chậm sau khi gọi tắt máy.
- 29. Thư viện học máy chung nhanh nhất?
- 30. điều gì sẽ xảy ra khi máy chủ tcp/udp xuất bản nhanh hơn máy khách đang tiêu thụ?
Hãy thử http://www.serverfault.com – TheTXI
Đây không phải là một vấn đề quản trị hệ thống. Các tài nguyên có sẵn cho Hadoop vốn có trong thiết kế của cụm Hadoop. – skaffman