2013-01-01から1年間の記事一覧
こんにちは。以下論文を読んでみようの続きで、今回は第3章です。「Discretized Streams: A Fault-Tolerant Model for Scalable Stream Processing」 (http://www.eecs.berkeley.edu/Pubs/TechRpts/2012/EECS-2012-259.pdf)内容としては、「Discretized S…
こんにちは。以下論文を読んでみようの続きで、今回は第2章です。「Discretized Streams: A Fault-Tolerant Model for Scalable Stream Processing」 (http://www.eecs.berkeley.edu/Pubs/TechRpts/2012/EECS-2012-259.pdf)内容としては、「 Goals and Ba…
こんにちは。ここ何回かでApache Spark自体の機構は大体わかりました。 そのため、今度はApache Sparkを基にしたストリーム処理基盤であるApache Spark Streamingについても確認してみます。読んだ論文は以下です。 「Discretized Streams: A Fault-Tolerant…
こんにちは。Resilient Distributed Datasetsに関する論文 「Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing」 (http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf) について、概念と動作概…
以下論文を読んでみようの続きで、今回は第5章です。「Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing」 (http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf)内容としては、「Implementati…
こんにちは。以下論文を読んでみようの続きで、今回は第4章です。「Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing」 (http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf)内容としては、「…
こんにちは。以下論文を読んでみようの続きで、今回は第章です。「Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing」 (http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf)内容としては、「Sp…
こんにちは。以下論文を読んでみようの続きで、今回は第2章です。「Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing」 (http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf)内容としては、「…
こんにちは。最近色々手を出し過ぎな気もしますが、気になったものがあったのでちとまとめてみます。 それは、Spring XDです。 http://www.springsource.org/spring-xdぱっとトップページを見てみるとやたらと使えそうに見えたので、 実際にチュートリアルを…
こんにちは。前回、前々回でApache Spark、Spark Streamingの概要がわかりました。ですが、内部で使用している共有分散メモリ機構であるResilient Distributed Datasets(RDDs)が 鍵となる割に概要しか資料からはわからなかったため、論文を読むことでもう一…
こんにちは。Sparkについて調べてみよう企画第2段(?)です。 1回目はまずSparkとは何かの概要資料を確認してみました。 その先はRDDの構造を説明している論文と、後Spark Streamingというストリーム処理基盤の資料がありました。とりあえず、そんなわけ…
こんにちは。Kafkaを試している最中で微妙ですが、最近使えるのかなぁ、と情報を集めているのが「Apache Spark」です。MapReduceと同じく分散並行処理を行う基盤なのですが、MapReduceよりも数十倍速いとかの情報があります。 ・・・んな阿呆な、とも思った…
こんにちは。最近Stormで複数のバージョンを確認する等1台のマシンでは不便で仕方がない状態になってきたため、 「Vagrant-Vsphere」を使ってこのあたりの環境をお手軽に管理しようと思い立ち、 家でサーバ用途として使っていたマシンにVMWare ESXi 5.1upda…
こんにちは。情報が確定では無かったり、内部の話になってすぐどうという話ではない情報をちょくちょくMLから拾ってきていますが、 このまま死蔵するのも何なので、記事として残しておきます。 ・・・さすがに、最近は新規の情報は減ってきたのでペースは以…
こんにちは。最近外を移動する際に日陰を移動できるルートを確認しながら移動する癖がつきつつある今日この頃です。 別に日光に当たったからと言って黄色い汁になって溶けてしまったりはしないんですが、まぁ一応w さて、前回Storm0.8.2系のビルド手順を確…
前回はまって1回では終わりませんでしたが、続けます。前回データ型を定義して動くことが確認できたので、 今回は実際の中身を実装してみる形になりますね。まず、実際にCryptoFilterの中身を実装したコードが以下のようになりました。 src/reader/crypto.c…
こんにちは。ここ数日暑過ぎて半分溶けている感覚がする今日この頃です。溶ける・・・とは全く関係ないのですが、 最近Stormのコア側に一部修正を入れて試してみたいことがあったので、ビルドをした時の手順をまとめてみます。 対象バージョンはまずは現状の…
徐々に抽象度・・・というか単体では動かしにくいコードが揃ってきましたが、 とりあえず続けます。前回はプロトコルを使って既存の型に新たなメソッドを追加する方法を見てきました。 次は、Clojureで新たな型を作りたくなったらどうするか?を実現する「デ…
こんにちは。これまで以下のような記事で実際にKafkaとは何か、や 実際にビルドしてみていまいちうまくいかないとかを繰り返してきましたが、 本家サイト側でついに最新版である0.8.0(β)のバイナリリリースが公開されたということもあり、 実際に環境を構…
1.インタフェース Javaの場合前回の投稿のようなケースをどうするかというとインタフェースを切って、 実装クラスを追加することで拡張する方式を取ります。インタフェースは以下のような利点があります。 実体クラスは複数のインタフェースを実装することが…
こんにちは。今回からまた話題が変わります。「抽象化」というJavaでもよくつかわれる技法がClojure独自の抽象化方式で どう表されるのか・・という内容です。 元々、Clojureはproxyとgenclassを用いて「Javaの抽象化をうまく利用できる」という方針でした。…
こんにちは。前回に続いて、Apache Kafkaのネタです。今期の最新バージョンからレプリケーション機能が追加されたとのため、 レプリケーション機能の設計を実際に確認してみます。 https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Replication レ…
こんにちは。最近Clojureのお勉強投稿ばかりでしたが、Kafkaについて肝心なことを見落としていたので記述しておきます。Kafkaは現在0.8.0が最新バージョンで開発が進められています。 かつ、0.8.0で大きく信頼性が向上しているようなので、実際何が新しくな…
こんにちは。いよいよ大詰め。 今まではコマンドライン上でしか動作しなかったゲームをGUI上で表示してみます。■snake.clj:Graphicの塗りつぶし処理 ; Fill-Points (defn fill-point [graphic pt color] (let [[x y width heignt] (point-to-screen-rect pt…
こんにちは。では、SnakeGameの状態更新部分を進めていきます。 今回、状態が更新されるタイミングは以下の3つです。 ゲームを開始する。 ターンごとにヘビが位置を更新する。リンゴが食べられていたらヘビの長さを伸ばし、リンゴを再配置する。 ヘビの向き…
こんにちは。今まで確認してきた状態管理のAPIを使い、「SnakeGame」を作ってみます。 と言いつつ、そもそもSnakeGameを起動するところからしてはまったのでそこから(汗まず、前提として「https://github.com/stuarthalloway/programming-clojure」からダウ…
こんにちは。STMの機構を用いた状態更新が完了し、次はvarの確認に入ります。 defやdefnの呼び出しは、メタデータ:dynamicが与えられると動的なvarになるとのことです。・・・わかりませんね(汗 なので、やはりこちらも一度書いて試してみます。 ルート束縛…
こんにちは。前回に続いて状態更新ものです。 これまでまとめていたrefとatomは「同期的な更新」を扱っていました。 ここで言う同期的な更新とは、「関数呼び出しが完了した時点で状態の更新も完了している」ということを指します。ですが、Clojureでは非同…
こんにちは。では続きに入ります。前回はrefを用いたSTMについて書いていましたが、Clojureには別の方式として「アトム」があります。違いとしては・・下記です。 複数のrefの更新はトランザクションを使って協調させなければならなかった。 アトムは単一の…
こんにちは。前回まででとりあえず関数型プログラミングの流儀の入口のようなものが完了し、 次は並行性、並列性、ロック・・と、今度は関数型を使うことによる具体的な利点を確認する内容です。 1.Clojureが用意する参照型 まず、初めにClojureが用意してい…