6 posts tagged with "apache"

View All Tags

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も立ち上げる)。

Data Sources API in Sprark

以下の内容については基本的にSpark: The Definitive Guideの内容をベースとしており、一部必要な情報については他のリソースから付け足している。Sparkについて理解を深めるにはまず本書を読んでおくと良い。今回はChapter9 Data Sourcesをベースとし、内容をまとめているあ。大まかな流れとしては以下。

  1. Data Sources API
    1. Read API
    2. Write API
  2. For CSV
  3. For JSON
  4. For Parquet
  5. For ORC
  6. For SQLDatabases - Reading & Writing, and QueryPushdown
  7. For Text Files
  8. Advanced Topics for Read/Write - File format & Compression, Reading & Writeing data in parallel, Writing complex types and Managing file size

Tips for Troubleshooting in Spark

以下の内容については基本的にSpark: The Definitive Guideの内容をベースとしており、一部必要な情報については他のリソースから付け足している。Sparkについて理解を深めるにはまず本書を読んでおくと良い。今回はChapter18 Monitoring & DebuggingおよびChapter19 Performance Tuningをベースとし、内容をまとめているあ。大まかな流れとしては以下。

  1. Monitoring
    1. What components to monitor
    2. What to monitor
    3. Spark Logs
    4. Spark UI - REST API and History Server
  2. Debugging - How to handle problems at first
  3. Performance Tuning

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もサポートしており、それらについては以下に記載する。