Công cụ thành viên

Công cụ trang web


mhst:ideas:mhst2014:maas

Tham gia phát triển dự án MNM OpenStack Sahara: phát triển dịch vụ Mahout-as-a-Service

Tóm tắt ý tưởng

Tham gia phát triển dự án mã nguồn mở OpenStack Sahara - cung cấp một công cụ để đơn giản hóa việc tạo ra các Hadoop Cluster trên nền tảng đám mây IaaS OpenStack. Ý tưởng cho MHST 2014 là tạo ra một dịch vụ đám mây Mahout-as-a-Service dựa vào nền tảng dự án OpenStack Sahara. Mahout là dự án mã nguồn mở tập trung vào việc xử lý các thuật toán khai phá dữ liệu trong môi trường phân tán. Sản phẩm hướng tới là một dịch vụ phân tích dữ liệu hỗ trợ nhiều môi trường và nền tảng khác nhau kể cả di động.

Kỹ năng yêu cầu

  • Có hiểu biết tốt về hệ điều hành Linux (Các bản phân phối Ubuntu, Debian, CentOS).
  • Có hiểu biết tốt về hệ thống mạng máy chủ.
  • Có kinh nghiệm làm việc (cài đặt, quản trị) cloud middleware: OpenStack.
  • Có kinh nghiệm làm việc với các API của OpenStack (sử dụng RESTful).
  • Có kinh nghiệm làm việc (cài đặt, quản trị) Hadoop cluster.
  • Có khả năng lập trình tốt Python, Java, PHP.
  • Có kinh nghiệm tạo giao diện ứng dụng cho Web.
  • Có khả năng lập trình cho thiết bị di động.
  • Ham tìm hiểu, học hỏi, khả năng chịu áp lực cao.
  • Tiếng Anh đọc, hiểu tài liệu.

Mô tả chi tiết

Mục tiêu

Mục tiêu của ý tưởng được chia thành các bước thực hiện như sau:

  1. Cài đặt hệ thống cloud middleware OpenStack (phiên bản IceHouse) trên máy chủ của Viện nghiên cứu quốc tế về khoa học và kỹ thuật tính toán - ICSE, Trường Đại học Bách Khoa Hà Nội, cấu hình của hệ thống như sau:
    • 1 nút điều khiển (controller node): 24 Cores, 32 GB RAM, 1.5 TB HDD.
    • 5 nút tài nguyên cho ảo hóa (compute node): Mỗi nút 16 Cores, 16 GB RAM, 1.5 TB HDD.
    • Hệ thống lưu trữ: SAS Based Storage 24TB, Dell R720 Storage Server.
    • Backup Server: Dell R720, 2xIntel Xeon E5-2609 Processors, 16GB RAM.
  2. Triển khai mã nguồn dự án OpenStack Sahara:
    • Cài đặt và cấu hình Sahara (cung cấp máy ảo và triển khai Hadoop cluster).
    • Cấu hình MapReduce: chọn job type: pig, hive, jar-file, v.v…, cung cấp job script, chọn I/O data location, thực hiện các jobs, lấy kết quả.
    • Liên kết với dịch vụ lưu trữ OpenStack Swift.
  3. Phát triển công cụ giám sát (monitoring) hệ thống dựa vào OpenStack Ceilometer và nền tảng MNM Nagios.
  4. Triển khai Mahout trên hệ thống OpenStack Sahara, cung cấp API cho người sử dụng .
  5. Xây dựng giao diện web quản lý cho dịch vụ Mahout-as-a-Service.
  6. Xây đựng giao diện quản lý cho dịch vụ Mahout-as-a-Service trên thiết bị di động sử dụng hệ điều hành Android.
  7. Lên kịch bản kiểm thử và kiểm thử với dữ liệu thật.

Chức năng

Chức năng chính của dịch vụ Mahout-as-a-Service (MaaS) cung cấp cho người dùng bao gồm:

  • Thêm API cho sahara cho phép enable/disable Mahout trên Hadoop cluster được khởi tạo
  • Thêm API cho phép đưa lên và thực hiện Mahout job.
  • Thêm API cho phép lấy về các thông tin giám sát hệ thống liên quan đến Mahout job.
  • Giao diện tương tác người dùng cho phép thống kê và tính phí dịch vụ theo thời gian và tổng tài nguyên sử dụng. (Web portal)

Cơ sở nền tảng

- Hệ thống máy chủ tại ICSE

- OpenStack

  • OpenStack là một middleware mã nguồn mở để triển khai dịch vụ nền tảng IaaS - một trong những thành phần quan trọng nhất của điện toán đám mây. OpenStack có thể dùng để xây dựng các đám mây từ công cộng, lai, xã hội đến đám mây riêng. Bên cạnh đó, dự án OpenStack đang được các doanh nghiệp tổ chức lớn trên thế giới hỗ trợ và thu hút được sự đóng góp to lớn của cộng đồng người dùng cũng như các nhà phát triển. Chính vì vậy, đây là nền tảng đám mây mã nguồn mở được sử dụng nhiều nhất hiện nay.

- Hadoop

  • Apache Hadoop là một nền tảng MNM hỗ trợ các ứng dụng lưu trữ và xử lý dữ liệu phân tán. Nó cho phép các ứng dụng làm việc với hàng nghìn máy chủ độc lập với lượng dữ liệu rất lớn. Bên cạnh đó, Hadoop cũng mạnh mẽ nhờ cung cấp một công cụ lập trình với dữ liệu - MapReduce.

- Mahout

  • Apache Mahout là một dự án MNM với mục tiêu chính là tạo các thuật toán khai phá dữ liệu có tính khả mở cao. Mahout khởi đầu là tập các thư viện giải thuật MapReduce cho nền tảng Apache Hadoop nên thừa kế khả năng làm việc với lượng dữ liệu lớn. Mặc dù hiện tại Mahout không tiếp tục xây dựng các thuật toán mới trên MapReduce (bắt đầu từ tháng 3 năm 2014) mà chuyển sang viết bằng DSL để chạy trên Apache Spark, tuy nhiên các thuật toán sẵn có trên MapReduce vẫn rất phổ biến và được cộng đồng sử dụng rộng rãi. Bên cạnh đó, Spark cũng hoàn toàn tương thích được dữ liệu lưu trữ trên Hadoop. Do đó, việc sử dụng Mahout dựa vào MapReduce là bước phát triển nền tảng cho bước tiếp theo của dự án - xây dựng dịch vụ dựa vào Apache Spark (future work).

Hình 1: Mô hình các lớp dịch vụ của “Mahout-as-a-Service

Sự kết hợp của ba nền tảng trên mang lại nhiều ưu điểm, cụ thể:

  1. Dễ dàng, nhanh chóng triển khai dịch vụ (tính năng của cloud computing)
  2. Dễ dàng thêm, bớt các cụm hadoop cluster (tính năng của OpenStack Sahara)
  3. Lưu trữ phân tán hiệu quả lượng dữ liệu lớn (tính năng của Hadoop)
  4. Khai phá dữ liệu trong môi trường phân tán (tính năng của Mahout)

Đánh giá mức độ khó

  • Khó

Mentors

Thông tin khác

  • Dự án sẽ được viện ICSE - ĐHBKHN hỗ trợ cung cấp máy chủ trong quá trình triển khai.
  • Dự án sẽ được hỗ trợ kinh nghiệm về điện toán đám mây từ các nghiên cứu viên của Viettel R&D.
  • Dịch vụ nếu thành công sẽ được viện ICSE của ĐHBKHN tiếp tục đầu tư phát triển, quảng bá và mở rộng sau cuộc thi.
  • Mahout-as-a-Service là một hướng phát triển có thể góp phần vào sự hoàn thiện của dự án MNM OpenStack Sahara.
  • Dự án sẽ là cơ sở tiền đề (kinh nghiệm) để phát triển dịch vụ Mahout-as-a-Service trên nền tảng Apache Spark (không sử dụng MapReduce). Đây chính là công việc tiếp theo của dự án sau khi thành công giai đoạn 1 (sử dụng MapReduce).
  • Với cộng đồng MNM thế giới nói chung và cộng đông phát triển, sử dụng OpenStack nói riêng, việc phát triển tiếp OpenStack Sahara sẽ là đóng góp quý báu và được thừa nhận.
  • Nếu chứng minh được hiệu quả hệ thống, dịch vụ sẽ thu hút được các doanh nghiệp đầu tư phát triển tạo ra sản phẩm thị trường với mục đích phân tích dữ liệu trong thập kỉ “bigdata” và “cloud computing” hiện nay.

Tham khảo

mhst/ideas/mhst2014/maas.txt · Sửa đổi lần cuối: 2014/09/05 03:26 bởi 127.0.0.1