Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 35 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
35
Dung lượng
595,33 KB
Nội dung
TUAN NGUYEN PHÂNTÍCHDỮLIỆULỚNVỚICÁCPHẦNMỀMMÃNGUỒNMỞ TUAN NGUYEN GIỚI THIỆU ▸ Giới thiệu Big Data, lịch sử Big Data ▸ Giới thiệu dự án mãnguồnmở liên quan đến big data (hadoop, kafka, zookeeper ), mạnh dự án cách phân loại chọn lựa dự án mãnguồnmở để đáp ứng nhu cầu ▸ Cách thu thập thông tin, yêu cầu, phântích cấu trúc data để thiết kế hệ thống big data Thiết kế tiêu chí cho hệ thống phântíchliệu performance, scalability, reliability, accuracy, metrics, UI ▸ Xây dựng hệ thống với unit test, integration test, metrics, UI ▸ Sử dụng hệ thống web search engine với 20 máy để làm ví dụ kinh nghiệm thực tế sử dụng hệ thống mãnguồn mở. TUAN NGUYEN BIG DATA ▸ Khối lượng thông tin lớn, tốc độ tạo thông tin nhanh, Tính chất quan hệ thông tin phức tạp Luôn cần phương thức để tính toán tối ưu ▸ Phântích thông tin phức tạp quan hệ phức tạp, nhiều trường hợp small data trở thành big data ▸ Nói tóm lại big data thể loại thông tin vượt khả xử lý hệ thống máy móc, phầnmềm có biết ▸ Thường quy môliệu đạt quy mô 500GB - 1TB bắt đầu lớn, khó xử lý với hệ thống SQL TUAN NGUYEN THỐNG KÊ VỀ BIG DATA TRÊN THẾ GIỚI NĂM 2015 ▸ 40000 Google Search Queries Every Second ▸ Billion People Use Facebook ▸ Trillion Photos Are Taken And 80% Of Them Will Be Shared Online ▸ 1.4 Billion Smart Phone Are Shipped ▸ User Activities, Internet Of Thing, Logs… TUAN NGUYEN LIFECYCLE OF DATA: 4”A”S ▸ Acquisition: Thu thập thông tin dạng thô ▸ Agrregation: Tập hợp, phân loại, tích hợp vớiliệu khác ▸ Analysis: Phân tích, thống kê, hiểu liệu ▸ Application: Ứng dụng ▸ Ví Dụ: GA, Mobile User Activities AGGREGATION Integrated data scattered data ANALYSIS ACQUISITION Knowledge Log, New Data APPLICATION TEXT BIG DATA SYSTEM Structured Data + Business Logic = Software Application Execution Engine MAP REDUCE QUERY/SCRIPTING LANGUAGE MACHINE LEARNING GRAPH PROCESSING STREAM PROCESSING DATABASE OS Other SPARK DFS OPENSTACK QUEUE NOSQL YARN MESOS Storage ZOOKEEPER Resource Manager TUAN NGUYEN RESOURCE MANAGER ▸ Một số khái niệm tài nguyên quản lý tài nguyên ▸ OS: Quản lý tài nguyên máy tính hay máy ảo ổ cứng, CPU, memory, network… ▸ IAAS, PAAS, SAAS quản lý tài nguyên mức cao cho cloud computing Tài nguyên bao gồm nhiểu máy tính, máy ảo, IP… ▸ Tự setup server vật lý viết script để quản lý TUAN NGUYEN RESOURCE MANAGER ▸ Infrastructure as a Service(IAAS): Cung cấp nhiều nguồn tài nguyên firewalls, load balancers, địa IP, máy ảo… hệ điều hành ứng dụng bạn cài đặt cập nhật Điều giúp bạn linh hoạt việc sử dụng tài nguyên Cácphầnmềm thuộc dạng IAAS Docker, Vagrant, Openstack… Các service thuộc dạng IAAS EC2, Digitalocean, Google cloud ▸ Phầnlớn hệ thống IAAS service sử dụng máy ảo dẫn tới tốc độ lúc nhanh lúc chậm, máy ảo bị treo lên đến 30s ▸ Đánh giá phầnmềm docker, vagrant, openstack service EC2, Digitalocean ▸ Rẻ tiền TUAN NGUYEN RESOURCE MANAGER ▸ Platform as a Service (PaaS) ▸ Hỗ trợ người sử dụng hệ điều hành, sở liệu, máy chủ web môi trường làm việc Hơn nữa, cho phép bạn tập trung vào ứng dụng cụ thể, cho phép nhà cung cấp đám mây quản lý đo đạc tài nguyên cách tự động ▸ Kinh nghiệm bình luận, components sử dụng qua TUAN NGUYEN RESOURCE MANAGER ▸ Software as a Service (SaaS) lựa chọn phù hợp bạn muốn tập trung vào người dùng cuối Giúp cho bạn truy cập đến phầnmềm tảng đám mây mà không cần quản lý sở hạ tầng tảng chạy ▸ SAAS Framework Apache Yarn, Mesos… ▸ Tự tạo SAAS phầnmềmmãnguồnmở hadoop, Kafka, Cassandra… ▸ Commercial services cho big data system S3, SimpleDB, Amazon Simple Queue Service Hộ trợ tốt cho reliability, UI, monitor, metrics… ▸ Ứng dụng cho người sử dụng gmail, google doc, google drive… TUAN NGUYEN EXECUTION ENGINE ▸ High Level Execution Engine Framework: ▸ Dựa low level framework ▸ Implement components, reader, writer, partitioner sử dụng lại ▸ Define cấu trúc liệu ▸ Thường tập trung vào toán định ▸ Ví dụ: Hive, Pig dựa map reduce framework SparkQL, SparkML dựa spark engine TUAN NGUYEN KINH NGHIỆM VÀ ĐÁNH GIÁ MỘT SỐ PHẦNMỀMMÃNGUỒNMỞ ▸ Hadoop family: HDFS, Yarn, Map Reduce ▸ HBase ▸ Zookeeper ▸ Kafka ▸ Elasticsearch ▸ Apache Storm, Apache Spark, Apache Flink ▸ Hazelcast ▸ Script để manage hệ thống shell, python, ansible… TUAN NGUYEN THIẾT KẾ WEB SEARCH ENGINE ▸ máy crawler ▸ máy JSM queue ▸ máy hadoop, lưu trữ process liệu ▸ máy chạy lucene (search engine) ▸ máy web server aggregate liệu TUAN NGUYEN HDFS Crawler Web Server JMS Queue Lucene Master control Mapreduce job Map Reduce Copy TUAN NGUYEN ▸ Cấu trúc storage Segment Segment Segment TUAN NGUYEN THIẾT KẾ WEB SEARCH ENGINE ▸ quét 20k web site, liệu tập chung phầnlớn 1000 site lớn ▸ Lấy nhiều 6triệu trang web ngày ▸ Sắp xếp liệu theo thời gian, liệu cập nhật, merge 12h lần ▸ Các toán: trính rút liệu, phân loại liệu, tính toán trùng lặp, spam, index… TUAN NGUYEN CÁC TIÊU CHÍ ĐỂ ĐÁNH GIÁ XÂY DỰNG VÀ TEST MỘT HỆ THỐNG BIG DATA ▸ Thu thập thông tin độ phức tạp liệu: ▸ Hệ thống data có GB, TB… records hay messages… Dữliệu có nén hay không ▸ Có loại record/messages, kích thước, quy luật nhiều fields tính toán phức tạp ▸ Tính đa dạng (variety) data Ví dụ 1GB liệu web , log hay click stream có độ phức tạp khác ▸ Incoming rate thousands, millions … messages per sec Lượng liệu lưu lại sau xử lý ▸ Growth rate theo ngày, tuần, tháng, năm TUAN NGUYEN CÁC TIÊU CHÍ ĐỂ ĐÁNH GIÁ XÂY DỰNG VÀ TEST MỘT HỆ THỐNG BIG DATA ▸ Tiêu chí quy mô máy móc ▸ Số lượng máy móc mà bạn công ty bạn có khả cung cấp, có phù hợp với quy môliệu yêu cầu ▸ Không có cách chừng xác Cần xây dựng hệ thống simulation test để đánh giá tính toán số lượng máy móc ▸ Rất nhiều toán big data bị giới hạn I/O, RAM hay CPU ▸ Các máy dùng cho storage (DB) nên có nhiều RAM, fast I/O SSD (seek time) tốt Cần nhiêu CPU cores có nhiều concurrent read TUAN NGUYEN CÁC TIÊU CHÍ ĐỂ ĐÁNH GIÁ XÂY DỰNG VÀ TEST MỘT HỆ THỐNG BIG DATA ▸ Tiêu chí quy mô máy móc: ▸ Hệ thống đòi hỏi độ tin cậy (reliable) cao cần nhiều máy để backup replication ▸ Một hệ thống không tính toán công suất xác sụp đổ theo dạng dimino effect vài máy fail ▸ Một hệ thống tốt nên sử dụng khoảng 65 - 70% khả hệ thống ▸ Một hệ thống tốt hệ thống trạng thái cân Ví dụ hệ thống có 500GB data máy máy nên lưu trữ 100GB, hay hệ thống có input rate 10k messages/s với máy máy nên xử lý khoảng 2k TUAN NGUYEN CÁC TIÊU CHÍ ĐỂ ĐÁNH GIÁ XÂY DỰNG VÀ TEST MỘT HỆ THỐNG BIG DATA ▸ Tiêu chí cho hệ thống cần xây dựng: ▸ Accuracy: ▸ Hệ thống chạy có đúng, có xác hay không Cách test đơn giản có 100M messges hay records chạy qua hệ thống có đủ 100M messages, máy chết trình chạy ▸ Hệ thống có chạy ổn định, không liệu, không duplicate liệu, không process lần vài máy chết chết nửa* ▸ Làm test khẳng định vấn đề trên, ví dụ bạn đưa 100M messages vô hệ thống spark hadoop output kết qua hbase, cassandra, mongodb… Kiểm tra bạn có đủ 100M messages Bạn có có message không bị process lần? TUAN NGUYEN CÁC TIÊU CHÍ ĐỂ ĐÁNH GIÁ XÂY DỰNG VÀ TEST MỘT HỆ THỐNG BIG DATA ▸ Tiêu chí cho hệ thống cần xây dựng: ▸ Metrics: Cần metric để đo đếm không hệ thống chạy có xác không, có hiệu không Ví dụ hệ thống xử lý messages, sec, máy xử lý bao nhiêu, có lỗi, nguyên nhân sinh lỗi… ▸ Performance: ▸ Throughtput in MB/s, messages/s CPU, RAM, Disk, Network usages ▸ Throughputs có phân tán máy thời gian ▸ Scalability: Performance có linear tăng hay giảm máy ▸ Reliability: Hệ thống có ổn định thêm bớt máy, hệ thống ổn định bị vài máy ▸ UI: Cần có UI tốt để monitor theo dõi metrics, status máy… TUAN NGUYEN TIÊU CHÍ CHO ARCHITECTURE VÀ TEST ▸ Architecture: ▸ Thu thâp yêu cầu Xác định rõ biến cố, tình xấu sảy cách giải cho phép ▸ Chọn phầnmềmmãnguồn mở, services phù hợp với yêu cầu hệ thống dựa tư vấn, research, document, feedbacks… ▸ Nên chọn phầnmềm có hệ thống metric tốt, rõ ràng, dễ hiểu api để access vào hệ thống metrics ▸ Nên hiểu rõ toán bạn real time processing hay batch processing, độ trễ tối đa cho phép ▸ Hệ thống build test tự động quan trọng ▸ Thiết kế hệ thống theo module, plugin… ▸ Thiết kế hệ thống để test debug TUAN NGUYEN MỘT SỐ TIÊU CHÍ CHO ARCHITECTURE VÀ TEST ▸ Architecture(continue): ▸ Thiết kế hệ thống test cho component để kiểm định lại chọn lựa vớivới quy mô liệu, throughputs, số lượng máy móc… ▸ Document, quảng cáo phầnmềm không đúng, với số điều kiện, bị hiểu sai ▸ Phầnmềmđủ tốt bạn chưa đủ hiểu chưa đủ giỏi để control, không phù hợp với số lượng máy móc ▸ Nếu bạn nhân viên bạn khả thiết lập thống test, config tuning parameters để phầnmềm chạy yêu cầu Nên kiên trì làm tiếp dùng khác không khả có vấn đề cao ▸ Nên sử dụng hệ thống queue Kafka component/service để điều phối tốc độ, component/service fail kéo theo component/service khác TUAN NGUYEN MỘT SỐ TIÊU CHÍ CHO ARCHITECTURE VÀ TEST ▸ Test: ▸ Thiết kế hệ thống test tối quan trọng Có thể kiểm tra trình độ kỹ sư qua cách thiết kế hệ thống test Hệ thống test tốt kỹ dẫn đến nhiều việc phải làm hơn, phải suy nghĩ làm việc hiệu thông qua cách viết code bug hơn, debug nhanh hơn… ▸ Dùng nhân lực test không khả thi nên phải phát triển hệ thống test từ đầu Ví dụ bạn muốn test có liệu tắt vài máy hay không, nên viết script hay test case để làm việc ▸ Một hệ thống test tốt phải đảm bảo bao phủ hết điểm yếu phầnmềm accuracy, reliability, security, scalability, performance… ▸ Một hệ thống test tốt thường có tầng, unit test, integration test, performance test Nếu hệ thống test tốt chạy tầng, với số thay đổi nhỏ ▸ Bạn cung cấp cho lập trình viên hệ thống máy thật với hàng chục máy để làm việc test ▸ Có test scenario hàng ngày, hàng tuần… TUAN NGUYEN MỘT SỐ TIÊU CHÍ CHO ARCHITECTURE VÀ TEST ▸ Unit Test: ▸ Chạy IDE, test phải chạy xong 15s - 60s không nên 3min ▸ Không nên dùng mock test mokito Phầnlớnphầnmềm tốt cung cấp unit test framework, simulation test, phải tự viết simulation component ▸ Integration Test ▸ Chạy môi trường tương đối thật docker, vagrant, IAAS… Một máy 16GB RAM chia - 12 máy ảo để chạy test ▸ Test case thừờng chạy từ vài phút đến vài tiếng Test case thường cover scenario failure, data lost, duplication, balance… ▸ Performance Test ▸ Test hệ thống hardware thật Nếu hệ thống integration test thiết kế tốt, sử dụng lại ▸ Test case có thẻ kéo dài ngày , tuần với quy môliệu yêu cầu ... thiệu dự án mã nguồn mở liên quan đến big data (hadoop, kafka, zookeeper ), mạnh dự án cách phân loại chọn lựa dự án mã nguồn mở để đáp ứng nhu cầu ▸ Cách thu thập thông tin, yêu cầu, phân tích cấu... web site, liệu tập chung phần lớn 1000 site lớn ▸ Lấy nhiều 6triệu trang web ngày ▸ Sắp xếp liệu theo thời gian, liệu cập nhật, merge 12h lần ▸ Các toán: trính rút liệu, phân loại liệu, tính... cuối Giúp cho bạn truy cập đến phần mềm tảng đám mây mà không cần quản lý sở hạ tầng tảng chạy ▸ SAAS Framework Apache Yarn, Mesos… ▸ Tự tạo SAAS phần mềm mã nguồn mở hadoop, Kafka, Cassandra…