강의

멘토링

커뮤니티

BEST
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,231

受講生

78

受講レビュー

217

回答

4.9

講座評価

2

講座

안녕하세요.

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

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

반갑습니다. :)

Contact: hjkim_sun@naver.com

カリキュラム

全体

113件 ∙ (28時間 23分)

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

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

受講レビュー

全体

19件

4.9

19件の受講レビュー

  • jusungpark님의 프로필 이미지
    jusungpark

    受講レビュー 19

    平均評価 4.7

    5

    100% 受講後に作成

    期待以上によく整理されたカリキュラムと内容で多くのことを学んで帰ります。 丁寧に講義を作ってくださったという感じをとても受けました。 後続講義を待っています。 ありがとうございます。

    • hyunjinkim
      知識共有者

      람쥐뱅さん 受講レビューありがとうございます。私もカリキュラムを作りながら、どうすれば基礎からしっかりとお伝えしながらKafkaからsparkまで繋げることができるか悩みが多かったです。 おかげで講義企画から完成まで1年かかりましたが、このように分かっていただけて誇らしいです ^^ ありがとうございます。今準備している後続講義はseason2ではありませんが、充実した内容で構成して後悔しないよう進めてみます 😀

  • ㅈ님의 프로필 이미지

    受講レビュー 1

    平均評価 5.0

    修正済み

    5

    10% 受講後に作成

    信頼できる現進先生。強くお勧めします。 airflow講義から知ることになりましたが、他の講義とは異なる差別化ポイントが多いです。概念からアーキテクチャ設計まで、使用理由と原理を説明してくださるのが良かったです。実習も楽々そのものです。回答まで常に親切につけてくださいます。まだ受講初期ですが完走してみます〜 天気が暑いですが、健康に気をつけてください。

    • hyunjinkim
      知識共有者

      こんにちは、やっぱりですね님 airflowに続いて見つけてくださって本当にありがとうございます! 私は自分で何かを学ぶとき、表面的に使い方だけ覚えて原理を把握しないとすぐに忘れてしまい、理解できないんですよね。 他の方々もそうだと思うので、私が理解した原理を伝えるために 講義時間をたくさん割く方です。 そのためpptも作らなければならないし課題も作っているので少し大変ですが、おかげで認めてくださってありがとうございます😊 次の講義もしっかり準備してみますね💪

  • pcy78054921님의 프로필 이미지
    pcy78054921

    受講レビュー 1

    平均評価 5.0

    修正済み

    5

    100% 受講後に作成

    非常に完成度の高い講義でした。感動そのものです 普通、講義を聞いていると、同じようにやったのになぜできないんだ?という状況が少なくないと思いますが、そういったことなくスムーズに完講しました。 私は講義を選択するにあたり、まず最初にカリキュラムを見て、価格と講義時間を比較します。 これまで価格の割に、あまりにも表面的な講義が多かったのですが、 현진님의 kafka&spark 講義を聞けば、今後のプロジェクトでも十分に完成度の高い成果物を出すことができると断言します! 大変勉強になりました、ありがとうございます! (シーズン2はいつ頃出るのでしょうか…?)

    • hyunjinkim
      知識共有者

      こんにちは、チャンヨンさん! 感動的な受講レビュー、ありがとうございます。 完講されてよくご存知だと思いますが、内容がどうしても単純な機能を教えるというより、インフラ構成からnginx構成、dockerセッティング、可用性テストまで多様な内容を含むため、簡単には進まないのではないかと、大変心配しておりました。 そこで ansible-playbookで最大限標準化し 講義撮影を終えた後も、実際に講義を真似して試しながら、もしうまくいかない部分がないか直接確認もいたしました。 そして、もしできなかった方のために、円滑なコミュニケーションに備えDiscordの部屋まで準備いたしました。 結局、講義を公開するまでにかなり時間がかかりましたが、最大限完成度の高い講義を作ろうと努力いたしました。 チャンヨンさんが分かってくださったようで、これまでの苦労が報われた思いです ^-^ こちらこそ感謝しております。。 そして、シーズン2は始める前に生成系AIに関連して先に講義を一つ準備しているため、もう少し遅れる可能性がありそうです。それでも頑張って準備してみます!

  • junhahwang9642님의 프로필 이미지
    junhahwang9642

    受講レビュー 1

    平均評価 5.0

    5

    60% 受講後に作成

    • hbin0529님의 프로필 이미지
      hbin0529

      受講レビュー 1

      平均評価 5.0

      5

      30% 受講後に作成

      ¥16,400

      hyunjinkimの他の講座

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