Tóm tắt đặc điểm của Mongo, Presto, BEEP BEEP 3, HBASE, APACHE PHOENIX, Cassandra, APACHE OOZIE, Apache SQOOP, NoSQL CouchDB, Apache Kudu, Apache Pig thuận tiện cho việc học hỏi thêm kiến thức về big data
Mongo Presto - MongoDB chương trình sở liệu hướng tài liệu đa tảng Được phân loại chương trình sở liệu NoSQL , MongoDB sử dụng tài liệu giống JSON với lược đồ tùy chọn MongoDB phát triển MongoDB Inc MongoDB hệ quản trị sở liệu mã nguồn mở Các collection (bảng) MongoDB cấu trúc linh hoạt, cho phép liệu lưu trữ không cần tuân theo cấu trúc định MongoDB database hướng tài liệu (document), liệu lưu trữ document kiểu JSON Các liệu lưu trữ document kiểu JSON nên truy vấn nhanh Quá trình phát triển MongoDB - Presto cơng cụ thiết kế để truy vấn cách hiệu lượng lớn liệu cách sử dụng - truy vấn phân tán Tại cần truy vấn phân tán ? Nếu làm việc với terabyte petabyte liệu (có thể sử dụng cơng - - cụ tương tác với Hadoop HDFS) Presto thiết kế giải pháp thay cho công cụ truy vấn HDFS cách sử dụng đường ống công việc MapReduce Hive Pig, Presto không bị giới hạn việc truy cập HDFS Presto mở rộng để hoạt động loại nguồn - liệu khác bao gồm sở liệu quan hệ truyền thống nguồn liệu khác Presto thiết kế để xử lý kho liệu phân tích: phân tích liệu, tổng hợp lượng lớn liệu xuất - báo cáo Các khối lượng công việc thường phân loại Xử lý Phân tích Trực tuyến (OLAP) Động lực đằng sau đời Presto cho phép phân tích tương tác tiếp cận tốc độ kho liệu - thương mại với khả mở rộng quy mô tổ chức phù hợp với Facebook Được phân phối theo Giấy phép Apache, lưu trữ GitHub Nó khơng phải thay cho sở liệu MySQL, PostgreSQL Oracle, Presto không thiết kế để xử lý Xử lý giao dịch trực tuyến (Online Transaction Processing-OLTP).Điều với nhiều sở liệu khác thiết kế tối ưu hóa để lưu trữ phân tích liệu Có hai loại máy chủ Presto: coordinators worker - Coordinators Presto coordinator là máy chủ chịu trách nhiệm phân tích cú pháp câu lệnh, lập kế hoạch truy vấn quản lý nút Presto worker Coordinator theo dõi hoạt động worker điều phối việc thực truy vấn Coordinator giao tiếp với worker khách hàng API REST - Worker Presto worker máy chủ cài đặt Presto chịu trách nhiệm thực thi tác vụ xử lý liệu Các nút công nhân tìm nạp liệu từ trình kết nối trao đổi liệu trung gian với Coordinator chịu trách nhiệm lấy kết từ worker trả kết cuối cho khách hàng Worker giao tiếp với worker khác Presto coordinator API REST BEEP BEEP - Beep Beep công cụ truy vấn luồng kiện thực tác vụ khác luồng kiện có chất khác Beep Beep mã nguồn mở miễn phí, tải dùng chúng chí với mục đích thương mại Các định nghĩa của Beep Beep thể trực quan bằng đồ thị, sử dụng lớn ky tự tượng hình Cốt lõi của BeepBeep thư viện Java độc lập có trọng lượng 200 kilobyte , BeepBeep cho phép người dùng tạo, cấu hình chuyển trực tiếp đối tượng của xử ly Linh hoạt cách sử dụng, có sẵng processor đọc Excel, khai thác liệu, tính tốn thống kê, phân tích gói mạng, vẽ biểu đồ … kết hợp processor đơn lẻ để giải tốn lớn Nếu processor có sẵng khơng đủ để đáp ứng nhu cầu của người dùng, người dũng vẫn dễ dàng tạo xử ly, chức kiện của riêng - thường vài dòng mã Processor nhận nhiều luồng kiện làm đầu vào, xử ly trả nhiều luồng kiện làm đầu Có hai cách để tương tác với processor: Pull mode (kéo) Push mode (đẩy) - Hành động yêu cầu kiện đầu gọi kéo (pull), chế độ gọi pull mode - Chế độ đẩy ngược lại với chế độ kéo, thay truy vấn kiện tạo thành đầu của processor, BeepBeep cung cấp kiện cho đầu vào của processor BeepBeep cung cấp hàng chục xử ly, xử ly riêng biệt thực hoạt động đơn giản Để thực phép tính phức tạp hơn, xử ly ghép nối với nhau, bằng cách để đầu của xử ly đầu vào của xử ly khác HBASE VÀ APACHE PHOENIX HBase hệ sở liệu phân tán, mã nguồn mở xây dựng dựa Apache Software Ban đầu, gọi Google Big Table, sau đổi thành Hbase viết ngôn ngữ Java - HBase lưu trữ số lượng lớn liệu Cung cấp khả mở rộng tuyến tính Phù hợp để đọc ghi phương thức Hỗ trợ chuyển đổi dự phòng tự động Region Servers Các lớp sở thuận tiện để hỗ trợ công việc Hadoop MapReduce bảng - HBase Dễ dàng sử dụng Java API để truy cập client Chặn nhớ cache lọc Bloom cho truy vấn real-time Thuộc tính truy vấn đẩy qua lọc phía máy chủ HBase lưu trữ liệu dạng cặp key/value mơ hình cột Công nghiệp Viễn thông Công nghiệp Banking Sử dụng nhiều tài trị chuyện Do hệ thống cung cấp tính quán dung sai phân vùng Là định ly áp dụng ly thuyết Khoa học máy tính Có tên khác Định ly của Brewer phát biểu giáo sư Eric Allen Brewer cuối năm 90 Nói rằng: Trong hệ thống lưu trữ phân tán đồng thời đảm bảo nhiều tính chất sau: o Availability (Sẵn sàng): Mỗi yêu cầu phản hồi lại (không phải lỗi) không đảm bảo nội dung o Consistency (Nhất quán): Mỗi lần đọc liệu nhận nội dung lỗi o Partition Tolerance (Phân vùng): Hệ thống tiếp tục hoạt động bất chấp số lượng tuỳ y thông điệp / gói tin bị trì hỗn trục trặc mạng nút CAP thường bị hiểu nhầm rằng ta đảm bảo hai ba yếu tố phải từ bỏ yếu tố lại Trên thực tế, lựa chọn thực tính quán tính khả dụng phân vùng mạng lỗi xảy ra; tất trường hợp khác, không cần phải đánh đổi yếu tốt Do dung sai phần vùng thường quy định từ trước nên ta chọn quán sẳn sàng HBase thỏa mãn thuộc tính Tính quán C Dung sai phân vùng P HBase sở liệu theo cột liệu lưu trữ bảng Các bảng xếp RowId - Table: Collect tất row Row: Collect tất column family Column Family: Collect tất cột (col) Column: Collect cặp key-value Namespace: Logical grouping of tables Cell: Bộ {row, column, version} xác định cell Hbase Gồm thành phần chính: - Hmaster: thành phần phản ly hệ thống HMaster thành phần trung tâm kiến trúc của HBase HMaster giám sát tất Region Server thuộc cluster Tất thay đổi liên quan đến metadata thực thông qua HMaster Những vai trò quan trọng thực Hmaster: – Table : createTable, removeTable, enable, disable – ColumnFamily : add Column, modify Column – Region : move, - assign Hregionserver: quản ly lưu trữ region HRegionServer chịu trách nhiệm quản ly region Khi Region server nhận writes and read requests từ client, assign request cho region riêng biệt, nơi mà chứa column family Tuy nhiên client trực tiếp liên lạc với Hregion servers, mà không cần cho phép của HMaster Hregions: chứa component Memstore Hfile HRegions thành phần kiến trúc sở của Hbase cluster Bao gồm thành phần Memstore Hfile Đây - nơi lưu trữ liệu của table Zookeeper: lưu trữ metadata, region info Apache Phoenix giải pháp phần mềm Big Data Analytics Software với chức chi phí phù hợp cho doanh nghiệp từ nhỏ vừa (SMEs) tới doanh nghiệp lớn Cassandra - Cassandra lưu trữ liệu bằng cách phân tán liệu nodes khác cluster để đảm bảo việc xử ly liệu nhanh chóng an tồn dù có nodes xảy lỗi Cassandra hệ sở liệu phân tán, liệu lưu trữ nhiều node của nhiều máy khác nhau, theo chế P2P Hiệu xử ly của hệ thống cũng tăng theo số node (nếu nhiều node xử ly nhiều request) - Apache Cassandra NoSQL Database nên lưu trữ liệu dạng wide- column bằng cách kết hợp dạng key-value dạng table Cơ sở liệu phân tán nhiều máy hoạt động Cassandra xếp nút cluster theo định dạng vòng gán liệu cho chúng - Yếu tố Replication : quy định số lượng nodes cluster nhân copy của - liệu Chiến lược Replica : quy định cách lưu trữ replicas, ví dụ simple strategy, old network topology strategy, network topology strategy, Gia đình cột : dùng để mơ tả cấu trúc của liệu Mỗi Column family có nhiều rows row lại có nhiều columns theo thứ tự định (khác với Relational Database, người dùng tự thêm column vào lúc row khơng thiết phải có columns) Thơng thường Keyspace thường có nhiều column families - Thích hợp để sử dụng thực tế - Khả chịu lỗi cao - Kiến trúc khơng có SPOF (một điểm gây tổn hại) - Mức độ tự kiểm sốt qn - Mơ hình liệu phong phú - Có thể tăng cường cải thiện thơng lượng cho tuyến tính - Tính khả dụng cao - Hỗ trợ ngôn ngữ khác dạng client code - Dễ dàng nắm bắt trạng thái bên của máy chủ bằng JMX/Dễ giám sát - APACHE OOZIE Oozie Ứng dụng Web Java chạy Java Servlet-container Nó cho phép kết hợp nhiều cơng việc phức tạp chạy theo trình tự để hoàn thành nhiệm vụ lớn Trong chuỗi nhiệm vụ, hai nhiều công việc lập trình để chạy song song với Ưu điểm Oozie tích hợp chặt chẽ với Hadoop stack hỗ trợ công việc Hive, Pig, Hadoop tác vụ cụ thể hệ thống Java Shell Nó chịu trách nhiệm kích hoạt hành động quy trình làm việc, từ sử dụng cơng cụ thực thi Hadoop để thực công việc khác Do đó, Oozie tận dụng để thực việc cân tải, xử lý lỗi, Oozie phát việc hồn thành nhiệm vụ thơng qua Callback polling Khi Oozie bắt đầu tác vụ, cung cấp Callback URL HTTP cho tác vụ thơng báo cho URL hồn tất Nếu tác vụ gọi Callback URL HTTP thất bại, Oozie thăm dị để hồn thành nhiệm vụ Trong Oozie có ba loại cơng việc phổ biến sau đây: Oozie Workflow Jobs: Những công việc biểu thị dạng Directed Acyclic Graphs (DAG) để định chuỗi hành động thực Oozie Coordinator Jobs: Những công việc bao gồm cơng việc quy trình làm việc kích hoạt theo thời gian liệu sẵn sàng để xử lý Oozie Bundle: Đây coi gói gồm nhiều Coordinator Job quy trình làm việc *Directed Acyclic Graphs: đồ thị có hướng khơng có chu trình, hành động theo nghĩa hành động thứ hai thực thực xong hành động thứ Các hành động phụ thuộc vào hành động trước Apache Oozie quản trị viên hệ thống Hadoop sử dụng để chạy phân tích nhật ký tác vụ phức tạp HDFS Các nhà phát triển Hadoop sử dụng Oozie để thực hoạt động ETL (Extract-TransformLoad) liệu theo thứ tự lưu kết đầu định dạng cụ thể (Avro, ORC, v.v.) HDFS Trong doanh nghiệp, công việc Oozie lên lịch với tư cách người điều phối 2.2 Workflow Workflow DAG với control flow nodes (bắt đầu-start, kết thúc-end, định-decision, rẽ nhánh-fork, kết-join, kết thúc tiến trình-kill) actions node (mapreduce, pig, hive, v.v) gọi chung workflow node, nodes kết nối mũi tên chuyển tiếp Workflow nodes chia thành control flow nodes actions nodes: Control flow nodes: nút kiểm soát việc bắt đầu kết thúc quy trình làm việc đường dẫn thực công việc workflow Actions nodes: nút kích hoạt việc thực tác vụ tính tốn / xử lý Apache SQOOP Sqoop (SQL + Hadoop) công cụ thiết kế dùng để truyền liệu Hadoop hệ quản trị sở liệu quan hệ (MySQL, Oracle, ) mainframe(máy tính lớn) Ta sử dụng Sqoop để nhập liệu từ sở liệu quan hệ vào HDFS ngược lại xuất chúng sở liệu quan hệ Đặc trưng Sqoop: Quá trình import/export thực song song (Sử dụng Yarn framework để thực hiện, cung cấp khả chịu lỗi cao) Nhập kết câu truy vấn SQL Có kết nối với hầu hết tất liệu RDBMS Hỗ trợ full incremental load Sqoop Import: Ta nhập liệu từ hệ thống sở liệu quan hệ từ máy tính lớn Dữ liệu nhập vào bảng liệu liệu máy tính lớn Với sở liệu quan hệ, Sqoop đọc dòng bảng vào HDFS Còn với liệu máy tính, đọc records liệu để đưa vào HDFS Kết đầu q trình nhập tập hợp tệp chứa bảng liệu chép từ trình import Do trình import song song nên kết đầu bao gồm nhiều tệp, tệp text file, sequenceFile,… Bước 1: Sqoop client thu thập metadata tạo lớp Java Bước 2: Submit map-reduce job vào Hadoop cluster (mặc định tách dịng theo khóa chính) Bước 3: Phân chia dòng tách vào Map task (mặc định map task) Bước 4: Map task chuyển liệu phân tách đến HDFS (mặc định file csv) Cú pháp: $ sqoop import (generic-args) (import-args) Import bảng: $ sqoop import connect jdbc:mysql://localhost/ username root table m Import vào Target Directory: $ sqoop import connect jdbc:mysql://localhost/userdb username root table tblname m target-dir > Import tập nhỏ liệu: $ sqoop import connect jdbc:mysql://localhost/userdb username root table emp_add m where -target -dir /wherequery Incremental Import: $ sqoop import connect jdbc:mysql://localhost/userdb username root table emp m incremental -check-column -last value Sqoop hỗ trợ loại incremental import: append lastmodified () Sử dụng mode append import dòng liệu thêm dựa vào giá trị khóa id tự tăng Ta định check-column column id Sqoop import dịng check-column mà có giá trị lớn giá trị last-value Sử dụng mode lastmodified ta muốn import tất liệu mà thay đổi so với liệu với bảng import với thời gian lần import gần bao gồm dòng liệu cập nhật liệu cũ Sau thực xong incremental import, hình hiển thị giá trị last-value tương ứng với check-column lần import Và thực incremental import cho lần tiếp theo, ta định last-value giá trị last-value trả lần import gần để đảm bảo thêm dòng liệu cập nhật Phần tiếp theo, nhóm minh họa tạo Sqoop job, nhầm giúp tự động hóa q trình incremental import Import tất bảng: $ sqoop import-all-tables connect jdbc:mysql://localhost/userdb username root Sqoop Export: Quá trình xuất đọc song song tệp HDFS, sau parse chúng thành records thêm vào bảng đích cho user Bước 1: Sqoop chuyển đổi liệu từ HDFS sang liệu quan hệ thông qua câu lệnh insert Sqoop lấy metadata bảng tạo để chứa liệu export từ hệ quản trị CSDL Bước 2: Sử dụng metadata đó, Sqoop tạo biên dịch lớp java để export liệu đến bảng vừa tạo thông qua map task Cú pháp: $ sqoop export (generic-args) (export-args) $ sqoop export connect jdbc:mysql://localhost/db username root table employee export-dir /emp/emp_data Sqoop List Databases/ List Tables: Sử dụng Sqoop parse thực thi câu truy vấn "show database" / "show tables" database server, liệt kê tất database có máy chủ Cú pháp: $ sqoop list-databases connect jdbc:mysql://localhost/ username root Sqoop Job: Sqoop job dùng để tạo lưu lệnh import export Nó định tham số để xác định gọi lại công việc lưu Công việc gọi lại thực thi lại thực thao tác incremental import, dùng để nhập hàng them cập nhật từ RDBMS sang HDFS Cú pháp: $ sqoop job (generic-args) (job-args) [ [subtool-name] (subtool-args)] Tạo Job: Tạo job có tên myjob, dùng để import liệu từ RDBMS sang HDFS $ sqoop job create myjob import connect jdbc:mysql://localhost/db username root table employee m Kiểm tra Job: Dùng tham số “ show” để xem thông tin chi tiết job $ sqoop job show myjob Thực thi Job: Tham số “ exec” dùng để thực thi job lưu $ sqoop job exec myjob Hình Ví dụ control flow nodes (Start, Decision, Fork, Join and End) and Actions (Hive, Shell, Pig) Bắt đầu với Start tag kết thúc với End tag Control flow nodes: Start node: điểm vào cho workflow job, cơng việc thực Khi Workflow chạy bắt đầu start node End node: điểm kết thúc cho cơng việc dịng cơng việc, cho biết workflow hồn thành thành cơng Khi đến end node kết thúc công việc khác Kill node: kết thúc công việc theo mong muốn chẳng hạn công việc bị lỗi Decision node: cho phép công việc để thực lựa chọn đường thực để làm theo hoạt động tương tự switch-case Fork: chia tách cơng việc thành nhiều việc thực đồng thời Join: đợi đến nhánh cơng việc fork đến thực việc kết lại Fork-Join sử dụng theo cặp Action nodes: Tất tác vụ tính tốn / xử lý kích hoạt action node remote tới Oozie Khơng có tác vụ tính tốn / xử lý thực thi Oozie Các hoạt động thực tuần tự, phải đợi đến tác vụ trước xong chuyển đến node Action nodes có trạng thái: hồn thành thành cơng có trạng thái “ok”, ngược lại trạng thái “error” Với trạng thái thực tác động tương ứng ví dụ error thực việc kill Mỗi actions node cần xác định rõ có error xảy Các node tham số hóa, định nghĩa HPDL (Hadoop Process Definitition Language) ngôn ngữ định nghĩa quy trình XML Workflow Oozie tham số hóa Các tham số đến từ tệp cấu hình gọi tệp thuộc tính (property file) Chúng ta chạy nhiều cơng việc cách sử dụng workflow cách sử dụng nhiều tag property (tham số hóa nhiều thuộc tính cho workflow job) Khi gửi cơng việc dịng cơng việc cho định nghĩa dịng cơng việc trên, thuộc tính sau workflow phải định: resourceManager inputDir outputDir Nếu thuộc tính khơng định, công việc thất bại NoSQL CouchDB a Lịch sử hình thành: Couch từ viết tắt của “cluster of unreliable commodity hardware” Là sở liệu dạng NoSQL, lưu trữ liệu dạng JSON CouchDB Damien Katz - nhà phát triển Lotus Notes trước của IBM tạo vào 4/2005 để giải toán lưu trữ số lượng lớn object mà dùng phần cứng thông thường Ông tự tài trợ cho dự án gần hai năm phát hành dự án mã nguồn mở theo GNU General Public License Tên thức của đổi thành Apache CouchDB sau trở thành dự án Apache Xếp thứ 28 300 hệ thống phổ biến theo DB-Engines b Khái niệm: CouchDB sở liệu dạng NoSQL mã nguồn mở database lưu trữ liệu dạng document/JSON CouchDB thiết kế nhắm tới tính dễ sử dụng phục vụ cho môi trường web Sử dụng java script làm ngơn ngữ truy vấn của để chuyển đổi tài liệu Giao thức http cho api để truy cập tài liệu c Mơ hình liệu: Database cấu trúc liệu lớn của CouchDB Mỗi database danh sách document độc lập Document bao gồm liệu người dùng thao tác lẫn thông tin phiên của liệu để tiện việc merge liệu CouchDB sử dụng chế phiên hố liệu để tránh tình trạng khố liệu ghi Ví dụ document của couchdb: { "title": "Macbook", "price": 1500, "SKU": "abcd1234" } d Tại lại CouchDB? CouchDB có API dạng RESTFul giúp cho việc giao tiếp với sở liệu đơn giản Các RESTFul API trực quan dễ thao tác API (Application Programming Interface) tập quy tắc chế mà theo đó, ứng dụng hay thành phần tương tác với ứng dụng hay thành phần khác API trả liệu mà bạn cần cho ứng dụng kiểu liệu phổ biến JSON hay XML REST (REpresentational State Transfer) dạng chuyển đổi cấu trúc liệu, kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp máy Vì vậy, thay sử dụng URL cho việc xử lý số thông tin người dùng, REST gửi yêu cầu HTTP GET, POST, DELETE, vv đến URL để xử lý liệu RESTful API tiêu chuẩn dùng việc thiết kế API sử dụng HTTP method (như GET, POST, PUT, DELETE…) cách định dạng URL cho ứng dụng web để quản resource RESTful kiểu thiết kế API sử dụng phổ biến ngày ứng dụng (web, mobile…) khác giao tiếp với Map/reduce giúp việc lọc, tìm, tổng hợp liệu dễ hết CouchDB cung cấp tính chép dễ sử dụng, bằng cách sử dụng bạn chép, chia sẻ đồng hóa liệu sở liệu máy e Thuộc tính ACID (ACID properties): Thuộc tính ACID khái niệm sở liệu mà chuyên gia thường tìm kiếm đánh giá sở liệu kiến trúc ứng dụng ACID từ viết tắt chữ đầu của bốn từ tiếng Anh atomicity, consistency, isolation, durability Chúng coi bốn thuộc tính quan trọng của hệ quản trị sở liệu xử ly transation (giao dịch) Atomicity (tính nguyên vẹn) đề xuất tất khơng có Tính chất đảm bảo rằng giao dịch liên quan đến hai hay nhiều xử ly, tất xử ly thực khơng có xử ly thực Consistency (tính quán) đảm bảo rằng giao dịch không thông qua sở liệu của bạn tình trạng dở dang Tính chất này, tạo toàn trạng thái rollback tất xử ly để trạng thái ban đầu, không thông qua sở liệu trạng thái dở dang Isolation (tính lập) giữ giao dịch tách rời chúng hồn tất Tính chất đảm bảo rằng hai nhiều giao dịch không trộn lẫn với nhau, tạo liệu khơng xác khơng phù hợp Durability (tính bền) đảm bảo rằng sở liệu theo dõi thay đổi cấp phát cách mà máy chủ phục hồi từ kết thúc bất thường, khơng bị Tính chất đảm bảo rằng trường hợp thất bại hay dịch vụ khởi động lại liệu có sẵn trước gặp lỗi Thuộc tính ACID của CouchDB: Khi liệu ghi xuống ổ cứng khơng bị ghi đè Bất kì thay đổi (thêm, sửa, xố) theo ch̉n Atomic, có nghĩa liệu lưu lại tồn diện khơng lưu lại Database không thêm hay sửa phần liệu Hầu hết cập nhật serialized để đảm bảo tất người dùng đọc document mà không bị chờ đợi gián đoạn f Views CouchDB: Dữ liệu CouchDB lưu trữ document Có thể tưởng tượng database table document row Khi Khi muốn trình bày liệu bằng nhiều góc nhìn khác cần phương pháp để filter, tổ chức để hiển thị kết cuối Để giải vấn đề này, CouchDB sử dụng mơ hình View View phương pháp tổng hợp liệu document database Các View build động không ảnh hưởng đến liệu ghi của document nên có View tuỳ y tuỳ vào nhu cầu trình bày liệu g Cơ chế phân tán: Replication: Mơ hình đồng kiểu Master-Master Cho phép thay đổi db cập nhật db Điều khắc phục yếu điểm của mơ hình Master-Slave, thay đổi Slave (trong trường hợp db Master không hoạt động phải chuyển sang db Slave) không cập nhật db Master Sử dụng mơ hình Eventual consistency: client ghi liệu lên node mà không cần đợi node khác đồng y Thay đổi sau gửi đến node lại đến cuối liệu node đồng Apache Kudu Kudu trình quản lý lưu trữ dạng cột phát triển cho tảng Apache Hadoop Kudu chia sẻ đặc tính kỹ thuật chung ứng dụng hệ sinh thái Hadoop: chạy phần cứng hàng hóa, mở rộng theo chiều ngang hỗ trợ hoạt động có tính khả dụng cao Thiết kế Kudu khiến trở nên khác biệt Một số lợi ích Kudu bao gồm: Xử lý nhanh khối lượng cơng việc OLAP Tích hợp với MapReduce, Spark thành phần hệ sinh thái Hadoop khác Tích hợp chặt chẽ với Apache Impala, làm cho trở thành giải pháp thay tốt, thay đổi để sử dụng HDFS với Apache Parquet Mơ hình quán mạnh mẽ linh hoạt, cho phép bạn chọn yêu cầu quán sở yêu cầu, bao gồm tùy chọn cho tính quán hóa nghiêm ngặt Hiệu suất mạnh mẽ để chạy đồng thời khối lượng công việc ngẫu nhiên Dễ dàng điều hành quản lý Tính khả dụng cao Máy chủ Tablet Master sử dụng Thuật toán Đồng thuận Raft , đảm bảo miễn có nửa tổng số sao, máy tính bảng đọc ghi Ví dụ: số có sẵn máy tính bảng có sẵn Các máy tính bảng theo dõi đọc phục vụ việc đọc, trường hợp máy tính bảng dẫn đầu bị lỗi Mơ hình liệu có cấu trúc Bằng cách kết hợp tất thuộc tính này, Kudu nhắm mục tiêu hỗ trợ cho nhóm ứng dụng khó triển khai công nghệ lưu trữ Hadoop hệ Một vài ví dụ ứng dụng mà Kudu giải pháp tuyệt vời là: Các ứng dụng báo cáo liệu đến cần có sẵn cho người dùng cuối Các ứng dụng chuỗi thời gian phải hỗ trợ đồng thời: o truy vấn lượng lớn liệu lịch sử o truy vấn chi tiết thực thể riêng lẻ phải trả lại nhanh Các ứng dụng sử dụng mô hình dự đốn để đưa định thời gian thực với việc làm mơ hình dự đốn định kỳ dựa tất liệu lịch sử Apache Kudu giải pháp phần mềm Big Data Analytics Software với chức chi phí phù hợp cho doanh nghiệp từ nhỏ vừa (SMEs) tới doanh nghiệp lớn Phần mềm apache Kudu đánh giá cao người dùng lẫn chuyên gia lĩnh vực Database Software Biểu đồ sau cho thấy cụm Kudu với máy chủ nhiều máy chủ máy tính , máy chủ phục vụ nhiều máy tính bảng Nó minh họa cách sử dụng đồng thuận Raft phép người lãnh đạo người theo dõi cho máy chủ máy tính bảng dẫn đầu cho máy tính bảng khác , nhà lãnh đạo hiển thị màu vàng , người theo dõi màu xám Kudu Architecture Các trường hợp sử dụng mẫu Đầu vào phát trực tuyến với tính khả dụng gần thời gian thực + Một thách thức phổ biến phân tích liệu nơi liệu đến nhanh chóng liên tục, liệu tương tự cần có sẵn thời gian gần thực để đọc, quét cập nhật + Kudu cung cấp kết hợp mạnh mẽ chèn cập nhật nhanh với tính quét cột hiệu phép trường hợp sử dụng phân tích thời gian thực lớp lưu trữ Ứng dụng chuỗi thời gian với kiểu truy cập khác + Lược đồ chuỗi thời gian lược đồ điểm liệu tổ chức khóa theo thời gian chúng xảy + Điều hữu ích để điều tra hiệu suất số theo thời gian cố gắng dự đoán hành vi tương lai dựa liệu khứ Ví dụ: Dữ liệu khách hàng theo chuỗi thời gian sử dụng để lưu trữ lịch sử luồng nhấp mua hàng dự đoán giao dịch mua tương lai để đại diện hỗ trợ khách hàng sử dụng Trong loại phân tích khác diễn ra, lần chèn đột biến xảy riêng lẻ hàng loạt, đồng thời đọc khối lượng cơng việc Kudu xử lý đồng thời tất mẫu truy cập theo cách mở rộng hiệu + Kudu phù hợp với khối lượng công việc theo chuỗi thời gian số lý + Với hỗ trợ Kudu cho phân vùng dựa băm, kết hợp với hỗ trợ gốc cho khóa hàng ghép, thật đơn giản để thiết lập bảng trải rộng nhiều máy chủ mà khơng có nguy "hotspotting" thường thấy phân vùng theo phạm vi sử dụng + Công cụ lưu trữ dạng cột Kudu có lợi bối cảnh này, nhiều khối lượng công việc theo chuỗi thời gian đọc vài cột, trái ngược với toàn hàng + Trước đây, bạn cần sử dụng nhiều kho liệu để xử lý mẫu truy cập liệu khác Phương pháp làm tăng thêm độ phức tạp cho ứng dụng hoạt động bạn, đồng thời nhân liệu bạn, tăng gấp đôi (hoặc tệ hơn) dung lượng nhớ cần thiết + Kudu xử lý tất kiểu truy cập cách nguyên hiệu mà không cần phải chuyển tải công việc sang kho lưu trữ liệu khác Mơ hình dự đoán Các nhà khoa học liệu thường phát triển mơ hình học dự đốn từ tập liệu lớn + Mơ hình liệu cần cập nhật sửa đổi thường xuyên trình học diễn tình lập mơ hình thay đổi + Ngồi ra, nhà khoa học muốn thay đổi nhiều yếu tố mơ hình để xem điều xảy theo thời gian + Cập nhật tập hợp lớn liệu lưu trữ tệp HDFS tốn tài nguyên, tệp cần viết lại hoàn toàn + Trong Kudu, cập nhật xảy gần theo thời gian thực + Nhà khoa học điều chỉnh giá trị, chạy lại truy vấn làm biểu đồ vài giây vài phút, thay vài vài ngày + Ngồi ra, thuật tốn hàng loạt tăng dần chạy liệu lúc nào, với kết gần thời gian thực Kết hợp liệu Kudu với hệ thống kế thừa +Các công ty tạo liệu từ nhiều nguồn lưu trữ nhiều hệ thống định dạng khác + Ví dụ: số liệu bạn lưu trữ Kudu, số RDBMS truyền thống số tệp HDFS Bạn truy cập truy vấn tất nguồn định dạng cách sử dụng Impala mà không cần thay đổi hệ thống kế thừa Apache Pig Apache Pig tảng để phân tích tập liệu lớn bao gồm ngôn ngữ cấp cao để thể chương trình phân tích liệu, với sở hạ tầng để đánh giá chương trình Đặc tính bật chương trình Pig cấu trúc chúng phù hợp để song song hóa đáng kể, cho phép chúng xử lý tập liệu lớn Apache Pig phát triển Yahoo Tại thời điểm tại, lớp sở hạ tầng Pig bao gồm trình biên dịch tạo chuỗi chương trình Map-Reduce, tồn triển khai song song quy mơ lớn (ví dụ: tiểu dự án Hadoop) Lớp ngôn ngữ Pig bao gồm ngôn ngữ văn gọi Pig Latin, có thuộc tính sau: Dễ dàng lập trình: Các tác vụ phức tạp bao gồm nhiều phép biến đổi liệu có liên quan với mã hóa rõ ràng dạng chuỗi dòng liệu, giúp chúng dễ viết, dễ hiểu trì Tối ưu hóa: Cách thức mã hóa tác vụ cho phép hệ thống tự động tối ưu hóa việc thực thi chúng, cho phép người dùng tập trung vào ngữ nghĩa hiệu Có khả mở rộng: Người dùng tạo chức riêng họ để thực xử lý theo mục đích đặc biệt Lịch sử Apache Pig ban đầu đội ngũ nhà nghiên cứu Yahoo phát triển trình làng vào năm 2006 để làm cơng việc mơn hình Mapreduce với tập liệu lớn Vào năm 2007, Apache Pig xác nhập vào Apache Software Foundation Phiên thức Apache Pig cơng bố 0.1.0 vào ngày 11/9/2008 Qua nhiều năm phát triển Apache Pig trả qua nhiều phiên bản, nâng cấp tốt Phiên Apache Pig 0.17.0 Kiến trúc Pig Latin ngôn ngữ Pig sử dụng để phân tích liệu Hadoop Nó ngôn ngữ xử lý liệu cấp cao, cung cấp tập hợp kiểu liệu toán tử phong phú để thực hoạt động khác liệu Người lập trình viên muốn biểu diễn nhiệm vụ sử dụng pig cần phải viết đoạn lệnh Pig Latin thực thi với nhiều chế thực thi khác Grunt Shell, UDFs, Embedded… Sau thực thi, tập lệnh trải qua loạt biến đổi áp dụng Pig Framework, để tạo đầu mong muốn Ở bên trong, Apache Pig chuyển đổi tập lệnh thành loạt cơng việc MapReduce đó, giúp cơng việc lập trình viên trở nên dễ dàng Kiến trúc Apache Pig biểu diễn hình bên Apache Pig Components: Parser : Parser component xử lý đoạn lệnh đưa vào Nó kiểm tra cú pháp tập lệnh, kiểm tra kiểu kiểm tra thứ khác Đầu Parser DAG (Directed Acyclic Graph), đại diện cho câu lệnh Pig Latin toán tử logic Trong DAG, toán tử logic tập lệnh biểu diễn dạng nút luồng liệu biểu diễn dạng cạnh Optimizer: DAG từ Parser tối ưu hóa logic hai kỹ thuật projection pushdown Compiler: Trình biên dịch biên dịch liệu tối ưu hóa Optimizer thành chuỗi công việc MapReduce Execution engine: Cuối MapReduce jobs gửi đến Hadoop theo thứ tự xếp thực thi Hadoop để kết mong muốn Mơ hình liệu Pig Latin Mơ hình liệu Pig Latin lồng hồn tồn cho phép kiểu liệu phi nguyên tử phức tạp map tuple Dưới mơ tả sơ đồ mơ hình liệu Pig Latin Atom : Bất kỳ giá trị đơn lẻ Pig Latin, liệu chúng, kiểu gọi Atom Nó lưu trữ dạng chuỗi sử dụng dạng chuỗi số int, long, float, double, chararray bytearray giá trị nguyên tử Pig Một phần liệu atom đơn giản gọi field VD: 'An' or '20' Tuple: Một record hình thành tập hợp field có thứ tự gọi tuple, field thuộc loại Một tuple tương tự hàng bảng RDBMS VD : (An, 20) Bag: Bag tập hợp tuple giá trị khơng có thứ tự Nói cách khác, sưu tập tuple giá trị (không phải nhất) gọi Bag Mỗi tuple có số lượng trường (lược đồ linh hoạt) Một Bag đại diện '{}' Nó tương tự bảng RDBMS, không giống bảng RDBMS, không thiết chứa số field field vị trí (cột) phải có kiểu VD: {(An, 20), (Anh, 25)} Bag có field relation Nó gọi inner Bag VD : {An, 20, {012345678, An@gmail.com,}} Map: Map (hoặc data map) tập hợp key-value Key cần phải loại chararray phải Value thuộc loại Nó đại diện ‘[]’ Vd: [name#An, age#20] Relation: Một mối quan hệ Bag tuple Các relation Pig Latin khơng có thứ tự (khơng có đảm bảo tuple xử lý theo thứ tự cụ thể nào) Các chế độ thực thi Để làm việc với Pig ta có chế độ thực thi sau: $ pig -x local: thực chế độ pig chạy máy local thông qua localhost file hệ thống máy ( Local mode) $ pig -x mapreduce: sử dụng chế độ việc thực thi diễn cụm máy Hadoop với HDFS (Mapredure mode) $pig -x tez_local: Nó tương tự chế độ cục bộ, ngoại trừ bên Pig gọi công cụ thời gian chạy tez (Tez local mode) ( Chế độ cục Tez thử nghiệm) $pig -x spark_local: Nó tương tự chế độ cục bộ, ngoại trừ bên Pig gọi spark runtime engine ( Spark local mode) $pig -x tez: Để chạy Pig chế độ Tez, bạn cần truy cập vào cụm Hadoop cài đặt HDFS (Tez mode) $pig -x spark: Để chạy Pig chế độ Spark, bạn cần có quyền truy cập vào Spark, Yarn Mesos cài đặt HDFS (Spark mode) $ pig: mặc định sử dụng lệnh để chạy chạy chế độ mapreduce