O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Dữ liệu lớn và các bước tiếp cận: Apache Spark

61.532 visualizações

Publicada em

Tổ chức: TopDev.
Chủ đề: Dữ liệu lớn và các bước tiếp cận trong 3 giờ
Speaker: Ông Xuân Hồng - Researcher engineer @ Trusting Social.
Ngày: 30/09/2017.

Publicada em: Dados e análise

Dữ liệu lớn và các bước tiếp cận: Apache Spark

  1. 1. Dữ liệu lớn và các bước tiếp cận: Apache Spark Ông Xuân Hồng
  2. 2. Nội dung ● Tổng quan hệ thống Big Data ● RDD cơ bản ● Data Frame cơ bản ● Demo ● Kinh nghiệm ● Tìm hiểu thêm
  3. 3. Tổng quan hệ thống Big Data Message queue Processing Storage Management ● Amazon Kinesis ● SQS ● Apache Kafka ● Apache Spark ● Apache Storm ● Apache Flink ● Hadoop ● AWS S3, Google storage ● NoSQL ● Jenkins ● Git ● Docker ● Ansible ● Travis
  4. 4. ● RDD: Resilient Distributed Dataset. ● Immutable: không thay đổi được, chỉ có thể tạo ra RDD mới. ● Lazy evaluated: tính toán để đó, chừng nào có Action mới thực thi. ● Distributed: phân tán trên các cluster/workers. RDD cơ bản
  5. 5. RDD cơ bản ● Master/Driver ○ Chuyển program thành các tasks cho các workers. ○ Scheduling tasks để các workers hoạt động đồng bộ với nhau. ● n-Cluster/Executors ○ Hoàn thành các tasks và trả kết quả về Driver. ○ Cache dữ liệu khi được yêu cầu. ● SparkContext dùng để tạo RDDs.
  6. 6. RDD cơ bản Transformations Actions ● map() ● flatMap() ● filter() ● distinct() ● sample() ● collect() ● count() ● countByValue() ● take() ● top() ● takeOrdered() Các thao tác transformations chỉ được thực thi khi lệnh Actions được gọi. Ví dụ: hàm action collect() sẽ trigger hàm transformations map() thực hiện tính toán của mình.
  7. 7. Data Frame cơ bản ● Kế thừa từ RDDs. ● Tối ưu hoá hiệu suất tính toán nhờ Spark-SQL Catalyst optimizer. ● Hỗ trợ thao tác ETL dễ dàng hơn nhờ SQL-like. ● Học tập từ Python/Pandas và R Dataframe mô phỏng dữ liệu dạng bảng.
  8. 8. Data Frame cơ bản
  9. 9. Data Frame cơ bản
  10. 10. Demo Installation ● pip ● pip install virtualenv ● pip install pandas ● cd ~ ● mkdir virtualenv ● cd virtualenv ● virtualenv topdevlibs ● source topdevlibs/bin/activate ● pip install jupyter ● brew install apache-spark ● create pyspark profile ○ export PATH=$PATH:/usr/local/Cellar/apache-spark/2.2.0/bin ○ export PYSPARK_DRIVER_PYTHON=jupyter ○ export PYSPARK_DRIVER_PYTHON_OPTS='notebook' pyspark ● pyspark
  11. 11. Demo
  12. 12. Demo Notebooks ● RDD cơ bản ● Dataframe cơ bản ● More about Spark
  13. 13. ● Nên dùng Notebook để dễ code và kiểm tra hiệu suất. ● Nên dùng Schema để load đúng định dạng dữ liệu. ● Binary (parquet, gzip) > Text (csv, json), File > Database. ● Tự tạo dữ liệu Big Data bằng Mockaroo. ● Nên sử dụng cache khi bảng dữ liệu được sử dụng nhiều lần tiếp đó. ● Nên xoá cache trước khi khởi tạo cache mới để tránh tràn bộ nhớ. ● Đối với bảng dữ liệu lớn nên lưu bảng tạm ra đĩa thay vì cache. ● Code SparkSQL sáng sủa hơn Dataframe built-in function. ● Upgrade lên version 2.0 khi có thể để tối ưu tính toán và quản lý bộ nhớ. ● Học thông qua: ○ Thực hành ○ Cheat sheet ○ Side project Kinh nghiệm
  14. 14. Tìm hiểu thêm ● Thiết lập driver/workers với Zookeeper, Mesos, Marathon, Chronos. ● Configuration cho Spark ● Cách deploy bằng Docker. ● Databricks community. ● Load dữ liệu từ các source khác (MongoDB, MySQL, PostgreSQL, S3, JDBC, Cassandra …) ● Làm việc với AWS S3, Google Cloud Storage. ● Python vs Scala vs R. ● Spark Dataframe vs Pandas Dataframe. ● Cache vs Persist. ● Cài notebook cho Spark Scala. ● Cấu hình hệ thống notebook cho từng yêu cầu hệ thống khác nhau (spark-small, spark-medium, spark-large, spark-extra).

×