Skip to content

Instantly share code, notes, and snippets.

@kimutansk
kimutansk / DecisionTestTopology.java
Created November 28, 2012 23:13
Storm Bolt Branch Decision sample
package stormmon.sample;
import java.util.Map;
import backtype.storm.Config;
import backtype.storm.LocalCluster;
import backtype.storm.task.OutputCollector;
import backtype.storm.task.TopologyContext;
import backtype.storm.testing.TestWordSpout;
import backtype.storm.topology.OutputFieldsDeclarer;
FROM centos
RUN yum install -y passwd
RUN yum install -y openssh
RUN yum install -y openssh-server
RUN yum install -y openssh-clients
RUN yum install -y sudo
RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
RUN sed -ri 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config
@kimutansk
kimutansk / MqttPublisher.scala
Last active October 27, 2015 08:04
AWS IoTにJVM系言語(Scala)から接続するには(Publish) ref: http://qiita.com/kimutansk/items/2a4a7ce628fcd054342a
import org.eclipse.paho.client.mqttv3.{MqttMessage, MqttConnectOptions, MqttClient}
/** MQTT Publish Test Class */
object MqttPublisher {
def main(args: Array[String]) {
// Connect Target
val brokerURI:String = "ssl://******.iot.ap-northeast-1.amazonaws.com:8883"
// SocketFactoryGenerate
val socketFactory = SocketFactoryGenerator.generateFromFilePath("/etc/cert/rootCA.pem", "/etc/cert/cert.pem", "/etc/cert/private.pem", "password")
@kimutansk
kimutansk / MqttSubscriber.scala
Created October 29, 2015 02:34
AWS IoTにJVM系言語(Scala)から接続するには(Subscribe) ref: http://qiita.com/kimutansk/items/37991e59f3cc9c4fd3fa
import org.eclipse.paho.client.mqttv3.{MqttClient, MqttConnectOptions}
/** MQTT Subscribe Test Class */
object MqttSubscriber {
def main(args: Array[String]) {
// Connect Target
val brokerURI:String = "ssl://******.iot.ap-northeast-1.amazonaws.com:8883"
// SocketFactoryGenerate
val socketFactory = SocketFactoryGenerator.generateFromFilePath("/etc/cert/rootCA.pem", "/etc/cert/cert.pem", "/etc/cert/private.pem")
@kimutansk
kimutansk / chapter7.markdown
Last active January 24, 2016 01:47
Distributed Algorithms for Message-Passing Systems 7章

7章 非同期分散システムにおける論理時刻

  • 本章では分散処理におけるイベント中の時刻、ローカル状態、グローバル状態の関連について記述する。
  • 一貫性とは分散実行環境における時刻同期システムのやり取りからから生じた因果関係によって生成される時刻のことを指す。
    • 分散実行において興味深い見方として、前章で説明された通り、因果関係とはイベントの因果関係の優先順位であるということがある(->ev
    • ローカル状態の因果関係の優先順位を(->σ
    • グローバル状態の格子内の到達可能性の関係(->Σ
  • 上記の全ケースにおいて、時刻の"起源"はそれによって引き起こされる"作用"よりも発生するという関係がある。
  • time-freeな非同期分散システムを考えるにあたり、ここでいう時刻は「物理的な時刻」にはなりえない。
  • (プロセスはグローバルな物理クロックへアクセス可能であったとしてもクロック精度は一貫性確認を可能とするために十分に小さくなければならない。)
@kimutansk
kimutansk / Split.scala
Created January 28, 2016 12:36
Gearpumpの最小アプリケーションの構成は? ref: http://qiita.com/kimutansk/items/ec304a0b81dce8677d7d
package io.gearpump.streaming.examples.wordcount
import java.util.concurrent.TimeUnit
import io.gearpump.streaming.task.{StartTime, Task, TaskContext}
import io.gearpump.Message
import io.gearpump.cluster.UserConfig
class Split(taskContext : TaskContext, conf: UserConfig) extends Task(taskContext, conf) {
import taskContext.{output, self}
$ wget http://ftp.tsukuba.wide.ad.jp/software/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
$ tar xvzf apache-maven-3.3.9-bin.tar.gz
$ mv apache-maven-3.3.9 /opt/
$ ln -s /opt/apache-maven-3.3.9 /opt/apache-maven
$ echo "export MAVEN_HOME=/opt/apache-maven" >> ~/.bashrc
$ echo -e 'export PATH=${PATH}:${MAVEN_HOME}/bin' >> ~/.bashrc
$ source ~/.bashrc
/opt/pig/bin/pig -x tez -f test-lzo-count.pig
2016-04-24 20:13:44,815 [main] INFO org.apache.pig.tools.pigstats.tez.TezPigScriptStats - Script Statistics:
HadoopVersion: 2.6.0-cdh5.7.0
PigVersion: 0.15.0
TezVersion: 0.7.0
UserId: build
FileName: test-lzo-count.pig
StartedAt: 2016-04-24 20:13:26
FinishedAt: 2016-04-24 20:13:44
@kimutansk
kimutansk / ApacheGeode_abst.md
Created June 8, 2016 09:39
Apache Geodeとは?(メモ

Apache Geodeとは?

  • スケールアウト可能なインメモリ分散データグリッド
    • 一貫性調整可能
    • パーティション分割
    • 分散Query、分散Function実行可能
    • トリガや通知機能、Continuous Query保持
    • データに対するMapReduce分散実行可能で、Sliding Window機構も保持
    • 性能のチューニングのため階層構造のデータ保持が可能
    • データセンター間同期可能
  • 性能が高い要因は?
@kimutansk
kimutansk / StreamPipeline_Watermark_abst.md
Created June 9, 2016 08:16
ストリーム処理パイプラインのWatermark

ストリーム処理の"Watermark"についての話

  • Watermarkとは?
    • 「どこまで処理したか?」を示す区切り
    • ストリームパイプライン上の各オペレータが保持
  • どのような利点があるか?
    • 「ここまでは処理した」ということが明確になる
    • 結果、障害発生時にどこから再実行すればいいかも明確になる
    • 上記の性質を基に、多様なスライディングウィンドウを定義利用可能
  • どう扱うか?
  • 各オペレータごとにInputWatermarkとOutputWatermarkを保持