Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

75 31 0
Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA TPHCM TRƯỜNG ĐẠI HỌC BÁCH KHOA -oOo ĐÀO VÂN HẰNG NGHIÊN CỨU VÀ XÂY DỰNG MÔ HÌNH XỬ LÝ DỮ LIỆU LỚN TRÊN NỀN HADOOP-HBASE Chuyên ngành: Khoa học máy tính Mã số: 604801 LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng năm 2012 CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TPHCM Cán hướng dẫn khoa học : PGS TS THOẠI NAM (Ghi rõ họ, tên, học hàm, học vị chữ ký) Cán chấm nhận xét :TS Trần Vũ Bình (Ghi rõ họ, tên, học hàm, học vị chữ ký) Cán chấm nhận xét : TS Trần Ngọc Minh (Ghi rõ họ, tên, học hàm, học vị chữ ký) Luận văn thạc sĩ bảo vệ HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 19 tháng năm 2012 Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị Hội đồng chấm bảo vệ luận văn thạc sĩ) TS Phạm Trần Vũ (CT) TS Trần Vũ Bình (PB1) TS Trần Ngọc Minh (PB2) PGS TS Thoại Nam (UV) TS Tân Hạnh (TK) Xác nhận Chủ tịch Hội đồng đánh giá LV Bộ môn quản lý chuyên ngành sau luận văn sửa chữa (nếu có) CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA KHOA KH VÀ KT MÁY TÍNH TRƯỜNG ĐH BÁCH KHOA TP HCM PHÒNG ĐÀO TẠO SĐH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc _ NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: ĐÀO VÂN HẰNG Phái: Nữ Ngày, tháng, năm sinh: 20-02-1967 Nơi sinh: Hà Nội Chuyên ngành: Khoa học máy tính MSHV: 10070478 I TÊN ĐỀ TÀI: Nghiên cứu xây dựng mơ hình xử lý liệu lớn Hadoop-HBase II NHIỆM VỤ VÀ NỘI DUNG: - Tìm hiểu xu hướng xử lý liệu lớn môi trường phân tán NoSQL Tìm hiểu Hadoop, HBase Xây dựng ứng dụng liệu lớn dùng hệ thống Hadoop-HBase So sánh với sở liệu quan hệ MySQL III NGÀY GIAO NHIỆM VỤ: 2/2012 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 30/06/2012 V CÁN BỘ HƯỚNG DẪN : TS THOẠI NAM TP HỒ CHÍ MINH, ngày 17 tháng năm 2012 CÁN BỘ HƯỚNG DẪN (Họ tên chữ ký) CHỦ NHIỆM BỘ MÔN ĐÀO TẠO (Họ tên chữ ký) TRƯỞNG KHOA (Họ tên chữ ký) LỜI CẢM ƠN Báo cáo trình bày tóm lược kiến thức mà tơi học NoSQL nói chung hệ thống Hadoop, Hbase nói riêng NoSQL xu hướng xử lý liệu lớn phát triển khoảng bốn năm trở lại chủ yếu cộng đồng mã nguồn mở có nhiều ứng dụng trang web thương mại viện nghiên cứu khoa học Từ môi trường thử nghiệm đến ứng dụng thật khoảng cách xa tốn nhiều công sức Tôi hy vọng thời gian tới thực hệ thống Hadoop-Hbase dự án cụ thể Trong suốt trình học tập làm việc cho luận văn nhận giúp đỡ nhiệt tình thầy Thoại Nam Tơi muốn gửi lời cảm ơn đến thầy, người định hướng hỗ trợ cho giải vấn đề Tôi muốn gửi lời cảm ơn đến cộng đồng mailing list hadoop, hbase Dù không quen biết cộng đồng giúp đỡ giải vấn đề hiệu Tôi gửi lời cảm ơn đến gia đình, người thân bạn bè động viên giúp đỡ tơi hồn thành cơng việc TĨM TẮT Trong thời gian gần nhu cầu xử lý liệu lớn ngày tăng cao phát triển mạng xã hội việc nghiên cứu khoa học Hệ thống NoSQL phát triển để làm việc với khối lượng liệu lớn khơng cần có lược đồ cố định Trong cộng đồng nguồn mở NoSQL có nhiều sản phẩm phục vụ cho mục đích khác Báo cáo trình bày tổng quan NoSQL sau chọn lựa hệ thống Hadoop-Hbase để thực ứng dụng xử lý liệu lớn trang web âm nhạc Báo cáo so sánh việc xử lý liệu Hadoop-Hbase với MySQL server đưa ý kiến độ lớn liệu đến đâu nên sử dụng sản phẩm Cuối báo cáo xem xét hướng phát triển mơ hình Hadoop-Hbase ABSTRACT The need to process big data has more increased recently because of social networks growth and science researches NoSQL database systems are developed to manage large volumes of data that not necessarily follow a fixed schemma In open source communities a lot of NoSQL softwares are developed to serve different purposes My thesis introduced to the NoSQL in general, then I presented an implementation of a data application in Hadoop-Hbase system used on a music website I also compared two system in my thesis : Hadoop-HBase and MySQL, giving opinion about when to use which system Finally my thesis examined the development trend of Hadoop-HBase model LỜI CAM ĐOAN Kết đạt đề tài thể trình học tập làm việc nhiều nguồn tài liệu khác Các tài liệu sử dụng đề tài trình bày phần tham khảo báo cáo Tôi xin cam đoan kết trình bày báo cáo thực hiện, không chép từ luận văn hay báo cáo khoa học tác giả khác kết luận văn chưa trình bày để lấy cấp trường MỤC LỤC DANH MỤC HÌNH Chương 1: Mở đầu 1.1 Nhu cầu xử lý liệu lớn môi trường phân tán 1.2 Mơ tả tốn liệu lớn đề tài 1.3 Đề xuất cách giải Chương 2: Mơ hình Hadoop-HBase 2.1 Giới thiệu loại NoSQL 2.1.1 Khái niệm NoSQL 2.1.2 Phân loại NoSQL 2.2 Hadoop 2.2.1 Map/Reduce Application Framework 2.2.1.1 Nền tảng lý thuyết từ mơ hình MapReduce Google [2] 2.2.1.2 Hiện thực MapReduce Hadoop 10 2.2.2 Hệ thống file phân bố HDFS 17 2.2.2.1 Hệ thống file phân bố Google 17 2.2.2.2 Cấu trúc đặc điểm HDFS 19 2.3 HBase 24 2.3.1 Nền tảng lý thuyết từ Big Table Google [3] 24 2.3.2 Cấu trúc HBase 24 2.4 HBase tích hợp MapReduce 32 Chương 3: Hiện thực cách giải toán lưu trữ, tìm kiếm phân tích liệu từ việc tương tác với người dùng Internet 37 3.1 Phân tích lớp tốn tổng qt 37 3.2 Cách giải cho toán cụ thể 38 3.2.1 Mô tả vấn đề 38 3.2.2 Thiết kế liệu cho HBase 39 3.2.3 Thiết lập hệ thống 41 3.2.4 Xử lý liệu Hadoop-HBase 44 3.2.5 Phân tích liệu từ HBase với MapReduce 50 Chương 4: Đánh giá kết quả, so sánh với MySQL 53 4.1 Mơ hình thử nghiệm 53 4.2 Dữ liệu trang web âm nhạc xử lý MySQL 53 4.3 Dữ liệu trang web âm nhạc xử lý hệ thống Hadoop-HBase 54 4.4 So sánh hai hệ thống MySQL Hadoop-HBase 57 4.4.1 Dữ liệu thử 57 4.4.2 Các tiêu chí so sánh hệ thống Hadoop-HBase MySQL 58 4.4.3 Kết so sánh 58 4.4.4 Kết luận 62 Chương 5: Kết luận hướng phát triển 63 5.1 Kết luận 63 5.2 Hướng phát triển 64 TÀI LIỆU THAM KHẢO 66 DANH MỤC HÌNH Hình 2-1 Dịng chảy liệu MapReduce với reduce task nhất…… 12 Hình 2-2 Dịng chảy liệu MapReduce với nhiều reduce task…………… 13 Hình 2-3 Dịng chảy liệu MapReduce khơng có reduce task…………… 13 Hình 2-4 Hadoop thực thi job MapReduce………………………… 14 Hình 2-5 Phân cấp lớp InputFormat…………………………………… 16 Hình 2-6 Phân cấp lớp OutputFormat…………………………………… 17 Hình 2-7 Kiến trúc Google File System………………………………… 19 Hình 2-8 Hệ thống file Hadoop……………………………………………… 21 Hình 2-9 Một client đọc data từ HDFS……………………………………… 22 Hình 2-10 Một client ghi data đến HDFS…………………………………… 23 Hình 2-11 Rows columns giống thẻ (tags)……………………… 26 Hình 2-12 Một góc nhìn theo thời gian thành phần row…… 27 Hình 2-13 Row biểu diễn dạng bảng tính………………………….27 Hình 2-14 Rows nhóm lại thành group…………………………… 28 Hình 2-15 Các thành phần HBase cluster…………………………… 31 Hình 2-16 HBase dùng thành phần riêng ………………………31 Hình 2-17 Quá trình MapReduce…………………………………………… 33 Hình 2-18 Phân cấp InputFormat………………………………………… 33 Hình 2-19 Sự phân cấp Mapper………………………………………… 34 Hình 2-20 Sự phân cấp Reducer………………………………………… 34 Hình 2-21 Thứ tự OutputFormat………………………………………… 34 Hình 3-1 Mơ hình tốn Hadoop-HBase…………………………… 40 Hình 3-2 Kiến trúc hệ thống …………………………………………… 40 Hình 3-3 Các daemons master……………………………………………44 Hình 3-4 Các daemons slave…………………………………………… 44 Hình 4-1 Import liệu từ file data.tsv 2.4GB……………………………… 55 Hình 4-2 delete, get HBase shell………………………………………… 55 Hình 4-3 Trạng thái job Analyze data job thực thi…………… 56 Hình 4-4 Thư mục kết sau Analyze………………………………… 56 Hình 5-1 Kết hợp LAM(M)P Hadoop…………………………………… 65 Hình 5.2 Kết hợp LAM(M)P-Hadoop-HBase……………………………… 65 Tìm kiếm liệu: dùng select Ví dụ chương 3: Hiển thị message mà user_id viết khoảng thời gian ts1 ts2 mysql>select * from user-music where userid=@user_id and timestamp between @ts1 and @ts2 Xóa liệu: Ví dụ: Xóa message userid=’user_000639’, timestamp ts1 mysql>delete from timestamp=@ts1; user-music where userid=’user_000639’ and Phân tích liệu (Analyze) Ví dụ: Xếp hạng nhạc theo số lần truy cập mysql>select trackname, count(*) as luot_truy_cap from user-music group by trackname order by luot_truy_cap; 4.3 Dữ liệu trang web âm nhạc xử lý hệ thống HadoopHBase Tạo sẵn table user-music có column family cf1 trải dài 10 regions [hang@master hbase]HADOOP_CLASSPATH=`hbase classpath`hbase org.apache.hadoop.hbase.util.RegionSplitter –c 10 –f cf1 user-music Import liệu [hang@master hadoop]hadoop jar importHFile.jar ImportToHFile Thời gian thực thi khoảng 25 phút Kết hình 4.1 Sau dùng tiện ích completebulkload có sẵn HBase để ghi HFile thành table [hang@master hadoop]HADOOP_CLASSPATH=`hbase classpath` hadoop jar $HBASE_HOME/hbase-0.92.1.jar completebulkload /user/hang/output user-music Thời gian thực tác vụ nhanh khoảng 1-2 phút Insert liệu, Xóa Ngồi viết code dùng Put Delete ta dùng hbase shell để test số thao tác Hình 4.2 miêu tả insert, xóa hbase shell Các thao tác ứng dụng trang web âm nhạc dùng code java để thực 54 Hình 4-1 Import liệu từ file data.tsv 2.4GB Hình 4-2 delete, get HBase shell 55 Analyze Đếm số lượng truy cập nhạc [hang@master hadoop]hadoop jar Analyze.jar AnalyzeData Hình 4-3 Trạng thái job Analyze data job thực thi File kết nằm thư mục hdfs://master:54310/user/hang/analyze1 Hình 4-4 Thư mục kết sau Analyze Ta phải copy hệ thống file cục để đọc file 56 [hang@master hadoop]hadoop fs copyToLocal /user/hang/analyze1/kq.txt File kq.txt có dạng !Deladap "J" And You Will Know Us By The Trail Of Dead But Alive 15 38 Special 10,000 Maniacs 200 Sachen 2Raumwohnung 14 Doors Down 3-11 Porter 30 Seconds To Mars 112 311 45 Dip 4Hero 50 Cent 184 5Bugs 7L & Beyonder 7L & Esoteric 219 8Mm A Day To Remember 51 A Fine Frenzy A Perfect Circle A Taste Of Honey A Tribe Called Quest Aaliyah 10 Abba 64 … 11 4.4 So sánh hai hệ thống MySQL Hadoop-HBase 4.4.1 Dữ liệu thử File data.tsv 2.4GB trình bày phần import vào table data HBase hay table data MySQL Row Key HBase hay id MySQL tạo thành ghép userid timestamp từ data.tsv ví dụ user_0009952008-07-03T11:17:38Z Do cần import file data.tsv nhiều lần để có lượng liệu lớn ta thêm ký tự số hay chữ vào cuối RowKey (hoặc id) để tạo thành khóa khác có dạng user_0009952008-07-03T11:17:38Z0 user_0009952008-07-03T11:17:38Z1 user_0009952008-07-03T11:17:38Za Ngồi khóa column cịn lại data.tsv artist_id, artist_name, track_id, track_name File data.tsv chứa khoảng 15 triệu record Ta xét lượng liệu từ 15 triệu đến 250 triệu record, tức khoảng 2.5GB đến 35 GB liệu dạng text Khi import vào HBase cấu trúc lưu trữ HDFS có chế ghi trước vào file 57 WAL HBase nên dung lượng lưu trữ thật phình khoảng 250 GB HDFS cluster Hadoop-HBase Trên MySQL dung lượng lưu trữ khoảng 45GB Bản MySQL thử nghiệm chạy đơn version 5.1.6 CentOS 6.2 4.4.2 Các tiêu chí so sánh hệ thống Hadoop-HBase MySQL Performance (hiệu năng) hệ thống Khả mở rộng hệ thống lượng liệu tăng lên nhanh chóng Tính uyển chuyển hệ thống thay đổi cấu trúc table Tính kháng lỗi hệ thống Tính dễ sử dụng hệ thống 4.4.3 Kết so sánh Performance Trong ứng dụng trang web âm nhạc thao tác ghi lại hành vi người dùng liệu lớn theo nhãn thời gian (timestamp) tìm kiếm, thêm, cập nhật, xóa liệu Trên HBase khơng có thao tác cập nhật riêng mà coi hai thao tác: xóa column row thêm vào cho row column khác thêm hẳn một row khác Ta xét performance hai trường hợp: thao tác tìm kiếm, insert, delete riêng lẻ thao tác thực số lớn rows - Trường hợp thao tác tìm kiếm, insert, delete riêng lẻ Trên đồ thị thời gian thực thao tác thời gian trung bình năm lần thực thao tác Search Diagram (MySQL -select, HBase -get) giây 0.6 0.4 0.2 MySQL HBase 15 30 45 60 75 90 105 120 135 150 165 180 58 triệu record giây Insert Diagram (Insert, Put) 0.16 0.14 0.12 0.1 0.08 0.06 0.04 0.02 MySQL HBase 15 45 75 105 135 165 180 triệu record giây Delete 0.12 0.1 0.08 0.06 0.04 0.02 MySQL HBase 15 45 75 105 135 165 180 triệu record Thời gian đến có kết tìm kiếm 300 250 giây 200 150 MySQL 100 HBase 50 15 30 45 60 75 90 105 120 135 150 triệu record Nhận xét: Thời gian thực thao tác MySQL HBase nhanh giây Thời gian thực thao tác tìm kiếm HBase 59 có phần chậm chút bao gồm thời gian truyền liệu qua mạng cluster Thao tác delete HBase nhanh phải truyền row key mà khơng cần phải mang theo liệu column get put Thời gian thực thao tác hệ thống Hadoop-HBase khả quan so sánh với MySQL chạy máy khơng có cách biệt nhiều Bởi ta dự đoán thao tác hỗ trợ hệ thống cluster Hadoop-HBase thực tác vụ tốn thời gian thao tác hỗ trợ MySQL máy đơn - Trường hợp import liệu từ file text vào hệ thống Import data từ file text vào hệ thống Hadoop-HBase cách viết ứng dụng MapReduce đọc file text, tạo key cho row insert vào hệ thống (ứng dụng Importbulkroad giới thiệu phần 4.2) Trong MySQL tương ứng với việc insert liệu từ file text vào table tạm MySQL, tạo column tương ứng với row key HBase sau insert field cần thiết table tạm vào table data Thời gian import data từ file text 600 500 phút 400 300 MySQL 200 HBase 100 15 30 45 60 75 90 105 120 135 150 165 180 triệu record Thời gian insert lượng liệu lớn vào Hadoop-HBase nhiều hẳn so với MySQL phần Hadoop-HBase phải thực ghi ba lên ba vị trí region khác Phần khác chương trình MapReduce ImportBulkLoad chưa tối ưu Khả mở rộng hệ thống lượng liệu tăng lên nhanh chóng Máy tính chứa MySQL server thử nghiệm 50GB trống đĩa cứng Data gồm 250 triệu record chiếm dung lượng khoảng 35GB Khi ta tăng lên 60 khoảng 320 triệu record hệ thống báo đầy đĩa MySQL tự disconnect không chạy Để tiếp tục ta phải tạo hệ thống MySQL import toàn data hệ thống cũ sang hệ thống Trong với cluster máy có dung lượng 300GB HDFS chứa khoảng 300 triệu record, ta tăng lượng liệu lên khoảng 320 triệu record việc phải làm là: - Lấy thêm máy tính khác để tạo datanode HRegionServer - Tắt hệ thống cũ - Sửa lại file master slaves thư mục hadoop/conf regionservers hbase/conf để thêm datanode - Sửa lại file hosts máy cluster để thêm máy - Khởi động lại hệ thống - Tiếp tục insert số data thiếu - Thêm liệu tùy ý đến đủ chỗ Mặc dù data hệ thống Hadoop-HBase chiếm nhiều dung lượng đĩa không vấn đề lớn việc mở rộng hệ thống diễn theo chiều rộng cần thêm máy xong Tính uyển chuyển hệ thống thay đổi cấu trúc table Trong ứng dụng trang web âm nhạc ta tùy ý thêm column xác định trước column family, trường hợp cf1 Ví dụ để thêm column (tên album) Khi insert record ta cần thêm vào sau Ta lấy ví dụ hbase shell cho đơn giản không tính tổng quát Hbase shell>put ‘data’, rowkey, “cf1:albumn”,value Trong để thêm column table có sẵn MySQL ta phải dùng lệnh alter table Ví dụ để thêm column có tên album kiểu liệu varchar(255), thời gian cần thiết để chỉnh sửa table là: Thời gian thêm column 40 30 20 MySQL 10 HBase 15 45 75 105 triệu record 61 Nếu sau thêm column dung lượng table data lớn dung lượng đĩa ta trở trường hợp Tính kháng lỗi hệ thống Trong thực data hệ thống Hadoop-HBase cluster máy tính, máy tính bị lỗi làm cho HRegionServer khơng diện máy Hệ thống tiếp tục chạy Các region máy tính bị lỗi khôi phục máy HRegionServer khác có ba Khi ta thay máy tính bị lỗi máy tính khác hệ thống tự động cân tải chia lại số region máy tính sau thời gian MySQL server thử nghiệm khơng có tính nên cần phải có lưu dự phịng data Khi máy tính bị lỗi tồn lưu data đổ sang máy tính Tính dễ sử dụng hệ thống Mặc dù có nhiều ưu điểm Hadoop-HBase khó sử dụng đời chưa có nhiều tiện ích, tất phải viết code từ truy vấn Trong MySQL sở liệu quan hệ có cơng cụ truy vấn SQL quen thuộc dễ dàng thao tác với người không chuyên Việc cài đặt hệ thống khó khăn phải tự chỉnh sửa file cấu hình cho phù hợp Hệ thống Document cộng đồng cập nhật chưa hồn chỉnh MySQL tích hợp sẵn phần lớn Linux nay, ngồi MySQL có cài đặt Windows Tối ưu hóa hệ thống Hadoop-HBase đòi hỏi phải hiểu biết sâu sắc hệ thống Điều luận văn chưa thực thời gian có hạn 4.4.4 Kết luận Qua kết thực nghiệm ta thấy quy mơ liệu trang web cịn nhỏ ta nên dùng MySQL để tiết kiệm công sức cho việc xử lý liệu Khi trang web có khả thu hút người dùng nhiều hơn, liệu có khả lên tới Tera Byte ta nên bắt tay vào việc xây dựng hệ thống NoSQL phân bố, chẳng hạn hệ thống Hadoop-HBase nêu để chuẩn bị chuyển liệu sang Việc xây dựng hệ thống NoSQL tốn nhiều cơng sức ta phải lập trình từ đầu tùy theo ứng dụng thực tế để xây dựng chương trình khác Đây thách thức lớn cho trang web cung cấp dịch vụ hội với cách sử dụng phần cứng thơng thường NoSQL xử lý liệu lớn mà không cần đầu tư số tiền thiết bị tiền quyền hệ sở liệu nhiều 62 Chương 5: Kết luận hướng phát triển 5.1 Kết luận Trong giới Internet khoa học phát triển ngày lượng liệu phải xử lý bùng nổ khủng khiếp, nhiều khả xử lý hệ sở liệu thông thường cho dù hệ sở liệu cao cấp Oracle, DB2 v.v…Từ vịng 10 năm trở lại có cách tiếp cận liệu Luận văn giới thiệu sơ lược xu hướng NoSQL, dòng sản phẩm cho mục đích khác Luận văn chọn hệ thống Hadoop-HBase để nghiên cứu thực ứng dụng ý tưởng Hadoop, HBase Google sử dụng cộng đồng nguồn mở Hadoop, HBase tích cực Mơ hình MapReduce mơ hình tính tốn song song hiệu quả, phần mềm NoSQL khác tìm cách kết nối để sử dụng MapReduce Luận văn xét đến lớp toán xử lý liệu người dùng trang web đưa hướng giải tổng quát dùng hệ thống Hadoop-HBase Sau luận văn tập trung giải vấn đề cụ thể xử lý liệu người dùng trang web âm nhạc Luận văn xây dựng hệ thống Hadoop-HBase test ba máy tính dùng để chứa liệu , thiết kế liệu cho phù hợp với cấu trúc key/value HBase Dữ liệu test lấy từ trang web last.fm Luận văn dùng framework MapReduce viết chương trình ImportToHFile để đọc hàng từ file tsv vào HFile HBase, sau dùng tiện ích completebulkload có sẵn để nạp từ HFile vào table HBase Các thao tác nghe, tải nhạc, ghi, xóa hiển thị ý kiến thực tương ứng với tác vụ insert, tìm kiếm, xóa dùng API HBase Cơng việc phân tích liệu thực ứng dụng MapReduce HBase với Input row từ table user-music, ứng dụng giống ứng dụng đếm từ kinh điển MapReduce ứng dụng đếm số lần truy cập nhạc Luận văn dùng MySQL server để so sánh với hệ thống Hadoop-HBase Với lượng liệu 2.4GB tốc độ xử lý MySQL nhanh nhiều lần Với lượng liệu lên đến 10GB tốc độ MySQL nhanh cluster HadoopHBase node Luận văn so sánh đến 10GB liệu điều kiện thời gian máy móc không cho phép thử nghiệm nhiều Theo thảo luận forum Hadoop, HBase người đưa vào sử dụng hệ thống thật đưa khuyến cáo phải từ vài chục TB trở lên chạy cluster năm node nhiều lúc hệ thống thật ưu việt MySQL server Các hệ thống thật có hàng chục đến hàng ngàn regionserver Luận văn cố gắng đưa nhìn tổng quát hệ thống lớp ứng dụng Hadoop-HBase Các tốn cụ thể có cách xử lý liệu riêng biệt đòi hỏi phải lập trình nhiều 63 Cuối tơi đưa hướng phát triển luận văn cách kết hợp với ứng dụng Pig, Hive, Sqoop vào hệ thống Hadoop-HBase Một hướng phát triển hứa hẹn nhiều đột phá hệ thống hỗn hợp LAMP – Hadoop – HBase tận dụng ưu điểm hệ sở liệu quan hệ MySQL server NoSQL 5.2 Hướng phát triển Luận văn miêu tả khung loại ứng dụng web, nhiều khả để mở rộng phát triển Trong số dự án phát triển từ Hadoop ta thấy tích hợp thêm tiện ích để mở rộng đề tài như: - Pig: dùng loại ngôn ngữ gọi Pig Latin để mơ tả dịng liệu Quá trình MapReduce qua Pig trừu tượng hóa mức cao so với MapReduce Hadoop Những khó khăn phải lập trình để xử lý tập hợp liệu lớn cho vừa với framework MapReduce đơn giản nhiều sử dụng Pig Chương trình Pig Latin chuỗi tác vụ, biến đổi áp dụng lên data đầu vào thành MapReduce job Người lập trình khơng cần phải nhiều cơng sức cho q trình thực thi job mà tập trung vào nội dung liệu - Hive: framework dùng để tạo datawarehouse cho Hadoop Hive tạo để phát triển loại tương tự SQL dùng phân tích data, thực thi câu truy vấn liệu lớn Ngôn ngữ Hive HiveQL HiveQL truy vấn data từ HDFS Hiện truy cập table HBase từ Hive Chúng ta chờ đợi tích hợp chặt chẽ Hive vào HBase việc truy xuất liệu hệ thống dễ dàng uyển chuyển nhiều - Sqoop: công cụ để import liệu từ sở liệu quan hệ khác vào Hadoop để xử lý Hiện dùng Sqoop import liệu từ sở liệu quan hệ vào table HBase Khi có kết sau qua chuỗi phân tích Sqoop export kết sở liệu ban đầu - Hệ thống hỗn hợp [20] Các công cụ thường dùng website: L Linux A Apache M MySQL M Memcache P PHP/Perl Memcache hệ thống lưu trữ object liệu truy cập nhiều lần để tăng tốc độc truy xuất Nó thường sử dụng để tối ưu hóa việc tải liệu từ sở liệu cho ứng dụng web Ta thấy chương liệu chưa lớn MySQL hiệu nhiều so với hệ thống Hadoop-HBase Nếu dùng MySQL với memcached để 64 tạo nên hệ thống xử lý liệu trung gian trước chuyển qua Hadoop-HBase hiệu suất tính hệ thống cải thiện mở rộng nhiều Nếu sử dụng Hadoop cho xử lý phân tích liệu theo lơ (batch), liệu từ MySQL chuyển sang Hadoop cho tính tốn phân tích khơng địi hỏi online Ta sử dụng mơ hình sau cho ý tưởng Hình 5-1 Kết hợp LAM(M)P Hadoop Trong thời đại ngày thứ cần phải nhanh chóng tức thời nhu cầu phân tích liệu online lớn Hệ thống kết hợp với HBase để phân tích liệu online sau: Hình 5-2 Kết hợp LAM(M)P-Hadoop-HBase Đây mơ hình khả thi tận dụng khả xử lý liệu tốt MySQL lượng liệu chưa vượt TB đồng thời sử dụng khả xử lý liệu lớn Hadoop-HBase 65 TÀI LIỆU THAM KHẢO [1] Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung: The Google File System, ACM SIGOPS Operating Systems Review - SOSP '03, Volume 37 Issue 5, December 2003 [2] Jeffrey Dean, Sanjay Ghemawat: MapReduce: Simplified Data Processing on Large Clusters, OSDI 2004 [3] Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C Hsieh, Deborah A Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E Gruber: Bigtable: A Distributed Storage System for Structure Data, OSDI 2006 [4] Lars George: HBase: The Definitive Guide, O’Reilly Media, September 20, 2011 [5] Tom White: Hadoop: The Definitive Guide, O’Reilly Media October 12, 2012 , Edition: Third Edition [6] Amy Brown, Greg Wilson: The Architecture of Open Source Applications, Lulu.com, 2011 [7] http://nosql-database.org, February 25, 2012 [8] Oscar Celma Herrada: Music Recommendation and Discovery in the Long Tail, Doctoral Thesis Defense 2008 [9] Andrew Glover, Java development 2.0: Big data analysis with Hadoop MapReduce, IBM 2011 [10] http://www.last.fm/, February 20, 2012 [11] http://hadoop.apache.org, June 10, 2012 [12] http://hbase.apache.org/, June 10, 2012 [13] Chuck Lam: Hadoop in action, Manning Publications Co 2011 [14] Shashank Tiwari: Professional NoSQL, John Wiley & Sons Inc 2011 [15] Thi-Thu-Lan TRIEU: Intermediate Data Management for Map/Reduce Applications, Master Thesis 2010 [16] Ronald C Taylor: An overview of the Hadoop/MapReduce/HBase framework and its current applications in bioinformatics, The 11th Annual Bioinformatics Open Source Conference (BOSC) 2010 Boston, MA, USA 910 July 2010 [17] Lars George: Advanced HBase Schema Design, Berlin Buzzwors, June 2012 [18] http://musicbrainz.org/doc/MusicBrainz_Identifier , June 20, 2012 [19] Ji Qi, Ling Qian, and Zhiguo Luo: Distributed Structured Database System HugeTable, Department of Service Support Technology, China Mobile Research Institute, 100053 Beijing, China 66 [20] Lars George: Realtime Analytics using Hadoop & HBase, Cloudera Company [21] http://www.dtic.upf.edu/~ocelma/MusicRecommendationDataset/ February 25, 2012 67 LÝ LỊCH TRÍCH NGANG Họ tên học viên: ĐÀO VÂN HẰNG Nơi sinh: Hà Nội Ngày, tháng, năm sinh: 20-02-1967 Địa liên lạc: 54/1 Nguyễn Bỉnh Khiêm Q1 TPHCM Email: daovhang@gmail.com Điện thoại: 0918315513 QUÁ TRÌNH ĐÀO TẠO 1986-1992: Học đại học Khoa Cơ Khí Đại Học Bách Khoa BudapestHungary 1996-1999: Học đại học kỹ sư Khoa Khoa học Kỹ Thuật Máy Tính Đại Học Bách Khoa TPHCM 2010-2012: Học cao học Khoa Khoa học Kỹ Thuật Máy Tính Đại Học Bách Khoa TPHCM Q TRÌNH CƠNG TÁC 1996-1999: Nghiên cứu viên Viện Cơ Học Tin Học ứng dụng TPHCM 1999-2008: Kỹ sư phòng IT Trung Tâm Y Khoa Medic TPHCM 2008-2010: Kỹ sư phòng IT Cơng ty Cổ phần SAVIMEX TPHCM 2010-nay: Kỹ sư phịng IT Tổng Cơng Ty Thương Mại Sài Gịn 68 ... TÀI: Nghiên cứu xây dựng mơ hình xử lý liệu lớn Hadoop- HBase II NHIỆM VỤ VÀ NỘI DUNG: - Tìm hiểu xu hướng xử lý liệu lớn môi trường phân tán NoSQL Tìm hiểu Hadoop, HBase Xây dựng ứng dụng liệu lớn. .. NoSQL sau chọn lựa hệ thống Hadoop- Hbase để thực ứng dụng xử lý liệu lớn trang web âm nhạc Báo cáo so sánh việc xử lý liệu Hadoop- Hbase với MySQL server đưa ý kiến độ lớn liệu đến đâu nên sử dụng... 4.1 Mơ hình thử nghiệm 53 4.2 Dữ liệu trang web âm nhạc xử lý MySQL 53 4.3 Dữ liệu trang web âm nhạc xử lý hệ thống Hadoop- HBase 54 4.4 So sánh hai hệ thống MySQL Hadoop- HBase

Ngày đăng: 29/08/2021, 17:42

Hình ảnh liên quan

NGHIÊN CỨU VÀ XÂY DỰNG MÔ HÌNH XỬ LÝ - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase
NGHIÊN CỨU VÀ XÂY DỰNG MÔ HÌNH XỬ LÝ Xem tại trang 1 của tài liệu.
Hình 2-1. Dòng chảy dữliệu MapReduce với một reduce task duy nhất - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

1. Dòng chảy dữliệu MapReduce với một reduce task duy nhất Xem tại trang 19 của tài liệu.
Hình 2-2. Dòng chảy dữliệu MapReduce với nhiều reduce task - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

2. Dòng chảy dữliệu MapReduce với nhiều reduce task Xem tại trang 20 của tài liệu.
Hình 2-3. Dòng chảy dữliệu MapReduce không có reduce task - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

3. Dòng chảy dữliệu MapReduce không có reduce task Xem tại trang 20 của tài liệu.
Hình 2-4. Hadoop thực thi một job của MapReduce •Client: đưa yêu cầu MapReduce job  - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

4. Hadoop thực thi một job của MapReduce •Client: đưa yêu cầu MapReduce job Xem tại trang 21 của tài liệu.
Hình 2-5. Phân cấp của lớp InputFormat - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

5. Phân cấp của lớp InputFormat Xem tại trang 23 của tài liệu.
Hình 2-6. Phân cấp của lớp OutputFormat - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

6. Phân cấp của lớp OutputFormat Xem tại trang 24 của tài liệu.
Hình 2-7. Kiến trúc của Google FileSystem - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

7. Kiến trúc của Google FileSystem Xem tại trang 26 của tài liệu.
Hình 2-8. Hệ thống file Hadoop - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

8. Hệ thống file Hadoop Xem tại trang 28 của tài liệu.
Hình 2-9. Một client đọc data từ HDFS - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

9. Một client đọc data từ HDFS Xem tại trang 29 của tài liệu.
Hình 2-10. Một client ghi data đến HDFS - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

10. Một client ghi data đến HDFS Xem tại trang 30 của tài liệu.
Hình 2-11. Rows và columns giống như các thẻ (tags) - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

11. Rows và columns giống như các thẻ (tags) Xem tại trang 33 của tài liệu.
Hình 2-12. Một góc nhìn theo thời gian của các thành phần của một row - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

12. Một góc nhìn theo thời gian của các thành phần của một row Xem tại trang 34 của tài liệu.
Hình 2-13. Row được biểu diễn dưới dạng bảng tính - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

13. Row được biểu diễn dưới dạng bảng tính Xem tại trang 34 của tài liệu.
Hình 2-14. Rows được nhóm lại thành các group và được phục vụ bởi các server khác nhau - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

14. Rows được nhóm lại thành các group và được phục vụ bởi các server khác nhau Xem tại trang 35 của tài liệu.
Hình 2-15 Các thành phần của một HBase cluster - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

15 Các thành phần của một HBase cluster Xem tại trang 38 của tài liệu.
Hình 2-16. HBase dùng các thành phần của riêng mình - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

16. HBase dùng các thành phần của riêng mình Xem tại trang 38 của tài liệu.
Hình 2.16 biểu diễn các lớp hiện thực MapReduce trong Hadoop là - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.16.

biểu diễn các lớp hiện thực MapReduce trong Hadoop là Xem tại trang 40 của tài liệu.
Hình 2-17. Quá trình MapReduce - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

17. Quá trình MapReduce Xem tại trang 40 của tài liệu.
Hình 2-19. Sự phân cấp của Mapper - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 2.

19. Sự phân cấp của Mapper Xem tại trang 41 của tài liệu.
TableRecordReader (hình 2.17) và IdentitytableMapper để cung cấp một số tính n ăng riêng - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

able.

RecordReader (hình 2.17) và IdentitytableMapper để cung cấp một số tính n ăng riêng Xem tại trang 41 của tài liệu.
Mô hình key value/column của HBase rất mềm dẻo, ta mô tả sẵn một số column cho phù hợp với file dữ liệu dựđịnh import nhưng có thể  thêm các column tùy ý khi  có  nhu  cầu - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

h.

ình key value/column của HBase rất mềm dẻo, ta mô tả sẵn một số column cho phù hợp với file dữ liệu dựđịnh import nhưng có thể thêm các column tùy ý khi có nhu cầu Xem tại trang 46 của tài liệu.
Hình 3-1. Mô hình bài toán trong Hadoop-HBase - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 3.

1. Mô hình bài toán trong Hadoop-HBase Xem tại trang 47 của tài liệu.
Hình 3-2. Kiến trúc của hệ thống - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 3.

2. Kiến trúc của hệ thống Xem tại trang 47 của tài liệu.
Hình 4-1. Import dữliệu từ file data.tsv 2.4GB - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 4.

1. Import dữliệu từ file data.tsv 2.4GB Xem tại trang 62 của tài liệu.
Hình 4-4. Thư mục kết quả sau khi Analyze - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 4.

4. Thư mục kết quả sau khi Analyze Xem tại trang 63 của tài liệu.
Hình 4-3. Trạng thái của job Analyze data khi job đang thực thi - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 4.

3. Trạng thái của job Analyze data khi job đang thực thi Xem tại trang 63 của tài liệu.
WAL của HBase nên dung lượng lưu trữ thật sự sẽ phình ra khoảng 250 GB HDFS trên  cluster Hadoop-HBase - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

c.

ủa HBase nên dung lượng lưu trữ thật sự sẽ phình ra khoảng 250 GB HDFS trên cluster Hadoop-HBase Xem tại trang 65 của tài liệu.
Hình 5-2. Kết hợp LAM(M)P-Hadoop-HBase - Nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền hadoop hbase

Hình 5.

2. Kết hợp LAM(M)P-Hadoop-HBase Xem tại trang 72 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan