| Welcome to Huynh's Collections. We hope you enjoy your visit. You're currently viewing our forum as a guest. This means you are limited to certain areas of the board and there are some features you can't use. If you join our community, you'll be able to access member-only sections, and use many member-only features such as customizing your profile, sending personal messages, and voting in polls. Registration is simple, fast, and completely free. Join our community! If you're already a member please log in to your account to access all of our features: |
| Hadoop có những thành phần nào? | |
|---|---|
| Tweet Topic Started: Dec 5 2013, 09:13 PM (433 Views) | |
| Huynhnb8x | Dec 5 2013, 09:13 PM Post #1 |
|
Th1nk
![]() ![]() ![]() ![]() ![]()
|
Dự án Hadoop của Apache có hai thành phần cốt lõi, kho lưu trữ tệp gọi là Hadoop Distributed File System (HDFS – Hệ thống tệp phân tán Hadoop) và khung công tác lập trình gọi là MapReduce. Có một số dự án hỗ trợ để sử dụng HDFS và MapReduce. Bài này sẽ cung cấp một cái nhìn sơ lược, bạn hãy tìm đọc cuốn sách của OReily "Hadoop The Definitive Guide", tái bản lần thứ 3, để biết thêm chi tiết. Các định nghĩa dưới đây nhằm cung cấp cho bạn những thông tin cơ bản để sử dụng các ví dụ mã tiếp theo. Bài này thực sự mong muốn giúp bạn bắt đầu bằng trải nghiệm thực hành với công nghệ này. Đây là một bài hướng dẫn hơn là bài hỏi đáp thảo luận. HDFS: Nếu bạn muốn có hơn 4000 máy tính làm việc với dữ liệu của bạn, thì tốt hơn bạn nên phổ biến dữ liệu của bạn trên hơn 4000 máy tính đó. HDFS thực hiện điều này cho bạn. HDFS có một vài bộ phận dịch chuyển. Các Datanode (Nút dữ liệu) lưu trữ dữ liệu của bạn và Namenode (Nút tên) theo dõi nơi lưu trữ các thứ. Ngoài ra còn có những thành phần khác nữa, nhưng như thế đã đủ để bắt đầu. MapReduce: Đây là mô hình lập trình cho Hadoop. Có hai giai đoạn, không ngạc nhiên khi được gọi là Map và Reduce. Để gây ấn tượng với các bạn bè của bạn hãy nói với họ là có một quá trình shuffle-sort (ND.: một quá trình mà hệ thống thực hiện sắp xếp và chuyển các kết quả đầu ra của map tới các đầu vào của các bộ rút gọn) giữa hai giai đoạn Map và Reduce. JobTracker (Trình theo dõi công việc) quản lý hơn 4000 thành phần công việc MapReduce. Các TaskTracker (Trình theo dõi nhiệm vụ) nhận các lệnh từ JobTracker. Nếu bạn thích Java thì viết mã bằng Java. Nếu bạn thích SQL hoặc các ngôn ngữ khác không phải Java thì rất may là bạn có thể sử dụng một tiện ích gọi là Hadoop Streaming (Luồng dữ liệu Hadoop). Hadoop Streaming: Một tiện ích để tạo nên mã MapReduce bằng bất kỳ ngôn ngữ nào: C, Perl, Python, C++, Bash, v.v. Các ví dụ bao gồm một trình mapper Python và một trình reducer AWK. Hive và Hue: Nếu bạn thích SQL, bạn sẽ rất vui khi biết rằng bạn có thể viết SQL và yêu cầu Hive chuyển đổi nó thành một tác vụ MapReduce. Đúng là bạn chưa có một môi trường ANSI-SQL đầy đủ, nhưng bạn có 4000 ghi chép và khả năng mở rộng quy mô ra nhiều Petabyte. Hue cung cấp cho bạn một giao diện đồ họa dựa trên trình duyệt để làm công việc Hive của bạn. Pig: Một môi trường lập trình mức cao hơn để viết mã MapReduce. Ngôn ngữ Pig được gọi là Pig Latin. Bạn có thể thấy các quy ước đặt tên hơi khác thường một chút, nhưng bạn sẽ có tỷ số giá-hiệu năng đáng kinh ngạc và tính sẵn sàng cao. Sqoop: Cung cấp việc truyền dữ liệu hai chiều giữa Hadoop và cơ sở dữ liệu quan hệ yêu thích của bạn. Oozie: Quản lý luồng công việc Hadoop. Oozie không thay thế trình lập lịch biểu hay công cụ BPM của bạn, nhưng nó cung cấp cấu trúc phân nhánh if-then-else và điều khiển trong phạm vi tác vụ Hadoop của bạn. HBase: Một kho lưu trữ key-value có thể mở rộng quy mô rất lớn. Nó hoạt động rất giống như một hash-map để lưu trữ lâu bền (với những người hâm mộ python, hãy nghĩ đến một từ điển). Nó không phải là một cơ sở dữ liệu quan hệ, mặc dù có tên là HBase. FlumeNG: Trình nạp thời gian thực để tạo luồng dữ liệu của bạn vào Hadoop. Nó lưu trữ dữ liệu trong HDFS và HBase. Bạn sẽ muốn bắt đầu với FlumeNG, để cải thiện luồng ban đầu. Whirr: Cung cấp Đám mây cho Hadoop. Bạn có thể khởi động một hệ thống chỉ trong vài phút với một tệp cấu hình rất ngắn. Mahout: Máy học dành cho Hadoop. Được sử dụng cho các phân tích dự báo và phân tích nâng cao khác. Fuse: Làm cho hệ thống HDFS trông như một hệ thống tệp thông thường, do đó bạn có thể sử dụng lệnh ls, cd, rm và những lệnh khác với dữ liệu HDFS. Zookeeper: Được sử dụng để quản lý đồng bộ cho hệ thống. Bạn sẽ không phải làm việc nhiều với Zookeeper, nhưng nó sẽ làm việc rất nhiều cho bạn. Nếu bạn nghĩ rằng bạn cần viết một chương trình có sử dụng Zookeeper thì bạn hoặc là rất, rất thông minh và bạn có thể là một ủy viên cho một dự án Apache hoặc bạn sắp có một ngày rất tồi tệ. Hình 1 cho thấy các phần quan trọng của Hadoop. Hình 1. Kiến trúc Hadoop Hình này hiển thị kiến trúc hadoop HDFS, tầng dưới cùng, nằm trên một cụm phần cứng thông thường. Các máy chủ lắp vào tủ khung (rack-mounted) đơn giản, mỗi máy chủ có các CPU lõi 2-Hex, 6 đến 12 đĩa và 32 Gb ram. Đối với một công việc map-reduce, tầng trình ánh xạ đọc từ các đĩa ở tốc độ rất cao. Trình ánh xạ phát ra các cặp khóa giá trị được sắp xếp và được đưa tới trình rút gọn và tầng trình rút gọn tóm lược các cặp key-value. Không, bạn không phải tóm lược các cặp key-value, trên thực tế bạn có thể có một tác vụ map-reduce chỉ có có các trình ánh xạ. Điều này sẽ trở nên dễ hiểu hơn khi bạn xem ví dụ python-awk. Hadoop tích hợp với cơ sở hạ tầng Informix hoặc DB2 như thế nào? Hadoop tích hợp rất tốt với cơ sở dữ liệu Informix và cơ sở dữ liệu DB2 thông qua Sqoop. Sqoop là công cụ nguồn mở hàng đầu để di chuyển dữ liệu giữa Hadoop và các cơ sở dữ liệu quan hệ. Nó sử dụng JDBC để đọc và viết vào Informix, DB2, MySQL, Oracle và các nguồn khác. Có các bộ thích ứng được tối ưu hoá cho một vài cơ sở dữ liệu, bao gồm Netezza và DB2. Hãy xem phần Tài nguyên về cách tải về các bộ thích ứng này. Tất cả các ví dụ đều là đặc trưng của Sqoop. |
| Knowledge crawling | |
![]() |
|
| « Previous Topic · Tài liệu sưu tầm · Next Topic » |
| Track Topic · E-mail Topic |
9:00 AM Jul 11
|
Theme by James... of the ZBTZ and themeszetaboards.com





![]](http://z5.ifrm.com/static/1/pip_r.png)



9:00 AM Jul 11