Create Producer/Consumer Application for Kafka

ここではSetup Apache Kafka - Confluent ver. (JPver.)で作成したKafka clusterに対しPub/Subを行うProducer/Consumer applicationを作成する。簡単のためまずはLocal上でAppを開発し、その後Kafka Cluster構築時に作成したAMIをベースにEC2を起動し、EC2上で対象のAppを稼働させる。具体的には以下の内容を実施する。

  1. Initial setup
  2. Running Producer app
  3. Running Consumer app

Setup Apache Kafka - Confluent ver.

ここではKafka clusterやKafka clientなどのsetupを行う。具体的には以下のような構成で行う。

Kafka自体には以下のようなDistributionがあり、今回はConfluent dist.を先に確認する (この後Community ver.のclusterも立ち上げる)。

Join operations in Spark

以下の内容については基本的にSpark: The Definitive Guideの内容をベースとしており、一部必要な情報については他のリソースから付け足している。Sparkについて理解を深めるにはまず本書を読んでおくと良い。今回はChapter8 JoinをベースとしてDataFrame Joinおよび追加でRDD Joinについて挙動を確認していく。大まかな流れとしては以下。

  1. DataFrame Join Types - Inner, Outer, Left Outer, Right Outer, Left Semi, Left Anti, Natural, Cross (Cartesian)
  2. Notes in Join operation
  3. How performing DataFrame Join
  4. RDD Join
  5. Misc

Joinとは2つのData-set (LeftRight)における、1つ以上のKeyを比較し、それぞれのデータを合わせることである。よく知られるJoin expressionとしてはEqui Joinがある。これはLeft-sideおよびRight-sideにおけるKeyを比較し、等しいものを合わせ、異なるKeyを含むRowは捨てるといったものである。SparkではEqui Join以外のJoinもサポートしており、それらについては以下に記載する。