Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

58,565 views

Published on

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.

Published in: Data & Analytics

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).

×