本次活動內容表 Spark 手把手 - 快速上手營


一、緣由與目標

Spark這個源自分散式叢集平臺的副產品,卻變成了新一代的大資料分析技術,不只打敗了十年老牌大資料分析平臺Hadoop的MapReduce運算引擎,奪下資料排序新世界冠軍,也是新一代串流分析的主流技術,更是矽谷目前最夯新一代大資料分析SMACK的核心關鍵,不只Hadoop廠商如Cloudera和Hortonworks都力推,連Google、微軟都大力支援,IBM更誇口要訓練百萬Spark人才來搶攻大資料分析需求。 本次規畫的「Spark手把手-你不上手, 就打我手」活動分享內容注重於Spark的實務開發與應用,內容從開源巨量資料平台建設到Spark巨量資料分析應用皆有含括。在活動內容分享中,將會導入真實易懂的資料來進行應用開發,使參與者 能充分利用Spark工具來解決問題,加強學習效果,讓所學能真正導入實際工作。

二、活動簡介

「Spark 手把手 - 快速上手營」適合對於想了解如何應用Apache Spark/Hadoop/Kafka來建構大數據資料平台或是處理分析大數據的工程師或工程主管來參加。參加本次活動,參與者都將會有機會體驗 Apache Spark Family 中各項知名的專案,包括 Spark、Spark-SQL、Spark-Streaming、Kafka、HDFS、Parquet、Zeppelin 以及 Java, Scala等工具與技術。

整個活動設計區分為兩大階段:

  1. 階段一 Spark應用於批次型資料處理 (Spark for Batch process): 約4週, 每週2小時
  2. 階段二 Spark應用於串流式事件處理 (Spark for Streaming process): 約2週, 每週2小時
在會期中將由內容分享者透過淺顯易懂的範例程式來帶領參與者進行操作,不僅帶給各位參與者 Apache Spark Family 的基礎知識,活動中整合由淺入深之實作步驟,包含如何將關聯式資料轉換成分散式運算用資料的處理技巧、操作分散式檔案系統、使用終端機及網頁介面之資料查詢工具、運行Scala/Java程式、產出分析結果等,建立一個完整的分析解決方案。活動中由講師引導參與者運用各項 Spark Family 工具來實作出大數據儲存與運算的應用脈絡與結構,激發參與者在未來運用 Spark Family 工具到自己的單位與工作環境之中,更進一步促進參與者對巨量資料分析的認識。

三、參與者技術準備

  1. 不怕接觸 Linux (Ubuntu/ Centos)
  2. 有程式設計開發經驗(C#, Java, Python, SQL, R)
  3. 基本Java或Scala的概念
  4. 熟悉 SQL 語法與應用,例如能了解以下執行結果:
    SELECT c.category_name, count(order_item_quantity) as count
    FROM order_items oi
    INNER JOIN products p ON oi.order_item_product_id = p.product_id INNER
    JOIN categories c ON c.category_id = p.product_category_id GROUP BY c.category_name
    ORDER BY count desc limit 10;
  5. 以下活動資訊供參考:活動主要在學習使用Apache Spark,進行資料處理與分析,將使用各人的電腦及已經事先配置好的Apache Spark機台上實習,對於 Spark 系統架設與管理不會有太多著墨。

四、活動前須知

本活動著重於操作,為了達到最佳的學習效果,請參與者參加前做好以下的準備,並自備筆電下載以下工具:

五、活動表

活動單元 活動內容 週別
e2-spk-s01
  • Apache Spark介詔與開發環境的安裝
    • Apache Spark系統簡介
    • Apache Spark開發環境建置
    • 資源調度管理框架介紹
  • Spark Core 核心技術
    • Spark的運行模式介紹
    • Spark開發流程講解
    • Spark RDD解析與應用
      • Spark-Core RDD介紹
      • SparkRDD與Partition概念
      • Spark RDD Lineage Graph概念
      • Spark RDD API解析與應用
1
e2-spk-s02
  • Spark SQL結構化資料處理應用
    • 不同資料結構型態的挑戰
    • SPARK RDD概念範例#2-進化版
    • Spark-SQL與DataFrame介詔
    • Spark-SQL與DataFrame應用範例
2
e2-spk-s03
  • Spark SQL資料處理應用進階
    • DataFrame Pivot功能
    • Parquet資料格式介詔
    • Spark SQL給合JDBC資訊源
    • Spark-SQL/Zeppelin與北風資料庫結合練習
3
e2-spk-s04
  • Spark DevOp的實用資訊
    • Spark+Hdfs與傳統資料庫的差異
    • 開發Spark App最常犯的前五項錯誤
    • 佈署Spark的Operational Tips
4
e2-spk-s05
  • Spark-Streaming串流式資料處理
    • 巨大的資料串流
    • Apache Kafka的介紹
    • Apache Kafka開發基礎
5
e2-spk-s06
  • Spark-Streaming串流式資料處理
    • Spark Streaming介詔
    • Spark Streaming開發基礎
    • Spark/Kafka的整合篇
6

六、活動主辦團隊

七、活動內容分享人

分享人:郭二文 (二哥)
聯絡: erhwenkuo@gmail.com

緯創資通(Wistron)員工。在緯創創立「緯創IT先進技術實驗室(witlab)」、並於2015年「witlab-1期」協助導入Elasticsearch(分散式全文檢索引擎),「witlab-2期」MQTT的IoT信息核心及2016年「witlab-3期」Apache Spark的大數據平台。熱愛軟體開發與物聯網創新,喜歡整合性資料分析與探索性研究。

分享人:楊欣靜 (Daphne)
聯絡: daphneyang12@hotmail.com

緯創資通(Wistron)員工。跟隨緯創資通先進技術實驗室室長二哥一路學習從傳統式架構到分散式架構、從背動式 (pull)資訊到主動式(push)資訊。深深相信資訊科技能加深人與人的關係,而分享資訊及技術是不是為了報酬或比較。希望稟持「我為人人、人人為我」的精神走跳人生。

八、預期效益

  • 增進對於大數據的知識與技術交流、互動,了解資料科學的應用方式。
  • 藉由 Apache Spark 案例實作與討論,進一步了解、扎實完成資料科學分析所需步驟。
  • 促進參與者對資料科學進一步認識,期望有助參與者至各專案之實質應用與成長。

九、技術/應用分組– 本次活動重點著重於#1與#2

組別 說明 詳細
1 (*) ETL, Batch Report, Batch process

對象: IT / 資料工程師
程度: 初 – 中
程式語言: Java / SQL
元件: Spark-Core , Spark SQL

2 (*) Real time Analytic / Real time Data Process

對象: 資深 IT / 資料工程師
程度: 中 – 高
程式語言: Java / SQL
元件: Spark-Core , Spark SQL , Spark Streaming

3 Machine Learning / Predictive Analytic

對象: 資深 IT / 資料科學家/ 資料分析師
程度: 中 – 高
程式語言: Scala/ Python/ SQL/ R
元件: Spark-Core , Spark SQL , Spark Streaming, Spark-R, Spark-Mllib