1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề tài nghiên cứu xây dựng spark streaming lưu trữ trên hdfs

47 2 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 47
Dung lượng 3,27 MB

Nội dung

  LỜI CẢM ƠN Trước hết, em xin bày tỏ tình cảm lịng biết ơn em tới giáo TS.Nguyễn Thị Thu Hiên Người bước hướng dẫn, giúp đỡ em trình thực đồ án tốt nghiệp Em xin chân thành cảm ơn thầy cô giáo khoa Viễn Thông – Học viện Cơng  Nghệ Bưu Chính Viễn Thơng dìu dắt, dạy dỗ em kiến thức chuyên môn tinh thần học tập để em có kiến thức thực đồ án tốt nghiệp Em xin chân thành cảm ơn PGS.TS Đặng Hoài Bắc – Hiệu trưởng Học viện Cơng  Nghệ Bưu Chính Viễn Thơng, ban giám hiệu nhà trường, phịng ban giúp đỡ tạo điều kiện tốt cho em suốt thời gian học tập trường Tuy có nhiều cố gắng trình học tập, q trình làm đồ án tốt nghiệp khơng thể tránh khỏi thiếu sót, em mong góp ý quý báu tất thầy cô giáo tất bạn để kết em hoàn thiện Một lần em xin chân thành cảm ơn Hà Nội, Ngày Tháng Năm Sinh viên   MỤC LỤC   DANH MỤC HÌNH   THUẬT NGỮ VIẾT TẮT   LỜI MỞ ĐẦU Big Data công nghệ giới thiệu từ năm 2005, vốn sử dụng để mô tả việc khai thác thông tin trọng yếu từ nhiều hệ thống khác nhau, sau tập hợp thơng tin lại để phân tích Sự thật có nhiều doanh nghiệp bỏ quên tầm quan trọng Big Data Trước hết, ta cần lưu ý rằng, liệu – đặc biệt liệu “đúng” đủ nguồn sống doanh nghiệp Dữ liệu thứ giúp đo lường đa phần tham số chủ chốt cho doanh nghiệp.Ngoài ra, giới “siêu kết nối” tại, liệu đại diện cho khách hàng – liệu khách hàng đến từ hệ thống ERP, mà doanh nghiệp phải cân nhắc phản hồi khảo sát khách hàng, bình luận mạng xã hội họ Chính vậy, việc vận dụng nguồn liệu, dù liệu cấu trúc hay phi cấu trúc phần giúp giải tỏa áp lực cho doanh nghiệp Hãy nghĩ 15 năm trước, doanh nghiệp liên tục bỏ qua Big Data, để xem xét lại vị công nghệ tại.Cụ thể, vòng 15 năm, liệu dần chuyển dịch sang Cloud, theo sau hàng loạt chiến thuật phần mềm mới, hệ thống chuyên biệt dần trở nên mở hơn, liên tục trao đổi liệu “có cấu trúc”.Tuy nhiên, hệ thống chưa hoàn thiện khả tổng hợp liệu cho việc phân tích định, điều hồn tồn xảy tương lai Cùng với hỗ trợ công nghệ AI Machine Learning, doanh nghiệp đạt thứ mà thường gọi “lợi cạnh tranh.” Được đồng ý Học viện Cơng Nghệ Bưu Chính Viễn Thơng khoa Viễn Thơng 1, ủng hộ nhiệt tình động viên giúp đỡ tận tình Nguyễn Thị Thu Hiên, em chọn đề tài:“  Nghiên cứu xây dựng Spark Streaming lưu trữ  HDFS  ”  Ngoài phần mở đầu kết luận , nội dung báo cáo em chia làm chương: Chương 1: Giới thiệu chung Hadoop   Chương 2: Tổng quan Spark Streaming Chương 3: Xây dựng luồng Spark Streaming lưu trữ HDFS Em mong nhận ý kiến đóng góp phê bình thầy trường bạn để chương trình ngày hoàn thiện Em xin chân thành cảm ơn   CHƯƠNG GIỚI THIỆU HADOOP 1.1Giới thiệu Framework Hadoop 1.1.1 Hadoop ? Apache Hadoop Framework mã nguồn mở, cho phép phát triển ứng dụng  phân tán có cường độ liệu lớn cách miễn phí Hadoop phát triển dựa ý tưởng từ cơng bố Google mơ hình MapReduce hệ thống file phân tán Google File System (GFS) Hadoop cung cấp hệ thống file phân tán (HDFS) cho  phép lưu trữ liệu dựa lên nhiều Node Cả Map/Reduce HDFS thiết kế cho framework tự động quản lý lỗi, hư hỏng phần cứng node Hadoop viết Java nhiên nhờ chế streaming , Hadoop cho phép phát triển ứng dụng phân tán Java lẫn số ngôn ngữ lập trình khác Python, Scala Hadoop chạy môi trường Linux-based 1.1.2 Lịch sử phát triển Hadoop Hadoop bắt đầu vào năm 2002 với dự án Apache Nutch Hadoop tạo Dough Cutting, người tạo Apache Lucene, thư viện tìm kiếm văn sử dụng rộng rãi Hadoop có nguồn gốc từ Apache Nutch, cơng cụ tìm kiếm web mã nguồn mở, thân phần Dự án Lucene  Nutch khởi xướng từ năm 2002, hệ thống search engine (gồm crawler tìm kiếm) nhanh chóng đời Tuy nhiên, nhà kiến trúc sư Nutch nhanh chóng nhận Nutch khơng thể mở rộng để thực vai trị searcher  engine tập liệu hàng tỷ trang web (lúc khả Nutch crawl tối đa 100 triệu trang) Nguyên nhân giới hạn Nutch lúc chạy máy đơn (stand alone) nên gặp phải khuyết điểm tốc độ truy xuất chậm , khả lưu trữ bị giới hạn    Năm 2003, Google công bố kiến trúc hệ thống file phân tán GFS (viết tắt từ Google File System) họ Các nhà kiến trúc sư Nutch thấy GFS giải nhu cầu lưu trữ file lớn từ trình crawl index Năm 2004, họ  bắt tay vào việc ứng dụng kiến trúc GFS vào cài đặt hệ thống file phân tán nguồn mở có tên Nutch Distributed File System (NDFS)  Năm 2004, Google lại công bố báo giới thiệu MapReduce Vào đầu năm 2005, nhà phát triển Nutch xây dựng phiên MapReduce Nutch, vào năm 2005, tất thuật toán Nutch cải tiến lại để chạy  NDFS MapReduce NDFS MapRecude Nutch nhanh chóng tìm ứng dụng bên lĩnh vực search engine, vào tháng hai 2006 Dough Cutting tách riêng NDFS MapReduce để hình thành dự án độc lập có tên Hadoop Cùng thời gian này, Dough Cutting gia nhập vào Yahoo! Tại ông tạo môi trường tuyệt vời để phát triển Hadoop vào tháng năm 2008 Yahoo công bố sản phẩm search engine họ xây dựng Hadoop cluster có kích thước 10.000 nhân vi xử lý  Năm 2008, Apache đưa Hadoop lên thành dự án top-level Apache Software Foundation, nhằm xác nhận thành công áp dụng rộng rãi Hadoop Vào 12 thời gian này, Hadoop sử dụng nhiều cơng ty ngồi Yahoo! Last.fm, Facebook, New York Times  Năm 2008, Hadoop phá kỷ lục giới xếp terabyte liệu Chạy cluster gồm 910 node, Hadoop xếp terabyte liệu vòng 209 giây, phá kỷ lục cũ 297 giây Sau lâu, Google cơng bố ứng dụng chạy MapReduce họ xếp terabyte liệu 68 giây Vào tháng năm 2009, đội nhà phát triển Yahoo! dùng Hadoop để xếp terabyte liệu vòng 62 giây  Năm 2009, Hadoop thử nghiệm thành công để xếp PB (PetaByte) liệu vòng chưa đầy 17 để xử lý hàng tỷ tìm kiếm lập mục hàng triệu trang web Và Doug Cutting rời Yahoo gia nhập Cloudera để thực thách thức đưa   Hadoop sang ngành công nghiệp khác Vào tháng 12 năm 2011, Apache Software Foundation phát hành Apache Hadoop phiên 1.0 Sau vào tháng năm 2013, Phiên 2.0.6 có sẵn.Và tại, Apache Hadoop phiên 3.3.4  phát hành vào tháng năm 2022 1.1.3 Kiến trúc Hadoop Trong phần trình bày kiến trúc tổng quan Hadoop Hadoop bao gồm thành phần : Hình 1-1 Các thành phần Hadoop ● Core: cung cấp công cụ giao diện cho hệ thống phân tán Đây phần lõi để xây dựng nên HDFS MapReduce ● MapReduce: giúp phát triển ứng dụng phân tán theo mơ hình MapReduce cách dễ dàng mạnh mẽ , Framework chạy cluster lớn với nhiều node ● HDFS: hệ thống file phân tán cung cấp khả lưu trữ liệu lớn truy cập với hiệu suất cao ● HBase: sở liệu phân tán , sử dụng HDFS làm hạ tầng cho việc lưu trữ liệu bên cung cấp khả tính song song dựa MapReduce   ● Hive: Data WareHouse phân tán Nó quản lý liệu lưu trữ HDFS cung cấp ngôn ngữ truy vấn dựa SQL ● Chukwa: hệ thống tập hợp phân tích liệu Chukwa chạy collector , collector lưu trữ liệu HDFS sử dụng MapReduce để phát sinh báo cáo ● Pig: ngôn ngữ luồng liệu cấp cao thực thi cho việc tính tốn song song 1.1.4 Ứng dụng Hadoop số cơng ty  Ngày nay, ngồi Yahoo!, có nhiều công ty sử dụng Hadoop công cụ để lưu trữ phân tích liệu khối liệu lớn như: ● Expedia: sử dụng cụm Hadoop Amazon Elastic MapReduce (Amazon EMR) để phân tích khối lượng lớn liệu đến từ mạng lưới trang web toàn cầu Expedia Chúng bao gồm dòng nhấp chuột, tương tác người dùng liệu cung cấp Có giá trị cao việc phân bổ chi tiêu tiếp thị, liệu hợp từ lượt đặt trước web, phận tiếp thị nhật ký chi tiêu tiếp thị để  phân tích xem liệu chi tiêu có tương đương với việc tăng lượt đặt trước hay không ● Royal Bank of Scotland: Là người thúc đẩy trải nghiệm khách hàng nâng cao, Ngân hàng Hoàng gia Scotland (RBS) định sử dụng Hadoop (Cloudera Enterprise) để thu thập thông tin từ trò chuyện khách hàng trực tuyến mình.RBS xử lý khoảng 250.000 nhật ký trị chuyện siêu liệu liên quan tháng, lưu trữ liệu phi cấu trúc Hadoop Bằng cách sử dụng trung tâm phân tích quản lý liệu lớn xây dựng Hadoop, doanh nghiệp sử dụng công nghệ máy học xử lý liệu để lập đồ hiểu hành trình khách hàng.Ngân hàng cao cấp sử dụng phân tích liệu lớn để sâu vào liệu giao dịch nhằm phân tích xác định nơi khách hàng trả gấp đôi cho sản phẩm tài mang lại trải nghiệm khách hàng nâng cao Và cịn nhiều cơng ty sử dụng Hadoop vào việc lưu trữ xử lý liệu, đặc biệt cho nguồn liệu lớn với kích thước lên tới hàng petabyte   RDD hỗ trợ hai loại hoạt động: - Transformations: hoạt động (chẳng hạn map, filter, union, v.v.) thực RDD tạo RDD chứa kết Hình 2-2 Spark RDD - Narrow Transformation Đó kết map, filter cho liệu từ phân vùng Một RDD đầu có phân vùng với ghi bắt nguồn từ phân vùng RDD Chỉ tập hợp giới hạn phân vùng sử dụng để tính tốn kết   Hình 2-3 Spark RDD - Wide Transformation  Nó kết hàm giống groupByKey() reduceByKey() Dữ liệu cần thiết để tính tốn ghi phân vùng nằm nhiều phân vùng RDD gốc Phép biến đổi gọi phép biến đổi shuffle chúng không phụ thuộc vào phép shuffle - Actions: hoạt động (chẳng hạn reduce, count, v.v.) trả giá trị sau chạy tính tốn RDD Nó thực thi Lineage graph để tải liệu vào RDD gốc, thực tất phép biến đổi trung gian trả kết cuối cho chương trình Trình điều khiển ghi liệu hệ thống tệp Các phép biến đổi Spark trễ nghĩa chúng khơng tính tốn kết Thay vào họ nhớ thao tác thực tập liệu mà thao tác thực Các phép biến đổi thực tính tốn hành động gọi kết trả chương trình điều khiển Thiết kế cho phép Spark chạy hiệu hơn.Spark RDD lưu trữ phân vùng thủ công Bộ nhớ đệm có lợi sử dụng RDD nhiều lần Và phân vùng thủ công quan trọng để cân xác phân vùng Nói chung, phân vùng nhỏ cho phép phân    phối liệu RDD đồng hơn, nhiều người thực thi Do đó, phân vùng giúp cơng việc trở nên dễ dàng Các tính Spark RDD: - Phân vùng đơn vị song song Spark RDD Mỗi phân vùng phận hợp lý liệu thay đổi Người ta tạo phân vùng thơng qua số phép biến đổi phân vùng có - Tính bất biến:Dữ liệu an tồn để chia sẻ quy trình Nó tạo truy xuất lúc nào, giúp dễ dàng lưu vào đệm, chia sẻ chép Vì vậy, cách để đạt qn tính tốn - Tính tốn nhớ :Spark RDD có cung cấp tính tốn nhớ  Nó lưu trữ kết trung gian nhớ phân tán (RAM) thay nhớ ổn định (DISK) - Khả chịu lỗi :Spark RDD có khả chịu lỗi chúng theo dõi thơng tin dịng liệu để tự động xây dựng lại liệu bị gặp cố Họ xây dựng lại liệu bị lỗi cách sử dụng dòng, RDD nhớ cách tạo từ liệu khác (bằng phép biến đổi map, join groupBy) để tự tạo lại Một số hạn chế Spark RDD:   Hình 2-4 Hạn chế Apache Spark RDD - Khi làm việc với liệu có cấu trúc, RDD khơng thể tận dụng lợi trình tối ưu hóa nâng cao Spark bao gồm trình tối ưu hóa Catalyst cơng cụ thực thi Tungsten Các nhà phát triển cần tối ưu hóa RDD dựa thuộc tính - Giới hạn hiệu suất: Là đối tượng JVM nhớ, RDD liên quan đến chi phí chung Garbage Collection Java Serialization tốn liệu tăng lên - Giới hạn lưu trữ : RDD xuống cấp khơng có đủ nhớ để lưu trữ chúng  Người ta lưu trữ phân vùng RDD disk hết dung lượng RAM Kết là, cung cấp hiệu suất tương tự hệ thống song song liệu 2.2.2 Spark SQL Spark SQL tập trung vào việc xử lý liệu có cấu trúc, sử dụng phương pháp tiếp cận khung liệu mượn từ ngôn ngữ R Python (trong Pandas) Như tên gọi, Spark SQL cung cấp giao diện với cú pháp SQL để truy vấn liệu, mang sức mạnh Apache Spark đến nhà phân tích liệu nhà phát triển Bên cạnh khả hỗ trợ SQL, Spark SQL cung cấp giao diện tiêu chuẩn để đọc ghi vào kho liệu khác bao gồm JSON, HDFS, Apache Hive, JDBC, Apache ORC Apache Parquet, tất hỗ trợ trực tiếp Các sở liệu phổ biến khác Apache Cassandra, MongoDB, Apache Hbase,… hỗ trợ thông qua trình kết nối riêng biệt từ hệ sinh thái Spark Packages Cung cấp kiểu data abstraction (SchemaRDD) nhằm hỗ trợ cho kiểu liệu có cấu trúc (structured data) liệu nửa cấu trúc (semi-structured data – thường liệu liệu có cấu trúc không đồng cấu trúc liệu phụ thuộc vào nội dung liệu ấy) Spark  SQL hỗ trợ DSL (Domain-specific language) để thực thao tác DataFrames  bằng ngôn ngữ Scala, Java Python hỗ trợ ngôn ngữ SQL với giao diện command-line 2.2.3 Spark Streaming ODBC/JDBC server   Spark Streaming thêm vào Apache Spark vào năm 2013, phần mở  rộng API Spark cung cấp khả xử lý luồng liệu trực tiếp mở rộng, thơng lượng cao chịu lỗi Việc nhập liệu thực từ nhiều nguồn Kafka, Apache Flume , Amazon Kinesis ổ cắm TCP trình xử lý thực thuật tốn phức tạp thể hàm cấp cao map,reduce, join Cuối cùng, liệu xử lý đẩy hệ thống tệp, sở liệu bảng điều khiển trực tiếp Spark Streaming sử dụng để thực việc phân tích stream việc coi stream mini-batches thực hiệc kỹ thuật RDD transformation liệu mini-batches Qua cho phép đoạn code viết cho xử lý batch tận dụng lại vào việc xử lý stream, làm cho việc phát triển lambda architecture dễ dàng Tuy nhiên điều lại tạo độ trễ xử lý liệu (độ trễ  bằng mini-batch duration) nhiều chuyên gia cho Spark Streaming không thực công cụ xử lý streaming giống Storm Flink.Thành phần cho phép Spark xử lý liệu truyền phát theo thời gian thực Dữ liệu nhập từ nhiều nguồn Kafka, Flume HDFS (Hệ thống tệp phân tán Hadoop) Sau đó, liệu xử lý thuật tốn phức tạp đẩy hệ thống tệp, sở liệu  bảng điều khiển trực tiếp 2.2.3.1 Nhu cầu Streaming Apache Spark  Để xử lý liệu, hầu hết hệ thống xử lý luồng truyền thống thiết kế với mơ hình tốn tử liên tục, hoạt động sau - Dữ liệu truyền trực tuyến nhận từ nguồn liệu (ví dụ:dữ liệu đo từ xa hệ thống, liệu thiết bị IoT, v.v.) vào số hệ thống nhập liệu Apache Kafka, Amazon - Dữ liệu sau Kinesis, xử lý song song v.v - Kết gửi cho hệ thống bên HBase , Cassandra, v.v cụm   Hình 2-5 Luồng xử lý Spark Streaming Kiến trúc truyền thống gặp phải số thách thức với xu hướng ngày hướng tới quy mô lớn phân tích thời gian thực phức tạp hơn: - Phục hồi chậm trễ thất bại cách nhanh chóng:Trong thời gian thực, hệ thống phải có khả phục hồi nhanh chóng tự động sau cố chậm trễ để cung cấp kết vốn thách thức hệ thống truyền thống phân bổ tĩnh toán tử liên tục cho nút worker - Cân tải: Trong hệ thống vận hành liên tục, việc phân bổ tải xử lý khơng đồng worker gây tắc nghẽn Hệ thống cần có khả tự động điều chỉnh việc phân bổ tài nguyên dựa khối lượng công việc Tuy nhiên với kiến trúc Spark Streaming giải khó khăn : - Việc chia liệu thành micro-batches nhỏ cho phép phân bổ tính tốn chi tiết cho tài nguyên Các nhiệm vụ công việc cân tải cách tự nhiên workers, số workers xử lý số nhiệm vụ dài workers khác xử lý nhiều nhiệm vụ ngắn Spark Streaming - Trong Spark, tính tốn rời rạc thành tác vụ nhỏ chạy nơi mà khơng ảnh hưởng đến tính xác Vì vậy, tác vụ bị lỗi, phân phối   đồng tất nút khác cụm để thực tính tốn lại phục hồi sau lỗi nhanh so với phương pháp truyền thống - Khả Spark Streaming để xử lý hàng loạt liệu tận dụng công cụ Spark dẫn đến thông lượng gần cao cho hệ thống phát trực tuyến khác Spark Streaming đạt độ trễ thấp tới vài trăm milliseconds 2.2.4 MLlib (Machine Learning Library) Apache Spark trang bị thư viện phong phú gọi MLlib Thư viện chứa loạt thuật toán học máy - phân loại, hồi quy, phân cụm Nó bao gồm cơng cụ khác để xây dựng, đánh giá điều chỉnh ML Pipelines Tất chức giúp Spark mở rộng quy mô cụm. Theo so sánh benchmark  Spark MLlib nhanh lần so với phiên chạy Hadoop (Apache Mahout) 2.2.5 GraphX Graphx tảng xử lý đồ thị dựa Spark Nó cung cấp Api để diễn tả tính tốn đồ thị cách sử dụng Pregel Api Việc sử dụng Graphx nhìn thấy bạn bè Facebook, kết nối LinkedIn, định tuyến internet Mặc dù khái niệm tính tốn Graphx đơn giản, ứng dụng Graphx thực vô hạn với trường hợp sử dụng phát ngân hàng, thị trường chứng khốn Hình 2-6 Property Graph   GraphX mở rộng Spark RDD Property Graph phân tán đàn hồi Property Graph đồ thị đa hướng có nhiều cạnh song song Mỗi cạnh đỉnh có thuộc tính người dùng xác định liên kết với Các cạnh song song cho phép nhiều quan hệ đỉnh giống Các trường hợp sử dụng Graph Computation: - Hệ thống phát thảm họa: Hình 2-7 Hệ thống phát thảm họa Graph sử dụng để phát thảm họa bão, động đất, sóng thần, cháy rừng núi lửa để đưa cảnh báo cảnh báo cho người - Phát gian lận tài chính: Hình 2-8 Hệ thống phát gian lận tài Phân tích biểu đồ sử dụng để giám sát giao dịch tài phát người liên quan đến gian lận tài rửa tiền - Phân tích kinh doanh: Hình 2-9 Hệ thống phân tích kinh doanh   Biểu đồ, sử dụng với Machine Learning, giúp hiểu xu hướng mua hàng khách hàng Ví dụ: Uber, McDonald's, v.v - Hệ thống thơng tin địa lý:   Hình 2-10 Hệ thống thơng tin địa lý Đồ thị sử dụng nhiều để phát triển chức hệ thống thông tin địa lý  phân định lưu vực sông dự báo thời tiết - Google Pregel Hình 2-11 Hệ thống Google Pregel Pregel tảng có khả mở rộng chịu lỗi Google với API đủ linh hoạt để thể biểu đồ tùy ý thuật toán Các tính Spark Graphx: - Tính linh hoat: Spark GraphX hoạt động với biểu đồ tính toán GraphX hợp ETL (Extract, Transform & Load), phân tích thăm dị tính tốn biểu đồ lặp hệ thống Chúng ta xem liệu dạng biểu đồ, chuyển đổi nối biểu đồ với RDD cách hiệu viết thuật toán biểu đồ lặp tùy chỉnh cách sử dụng API Pregel   - Tốc độ: Spark GraphX cung cấp hiệu suất tương đương với hệ thống xử lý đồ thị chuyên dụng nhanh Nó so sánh với hệ thống đồ thị nhanh giữ tính linh hoạt, khả chịu lỗi dễ sử dụng Spark - Phát triển thư viện thuật tốn: Chúng ta chọn từ thư viện thuật toán đồ thị phát triển mà Spark GraphX cung cấp Một số thuật toán phổ biến page rank, connected components, label propagation, SVD++ 2.3 Kiến trúc Spark  Hình 2-12 Kiến trúc Apache Spark  Khi Driver Program kiến trúc Apache Spark thực thi, gọi chương trình thực ứng dụng tạo SparkContext SparkContext chứa tất chức Spark Driver bao gồm số thành phần khác, bao gồm DAG Scheduler, Task  Scheduler, Backend Scheduler, and Block Manager, tất chịu trách nhiệm dịch mã người dùng viết thành công việc thực thực thi cụm   Cluster Manager quản lý thực công việc khác cụm Spark Driver hoạt động với Cluster Manager để kiểm soát việc thực nhiều công việc khác Cluster  Manager làm nhiệm vụ phân bổ tài nguyên cho công việc Khi công việc chia thành cơng việc nhỏ hơn, sau phân phối cho nút worker, Spark Driver kiểm sốt q trình thực thi.Nhiều workers node sử dụng để xử lý RDD tạo SparkContext kết lưu vào đệm SparkContext nhận thông tin tác vụ từ Cluster Manager đưa vào hàng đợi workers node.Chúng ta tăng số lượng worker muốn cải thiện hiệu suất hệ thống Bằng cách này, chia cơng việc thành phần mạch lạc 2.3.1 Spark Driver Master Node xử lý trình điều khiển điều phối workers giám sát nhiệm vụ Spark chia thành công việc lên lịch để thực thi thực thi theo cụm Spark contexts trình điều khiển tạo để giám sát cơng việc hoạt động cụm cụ thể để kết nối với cụm Spark Trong sơ đồ, chương trình trình điều khiển gọi ứng dụng tạo spark contexts(hoạt động gateway) giám sát công việc hoạt động cụm kết nối với Spark cluster Mọi thứ thực spark contexts Mỗi Spark session có mục Spark contexts Spark drives bao gồm nhiều thành  phần để thực công việc clusters, cluster managers Khi quy trình thực thi clusters, cơng việc chia thành giai đoạn với giai đoạn đạt thành tác vụ theo lịch trình 2.3.2 Spark Executors  Người thực thi chịu trách nhiệm thực công việc lưu trữ liệu đệm từ đầu Người thi hành đăng ký với chương trình trình điều khiển từ đầu Những người thực thi có số khe thời gian để chạy ứng dụng đồng thời  Người thực thi chạy tác vụ tải liệu chúng loại bỏ chế độ khơng   tải Trình thực thi chạy quy trình Java liệu tải xóa q trình thực thi tác vụ Nhiệm vụ người dùng thực quy trình Java 2.3.3 Cluster Manager Một chương trình trình điều khiển kiểm sốt việc thực cơng việc lưu trữ liệu đệm Ngay từ đầu, người thi hành đăng ký với trình điều khiển Trình thực thi có số khe thời gian để chạy ứng dụng đồng thời Người thực thi đọc ghi liệu bên ngoài việc phục vụ yêu cầu khách hàng Một công việc thực người thi hành tải liệu chúng gỡ bỏ trạng thái nhàn rỗi Trình thực thi phân bổ động liên tục thêm xóa tùy thuộc vào thời gian sử dụng Chương trình trình điều khiển giám sát người thi hành họ thực tác vụ người dùng 2.3.4 Worker Nodes Các slave nodes hoạt động người thực thi, xử lý tác vụ trả kết trở  lại spark context Master node đưa nhiệm vụ cho Spark context worker  nodes thực chúng Chúng làm cho quy trình trở nên đơn giản cách tăng worker nodes (1 đến n) để xử lý song song nhiều công việc tốt cách chia công việc thành công việc phụ nhiều máy Một Spark worker giám sát worker nodes để đảm bảo việc tính tốn thực cách đơn giản Mỗi worker node xử lý tác vụ Spark Trong Spark, phân vùng đơn vị công việc định cho người thực thi cho người 2.3.5 Phương thức thực Chúng ta có ba chế độ thực thi khác nhau: local, shares dedicated Những điều xác định vị trí thực tế tài nguyên ứng dụng bạn bạn chạy ứng dụng Chúng ta định nơi lưu trữ resources locally, vị trí shared vị trí dedicated Cluster mode: cách chạy ứng dụng Spark thường xuyên Ở chế độ cluster mode, người dùng cung cấp tập lệnh JAR, tập lệnh Python tập lệnh R biên dịch sẵn   cho người quản lý cụm Sau trình quản lý cụm nhận tập lệnh JAR, Python R biên dịch trước, quy trình trình điều khiển khởi chạy nút worker   bên cụm, quy trình trình thực thi Điều có nghĩa trình quản lý cụm phụ trách tất quy trình liên quan đến ứng dụng Spark Client mode: Trái ngược với chế độ cluster mode, Spark driver máy khách gửi ứng dụng, Spark driver bị xóa chế độ client mode chịu trách nhiệm trì quy trình Spark driver máy khách Các máy này, thường gọi edge nodes maintained , trì máy khách Local mode: Chế độ local mode chạy toàn Spark Application máy, trái ngược với hai chế độ trước đó, chế độ song song hóa Spark Application thơng qua luồng máy Do đó, chế độ local mode sử dụng luồng thay luồng song song Đây cách phổ biến để thử nghiệm với Spark 2.4 Các tính Spark   Apache Spark, khung tính tốn cụm phổ biến, tạo để tăng tốc ứng dụng xử lý liệu Spark, cho phép ứng dụng chạy nhanh cách sử dụng điện toán cụm nhớ, khung mã nguồn mở phổ biến Cluster tập hợp nút giao tiếp với chia sẻ liệu Do tính song song liệu ẩn khả chịu lỗi, Spark áp dụng cho nhiều nhu cầu xử lý tương tác   Hình 2-13 Tính Apache Spark  ● Speed: Spark hoạt động nhanh tới 100 lần so với MapReduce để xử lý lượng lớn liệu Nó chia liệu thành khối theo cách kiểm soát ● Powerful Caching: Khả lưu trữ nhớ đệm ổ cứng mạnh mẽ cung cấp lớp lập trình đơn giản ● Deployment: Mesos, Hadoop thơng qua YARN trình quản lý cụm riêng Spark sử dụng để triển khai ● Real-Time: Do xử lý nhớ, cung cấp khả tính tốn thời gian thực độ trễ thấp ● Polyglot: Ngoài Java, Scala, Python R, Spark hỗ trợ bốn ngôn ngữ Bạn viết mã Spark ngơn ngữ số Spark cung cấp giao diện dòng lệnh Scala Python   Chương Xây dựng luồng Spark Streaming lưu trữ HDFS 3.1 Xây dựng luồng Spark streaming phân tích bệnh tim mạch qua năm 3.1.1 Mơ tả chung tốn Ứng dụng cần có đáp ứng nhu cầu tối thiểu lưu trữ liệu  phân tích bệnh tim mạch qua năm Cụ thể dashboard cần thể cụ thể số BMI, Cardio, số ca mắc bệnh tim mạch qua thời gian 3.1.2 Mô tả chi tiết toán - Ưng dụng xử lý luồng liệu sau:  Dữ liệu crawl từ mạng xã hội sau dùng python làm liệu  Dùng Airflow lập lịch đẩy liệu vào Kafka, sau Spark Streaming lấy liệu từ Kafka , tiến hành trích xuất biến đổi định dạng đẩy vào Postgres  Tiếp liệu từ Postgres đổ vào Superset để vẽ dashboard, từ phân tích đánh giá thông qua biểu đồ 3.1.3 Mô tả phần mềm cài đặt hệ thống 3.1.4 Visualize mơ hình hóa liệu 3.2

Ngày đăng: 16/05/2023, 08:44

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w