강의

멘토링

로드맵

Data Science

/

Data Engineering

Kafka & Spark を活用したリアルタイムデータレイク

初心者のための Kafka & Spark リアルタイムパイプライン入門講座。 コアコンセプトからアーキテクチャまでマスターするためのオールインワン講座です。

  • hyunjinkim
실시간
데이터처리
데이터파이프라인
Kafka
Apache Spark
pyspark
data-lake
kakao-tech

学習した受講者のレビュー

こんなことが学べます

  • Github Actionsと AWS Code Deployで CI/CD 実装

  • Kafka Broker, Confluent Producer & Consumer

  • Prometheus & Grafana を利用した Kafka Dashboard モニタリング

  • Catalog 管理のための Spark & Hive Metastore

  • Spark Streamingを利用した実践プロジェクト実装

  • Kafka & Spark, Zookeeper & Yarn の 可用性テスト

リアルタイムデータパイプライン、なぜ学ぶべきなのか?


リアルタイムデータパイプライン構成を通じて迅速な分析と意思決定を支援することは、選択ではなく必須です。

  • リアルタイム個人化マーケティング & レコメンデーション

  • リアルタイムトレンド分析

  • リアルタイムセキュリティ脅威検知および対応



特にAIが基本となった昨今では、AIを活用したリアルタイム推薦、検知、翻訳など無限の事例が存在し、このようなアーキテクチャ実装のためにますますリアルタイムデータパイプラインが求められています。


そこで準備しました。

最も人気のあるStreaming処理の組み合わせの一つであるKafka + Spark基盤のリアルタイムパイプライン

Kafka & Spark は基本から着実に、パイプライン実装を超えてアーキテクチャ観点での設計方法まで準備しました。

この講義の特徴

📌ローカルマシン上の単一構成はNo!トレンドはクラウドです。AWS Cloudを活用します。

📌 CI/CDは基本ですよね?GitHub ActionsとAWS Code Deployを通じてCI/CDを構成します。

📌 基本からゆっくりと、しかし実習と課題を通じて講義内容が内在化できるようにお手伝いします。

📌サーバークラスター構成からリアルタイムパイプライン構成および可用性テストまでAll in One構成

👍このような方におすすめです

リアルタイムデータパイプラインを学びたいです。
データパイプラインには興味があるものの、リアルタイム処理は経験したことがない方

DataLakeについて知りたいです。
Cloud上に構築されるDataLakeがどのように実装されるかを学びたい方

アーキテクトとして成長したいです。
インフラ設計からコードレベルまで大容量処理が可能で堅牢なアーキテクチャ実装が気になる方

受講後には

  • Kafka Brokerサービスの基本原理の理解、可用性保証を理解し、これを基盤としてBrokerサービスを扱えるようになります。

  • Kafka Producer/Consumerの基本原理から高級オプションまで理解し、大容量環境でのパフォーマンスと整合性間のTrade-offの理解を通じて堅牢なApplicationを作成できるようになります。

  • Sparkが性能を発揮できる条件について理解し、性能を最適化できる技法を基盤としてApplicationを作成できるようになります。

  • AWS S3、Glue、Athenaなど複数のサービスとSparkサービスとの連携を通じて、パイプラインの多様性を理解することができます。

それで、どのような内容を扱うのですか?


  1. 今やトレンドはクラウドです。EC2サーバーを利用して実戦と同じようにクラスターを構成してみます。

  2. Kafka & Sparkは基本からゆっくりと学びます。

  3. AWSのS3、Glue、Athenaサービスを通じてDatalake on AWSの基本概念を学びます。



パイプラインは収集から活用まで区分して見ることができます。

各段階でどのツールをどのように使用するか、どのように連携されるかを明確に把握する必要があります。

したがって、KafkaとSparkを単純に学ぶだけでは終わりません。

最終的に実際のパイプラインを構築してみて

その過程でCI/CD、可用性テスト、問題解決と性能向上などの方法を学びます。

カリキュラム

  1. データレイクの概念


  • Lambda

  • Kappa Architecture

  • パイプライン設計

  1. Kafka基礎


  • ブローカー

  • Kafka Producer

  • Kafka Consumer

  1. モニタリング

  • UI For Apache Kafka

  • Prometheus

  • Grafana

  1. Apache Spark 基本

  • Spark Cluster

  • Spark SQL

  • Spark Streaming

  1. パフォーマンス向上のTip

  • パフォーマンス向上チェックリスト

  • Trouble Shooting

  • Spark Monitoring

  1. 可用性テスト

  • Zookeeper Cluster

  • Kafka Broker

  • Spark Cluster


このような内容を学びます。

パイプライン設計

リアルタイムデータパイプライン構成のために選択可能なツールの組み合わせ。

そして実習のために選択するKafka & Sparkのデータフローを理解し、実装してみます。

CI/CD: Github Actions + Code Deploy

CI/CDは基本中の基本。

ローカルgit → Github Repository連携後、自動デプロイができるようにActions + Code Deployの組み合わせを活用します。

Kafka Web UI

UI For Apache Kafkaを通じてKafkaを簡単に管理する方法を学びます。

Prometheus + Grafana

モニタリングパイプラインの大勢。

Prometheus + Grafanaの組み合わせを通じてKafkaをモニタリングし、さらにSpark StreamingのLAGモニタリング方法を学びます。

Kafka Source + Spark Streaming

Kafka + Spark Streamingの組み合わせを通じて実際のパイプラインを実装し、これを基にDashboardを可視化します。

AWS Athena

AWS Athenaサービスはサーバーレスクエリサービスです。このサービスを活用してSpark Streamingの処理結果を直接確認してみます。

Python Dashboard

実装したリアルタイムデータパイプラインを利用してDashboardで可視化し、パイプラインの流れを理解します。

可用性テスト

最大限実際と同じアーキテクチャ実装を通じて堅牢なアーキテクチャを実装し、可用性テストを進行します。Kafka、Spark、Yarn Clusterの可用性を理解し確認します。

Ansibleを利用したInfraセットアップ自動化

これを全部作るのにやることが多すぎるんじゃないかって?

はい、その通りです。とても多いです。

インストールするライブラリも多く、あれこれ設定しなければならないことがとても多いです。何か一つでも合わないとエラーが出ますね🤬

しかし、皆さんはリアルタイムパイプライン実装という重要な内容にのみ注目していただければと思います。

インフラ構成と各種セットアップは、事前に準備されたAnsible Scriptを通じて自動化が進行されます。

Ansible Scriptは下記のgithubアドレスで事前に確認できます。

https://github.com/hjkim-sun/datalake-ansible-playbook-season1


皆さんは上記のgithub repositoryの内容をcloneしてセットアップ過程を簡単に進めることになります。

🚨実習前にご参考ください!

✔ Kafka Client(Producer/Consumer)はPythonで作成します。


Python Kafka Libraryには複数の種類がありますが、その中で最も性能の良いConfluent Kafka Libraryを使用します。Confluent KafkaはJavaに劣らない高い性能を保証するツールとして、Pythonを通じてProducer/Consumerを作成する方法を学びます。


✔ Spark言語もPythonで記述します。


Spark Applicationを作成する際に最もパフォーマンスが良い言語はScalaです。しかし、Sparkのために別途Scala言語を学ぶには確実に負担があります。Python言語ほど大衆的ではなく、ディープラーニング/AI関連ライブラリも相対的に少ないという短所があります。そのため現場ではPythonを利用してSparkプログラムを開発するケースが多いです。特にディープラーニング/AI連携を考慮するならPython言語で作成することは優れた代替案になり得ます。

🚨AWS予想実習費用

実習はAWS Cloudで行われ、実習費用が別途発生します。


✔ 1ヶ月間約40時間使用した場合、約4万円程度のAWS費用が発生します。(為替レート1,430基準)

実習費用の大部分はEC2(コンピューティングサービス)で発生するため、実習・課題後は必ずサーバーインスタンスを停止してください。ただし、その他の費用(サーバーインスタンスに接続されているボリューム(EBS)とEIP)の場合、サーバーインスタンスを停止しても費用が発生します。したがって、完走を早くするほどAWS実習費用は減少します。


✔ サーバーをすべて停止していても、サーバーボリューム費用により月約3万円程度発生します。

したがって、同じ40時間を使用しても1ヶ月ではなく2ヶ月間使用される場合は、3万ウォンが追加されて総額7万ウォン程度のAWS料金が発生することになります。したがって、できるだけ早く完走されることをお勧めします。

以下の内容は学習しません。


  1. Java ベースの Producer/Consumer 開発

  2. Kafka Connect(Season2予定)

  3. Schema Registry(Season2予定)

  4. Kafka Streams

  5. KSQL



  1. 機械学習およびディープラーニング

  2. Open Table Format (例:iceberg) (Season2予定)

  3. Scalaベースのアプリケーション(pysparkのみで作成します)

コミュニケーション

複数のツールと連携する作業が多い講義の特性上、気になる内容や予想外のエラーが発生する場合、Q&A掲示板だけでのコミュニケーションは困難な場合があります。

(経験上、質問が登録されてから私が回答を付けて再確認されるまで3〜4日程度かかるようです)


このようなコミュニケーションの不便さを軽減し、受講された方々に最後まで高品質なサービスを提供するため、Discordチャンネルを運営したいと思います。

https://discord.gg/eTcYzMBxZm


講義に関する内容でも良いし、そうでなくても良いです。些細な話をしても良いです。

円滑なコミュニケーションのための場所ですので、お気軽にお入りください

受講前の参考事項

実習環境

  • [OS] ほとんどの実習はAWSで進行します。したがってWindow/MacOSに関係なく受講可能です。

  • [性能]高いCPU/Memoryスペックを要求しません。一般的に使用するノートパソコン/デスクトップであれば十分に受講可能です。

  • [その他] インターネット環境があればいくらでも受講可能です。そして、AWS Cloudの費用決済が可能なクレジットカードが必要です。

学習資料

  • 講義1-2で提供しています。


必須事前知識事項

  1. Pythonの基礎知識


    基本的なデータ構造とif/for/while等の基本的な文法。そして関数を作成できる程度の実力

  2. Linuxの基本コマンド


    ほとんどのInfra作業はAnsible自動化ツールを通じて進行されます。しかし、Linuxの基本コマンドは知っておく必要があります。(viエディタ、cd/mv/rm等の基本コマンド)

  3. SQL


    基本的なSQL知識(SELECT、WHERE、JOIN、GROUP BY、ORDER BYなど)を知っていれば、ついてくるのがずっと楽になります。
    (難しいSQLはありません)

推奨事前知識事項

  1. Dockerコンテナ
    コンテナを利用してモニタリングツールをセットアップします。コンテナの原理を知っていると役に立ちます。

  2. git
    CI/CDのためにgitを活用して直接コードデプロイまで進行します。使用方法はすべて丁寧に説明しますが、知っていればより良いです。

  3. Pythonクラスの理解
    実習で進行されるほとんどのPythonプログラムは、クラス構造を通じて構造化が進められます。したがって、クラスおよびオブジェクト指向に対する理解があれば、実習しやすくなります
    (知らなくても大丈夫です。全て説明します)

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Kafka & Spark を学びたい方

  • リアルタイムパイプラインの実装を学びたい方

  • データエンジニアとして 様々な知識とスキルの開発が必要な方

前提知識、
必要でしょうか?

  • Pythonの基本概念

  • SQLに関する基本知識 (Filter, GroupBy, OrderBy程度)

  • Linux の基本的なコマンドを扱えるレベル

こんにちは
です。

1,137

受講生

72

受講レビュー

207

回答

4.9

講座評価

2

講座

안녕하세요.

데이터 & AI 분야에서 일하고 있는 15년차 현직자입니다.

정보관리기술사를 취득한 이후 지금까지 얻은 지식을 많은 사람들에게 공유하고자 컨텐츠 제작하고 있습니다.

반갑습니다. :)

Contact: hjkim_sun@naver.com

カリキュラム

全体

113件 ∙ (28時間 23分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

18件

4.9

18件の受講レビュー

  • 램쥐뱅님의 프로필 이미지
    램쥐뱅

    受講レビュー 18

    平均評価 4.8

    5

    100% 受講後に作成

    기대 이상으로 잘 정리된 커리큘럼과 내용에 많은 것을 배우고 갑니다. 꼼꼼하게 강의를 만들어 주셨다는 느낌을 많이 받았습니다 후속 강의가 기다리고 있겠습니다 감사합니다

    • 김현진
      知識共有者

      램쥐뱅님 수강평 감사합니다. 저도 커리큘럼을 만들면서 어떻게 하면 기초부터 탄탄히 알려드리면서 Kafka 부터 spark 까지 연결할 수 있을지 고민이 많았어요. 덕분에 강의 기획부터 완성까지 1년이 걸렸지만 이렇게 알아봐주셔서 뿌듯합니다 ^^ 감사합니다. 지금 준비하는 후속 강의는 season2는 아니지만 알찬 내용으로 구성해서 후회하지 않게 진행해보겠습니다 😀

  • 역시자네야님의 프로필 이미지
    역시자네야

    受講レビュー 1

    平均評価 5.0

    修正済み

    5

    10% 受講後に作成

    믿고 보는 현진 선생님. 강추합니다. airflow 강의로부터 알게 되었는데 다른 강의들과는 다른 차별점이 많습니다. 개념부터 아키 설계까지, 사용 이유와 원리를 설명해주시는게 좋았어요. 실습도 편-안 그자체입니다. 답변까지 항상 친절하게 달아주십니다 아직 수강 초기이지만 완강해보겠습니다~ 날씨가 더운데, 건강 잘 챙기세요.

    • 김현진
      知識共有者

      안녕하세요 역시자네야님 airflow에 이어서 찾아주셔서 너무 감사드려요! 저는 스스로 뭔가를 배울 때 피상적으로 사용법만 익히고 원리를 파악하지 않으면 금방 까먹고 이해가 가질 않더라구요. 다른 분들도 그럴거라 생각해서 내가 이해한 원리를 전달하기 위해 강의 시간을 많이 할애하는 편입니다. 그래서 ppt도 만들어야 하고 과제도 만들고 있어서 좀 힘들지만 덕분에 알아봐주셔서 감사드려요 :) 다음 강의도 잘 준비해볼께요 💪

  • :찬영님의 프로필 이미지
    :찬영

    受講レビュー 1

    平均評価 5.0

    修正済み

    5

    100% 受講後に作成

    굉장히 완성도 높은 강의였습니다.. 감동 그 자체 보통 강의듣다 보면 똑같이 따라 했는데 왜 안돼? 이런 상황 적지 않을텐데, 그런 거 없이 스무스하게 완강했습니다. 전 강의 선택함에 있어 제일 먼저 커리큘럼을 보고, 가격과 강의시간을 비교해봅니다. 그동안 가격에 비해 너무 수박 겉핥기 식의 강의들이 많았는데, 현진님의 kafka&spark 강의를 듣는다면,, 추후 프로젝트에서도 충분히 완성도 높은 결과물 뽑을 수 있다고 장담합니다! 많이 배웠습니다 감사합니다! (시즌 2는 언제쯤 나올라나요..?)

    • 김현진
      知識共有者

      안녕하세요 찬영님! 감동스러운 수강평 감사드립니다. 완강하셔서 잘 아시겠지만 내용이 아무래도 단순 기능을 알려주기보다 인프라 구성부터 nginx 구성, docker 셋팅, 가용성테스트까지 다양한 내용을 포함하다보니 쉽게 진행이 되지 않을까 염려를 많이 했습니다. 그래서 ansible-playbook으로 최대한 표준화하고 강의 촬영을 마친 이후에도 직접 강의를 따라 해보면서 혹시 잘 되지 않는 부분이 있지 않은지 직접 확인도 했습니다. 그리고 혹시나 안되시는 분들을 위해 원활한 의사소통 대비 디스코드 방까지 준비했습니다. 결국 강의를 올리기까지 꽤 많은 시간이 걸렸지만 최대한 완성도 있는 강의를 만들고자 노력했습니다. 찬영님이 알아봐주신 것 같아 그간의 고생이 씻겨내려가는 것 같습니다 ^-^ 제가 더 감사드립니다.. 그리고 시즌 2는 시작하기 전에 생성형 AI 관련하여 강의를 먼저 하나 준비하고 있어서 조금 더 늦을 수도 있을 것 같습니다. 그래도 힘내서 준비해볼께요 !

  • 형빈님의 프로필 이미지
    형빈

    受講レビュー 1

    平均評価 5.0

    5

    30% 受講後に作成

    • seungil.park님의 프로필 이미지
      seungil.park

      受講レビュー 4

      平均評価 5.0

      5

      60% 受講後に作成

      ¥15,798

      hyunjinkimの他の講座

      知識共有者の他の講座を見てみましょう!