夢とガラクタの集積場

落ちこぼれ三流エンジニアである管理人の夢想=『夢』と、潰えた夢=『ガラクタ』の集積場です。

Kafka

Apache Kafka入門を読んでみました

こんにちは。この間購入した「Apache Kafka入門」を読み終わったので、 どんな本かという概要と注意点を書いてみます。Apache Kafka入門作者: 伊橋正義,原田勝憲出版社/メーカー: リクルートテクノロジーズ発売日: 2014/04/01メディア: Kindle版この商品を含…

Kafka-0.8.1.1での修正点

こんにちは。RPMパッケージを作ったと思ったら元がバージョン更新されていたので、 Kafka-0.8.1.1での修正点をざっとまとめてみました。参照: https://archive.apache.org/dist/kafka/0.8.1.1/RELEASE_NOTES.html Kafka-0.8.1.1での修正点 不具合対応 [KAFK…

KafkaのRPMパッケージを作成してみました

こんにちは。前回からかなり間が空いてしまいましたが、Kafkaのインストールパッケージ(RPM)を作成しました。 特に認証等は不要な場所においてありますので、下記のコマンド1発でダウンロードも可能です。 必要としている方がどれだけいるかは微妙ですが…

Kafkaインストーラを作成してみる(下調べ

こんにちは。今までKafkaBrokerを手動でインストールしてきましたが、 さすがにそれを何度も繰り返すのは面倒になってきました。そのため、Kafkaをrpmでインストールできるようにしたいと思います。色々探してみたところ、KafkaのRPMを生成している方々はい…

SSHを通してKafkaBrokerに対するデータ送受信を行う方法(解決編

こんにちは。前回(前の投稿に非ず)SSHポートフォワーディングを行った結果Producerからの投入に失敗してしまいました(汗 今回はその解決エントリになります。 1.投入失敗した原因 メーリングリストで質問しながらログを確認したところ、 Kafka起動後に下…

SSHを通してKafkaBrokerに対するデータ送受信を行う方法(失敗

こんにちは。Kafkaのようなメッセージ収集サーバを使用していると、 遠隔地からもデータの送受信を行いたい、というケースが出てきます。ですが、Kafkaって通信は基本的に生のデータをネットワークに投入するので、 それはそれで気になるところがありますよ…

KafkaクラスタでConsumerを接続した際の動作

こんにちは。Producerからメッセージを投入時の動作を確認した前回に引き続き、動作を確認していきます。 今回はConsumerがKafkaクラスタに接続した時の動作について、です。 1-1.Consumerのコマンド確認 前回と同じく、Consumerのコマンドを確認します。重…

KafkaクラスタでProducerからメッセージを投入した時の動作

こんにちは。前回に引き続き、動作を確認していきます。 今回はProducerからメッセージを投入した時の動作について、です。確認する観点としては下記あたりが考えられますので、一つ一つ確認していきます。 レプリケーションあり、なしでも変わってきそうで…

KafkaクラスタにおけるTopic生成時動作の確認

こんにちは。前回に引き続き、Kafkaの動作を確認してみよう、の回です。 今回はトピックを作成した際の動作確認を行います。 1-1.レプリケーション数1のTopicの作成 まずはTopicを作成します。 作成する際にはパーティション数、レプリカ数等が指定可能です…

複数台マシンを用いたKafkaクラスタの構築方法

こんにちは。しばらく前にKakfa0.8.0正式版がリリースされているのですが、 0.8.0から追加されたレプリケーションの機能をきちんと試していなかったなぁ・・・ ということで、Kafkaクラスタを構築するところから再度確認しなおしてみます。まず、構築したい…

Amazon KinesisとApache Kafkaの類似点/相違点まとめ

こんにちは。Amazon Kinesisについて調べたり実装してみたりしたため、 モデルがよく似たApache Kafkaとの類似点や相違点が気になってきました。というわけで、実際比べてみた結果どうだったのかをまとめてみます。 1.2つのプロダクトの類似点 Amazon Kinesi…

Genn.aiでTopologyを定義してみる

こんにちは。前回は使い方がわからなかったGenn.aiですが、ドキュメントも公開されて使い方がわかったため、 とりあえず再度試してみることにします。http://pages.genn.ai/まず、gungnirのCLIを起動する前のヘルプを確認してみます。 > ./gungnir -h Unreco…

リアルタイム解析プラットフォームGenn.aiのクライアントを動かしてみる

こんにちは。昨晩面白そうなページを見つけたので早速試してみました。リクルートテクノロジー製のリアルタイムプラットフォームで、StormとKafkaを用いて構築されたGenn.ai(源内)です。■紹介ページ http://genn.ai/ ■登録ページ(動作ホスト兼?) http:/…

Apache Kafkaを動かしてみる

こんにちは。これまで以下のような記事で実際にKafkaとは何か、や 実際にビルドしてみていまいちうまくいかないとかを繰り返してきましたが、 本家サイト側でついに最新版である0.8.0(β)のバイナリリリースが公開されたということもあり、 実際に環境を構…

Apache Kafkaのレプリケーション

こんにちは。前回に続いて、Apache Kafkaのネタです。今期の最新バージョンからレプリケーション機能が追加されたとのため、 レプリケーション機能の設計を実際に確認してみます。 https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Replication レ…

Apache Kafka 0.8.0の新機能/変更点

こんにちは。最近Clojureのお勉強投稿ばかりでしたが、Kafkaについて肝心なことを見落としていたので記述しておきます。Kafkaは現在0.8.0が最新バージョンで開発が進められています。 かつ、0.8.0で大きく信頼性が向上しているようなので、実際何が新しくな…

Apache Kafkaの最新版をビルドしてみる

こんにちは。Clojureでの環境問題も解決したので一度Kafkaの方も進めておきます。 概要がわかったので、実際に動かしてみようとKafkaのサイトに向かったところ・・・最新版の0.8.0系のアーカイブが存在しないという状態でした。0.8.0のページ。ダウンロード…

Apache Kafka 概要(Design)和訳まとめ

こんにちは。ようやく1ページ全てまとめ終わったので、 最後にまとめ投稿として投稿しておきます。尚、ページは下記です。 http://kafka.apache.org/07/design.html========== 1.何故Kafkaは作られたのか? 元々はLinkedInのActivity StreamとDat…

Apache Kafka概要確認(その12 分散方式

こんにちは。今回は実際分散協調をどうやっているかという話。 ある意味分散システムとしてのコアです。 19.分散方式 以後、BrokerとConsumerの協調に用いるZookeeperのディレクトリ構成とアルゴリズムについて記述する。 Zookeeper上のディレクトリ構成判例…

Apache Kafka概要確認(その11 メッセージを保存するログファイル

こんにちは。今日は実際にメッセージを保存しているログファイルの形式と形態について述べた章になります。 これまで述べられたメッセージがどういう形式でディスク上に保存されているかですね。 18.ログ "my_topic"というトピック名称を持つ2パーティション…

Apache Kafka概要確認(その10 メッセージ

こんにちは。APIの確認もすみ、更に先に進みます。 15.ネットワーク層 ネットワーク層の構成は単純なNIOサーバであるため詳細な説明は省略する。 sendfileの実装はMessageSet#writeToメソッドを用いて行われる。 FileChannel#transferToメソッドにおいてFile…

Apache Kafka概要確認(その9 API

今回からは実際のAPIを確認していく形になります。 13.Producer側のAPI Producer側のAPIは以下の2つの低レベルAPIをラップしている。 kafka.producer.SyncProducer kafka.producer.async.AsyncProducer class Producer { /* Sends the data, partitioned by…

Apache Kafka概要確認(その8 Producerプロセス

こんにちは。ついに設計の大方針の内容が終わり、 個々のプロセスの設計の内容に入っていくようです。 11.Producer Producerプロセスの自動ロードバランシング Kafkaは、ProducerのTCP接続のバランスをとるための専用ロードバランサを使用するために クライ…

Apache Kafka概要確認(その7 PushモデルかPullモデルか

こんにちは。では続きに。 10.メッセージ消費側駆動の状態管理方式 プッシュ対プル これまでのBroker、Consumer側の話に関連する質問として、 Broker側がデータをpushするのか、Consumer側がメッセージをpullするのか、がある。Kafkaはデータの流れとして下…

Apache Kafka概要確認(その5 メッセージの状態管理

こんにちは。とりあえず続きです。 9.エンドツーエンドのバッチ圧縮 多くの場合、ボトルネックはCPUではなくネットワークになる。 特にデータセンター間でメッセージを転送する必要があるネットワークトポロジを組んでいる場合は。もちろん、ユーザはKafkaの…

Apache Kafka概要確認(その6 メッセージ消費状態管理

こんにちは。とりあえず続きです。 10.メッセージ消費側駆動の状態管理方式 メッセージ配信セマンティクス これまでからわかるように、メッセージ配信の保証方式として下記の3パターンが考えられる。 1回以下:前述した第1のケース。メッセージは提供後す…

Apache Kafkaってそもそも何か確認してみます(その4

1年位間があいてしまっていますが、ベースデザインの章の続きを読んでみました。 あと、個々の言葉を訳しても時間がかかるので、要点のみ抽出してとりあえず最後まで読み切ります。尚、ページ自体は下記の場所に移動していました。 http://kafka.apache.org…

Apache Kafkaってそもそも何か確認してみます(その3

こんにちは。 とりあえず前回の続きを。 6.メッセージの永続化/保持 ファイルシステムを恐れるな! Kafkaはメッセージの保存と保持にあたってファイルシステムに密接に依存している。 ディスクは遅いという一般見解があるため、 こう書いてしまうと性能を確…

Apache Kafkaってそもそも何か確認してみます(その2

こんにちは。とりあえず前回の続きで、Apache Kafkaについて確認してみます。 ・・・なんか長引きそうなので、全部ページを確認し終わったら特徴も改めてまとめますね。 5.基本設計方針 Apache Kafkaの持つ設計方針は下記の通り。 1.Kafkaは永続化する必要が…

Apache Kafkaってそもそも何か確認してみます(その1

こんばんは。 最近Stormを調べていると、 データ取得の手段としてApache Kafkaとの連携が記述されています。そのため、とりあえず何ができるか、の概要を調べてみました。 最初はFlumeを使おうかとも思ったんですが、 下記のようなモデルの祖語もあり、とり…