Skip to content

Instantly share code, notes, and snippets.

@repeatedly
Last active December 15, 2015 14:29
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save repeatedly/5274873 to your computer and use it in GitHub Desktop.
Save repeatedly/5274873 to your computer and use it in GitHub Desktop.
"Stormをはじめよう"のerrata

Stormをはじめようのerrata

インデントのずれがかなり多くて,本当にずれてるのか自分のviewer(MacのKitabu)でずれてるのか正直あまり自信がない

2章

スパウト

this.collector.emit(new Values(str),str);

-> this.collector.emit(new Values(str));

ボルト

backtype、storm、topology、IRichBol

-> backtype.storm.topology.IRichBol

例2-2のインデントがおかしい

     */
public void execute(Tuple input) {

メインクラス

Thread.sleep(1000);

-> Thread.sleep(2000);

3章

コラム

InputDeclarerごとに2つ以上のソースを設定できる

-> 多分InputDeclarerいきなり出てくる

ランダムに選ばれたボルトすべてが同数受け取るよう

-> ランダムに選んでるのに同数?

カスタムグループ化

back type

-> backtype

ソースのインデントがおかしい

        if(values.size()>0){
            String str = values.get(0).toString();
            if(str.isEmpty())
                boltIds.add(0);
            else
                boltIds.add(str.charAt(0) % numTasks);
            }
            return boltIds;

ダイレクトなグループ化

ソースのインデントがおかしい

public void execute(Tuple input) {
...
for(String word : words){

LocalClusterからStormSubmitterへ

(Stormクライアントのインストール方法については付録Aを参照)とコラムの「Storm Clientのインストールについては、付録Aを参照すること。」がかぶっている

4章

メッセージの信頼性について

マップ上でclearを呼び出しても問題ない

-> nextTupleの中でclearを呼び出しても問題ない

ダイレクト接続

"ツイッターからの解析に失敗した"と"twitter apiとの通信に失敗した["

-> twitterの表記が揺れている

ここではnextTupleメソッドをロックして、ackやfailメソッドを実行できないようにしている

-> どこでロックしているのか分からない.ソースには"LinkedBlockingQueue tweets = new LinkedBlockingQueue();"があるが定義しているだけで使ってない

Stormには、どのようなコンポーネント(スパウト、ボルト)からTopologyContextにアクセスできるという、興味深い機能がある

-> "どのようなコンポーネント(スパウト、ボルト)もTopologyContextにアクセスできるという"という感じ?

キュー待ちのメッセージ

多分これソースはgithubに上がってないので実際のところはよくわからないけど,while (true)の1ループ毎にRedisクライアントをnewしているのはなんでなのか,よく分からない.

5章

ボルトの信頼性

ソースのインデントがおかしい

    public void prepare(Map conf, TopologyContext context, OutputCollector collector) {

    this.collector = collector;
}

6章

GetCategoryBolt

インデントや"item ==null"などちょっとソースコードに統一感がない

ProductCategoriesCounterBolt

多分下のコメントが間違っている.後インデントがおかしい

    // アイテム・カテゴリー -> カウントする
    HashMap<String, Integer> counter = new HashMap<String, Integer>();

    // アイテム・カテゴリー -> カウントする
    HashMap<String, Integer> pendingToSave = new HashMap<String, Integer>();

AbstractAnalyticsTestクラスにnavigateというメソッドを実装する

異なるテストがWebサイトを閲覧するユーザーの行動をエミュレートするために行う

-> 異なるテストをWebサイトを閲覧するユーザーの行動をエミュレートするために行う

7章

スパウトやボルトの作業を行うためのプロセスを行う

-> スパウトやボルトの作業を行うための外部プロセスを起動する

ACK

idがあるところが、処理するtupleのIDになる。

-> idが、処理するtupleのIDになる。

8章

エミッタ

tupleをストリームの送信するのは

-> tupleをストリームに送信するのは

ボルト

まず気づいてほしい重要なポイントとして、これがBaseBatchBoltだとわかること、がある。ということは、受信したtupleに対してexecuteメソッドが実行されるが、新規tupleは切り出されない

-> BaseBatchBoltはここで多分初めて出てくる.

finishBatchのインデントがおかしい

コミッターボルト

「コーディネーターボルト」(coordinator bolts)は

-> 「コミッターボルト」(committer bolts)

後インデントがおかしい

パーティション分けされたトランザクショナルなスパウト

// カーサーを動かす

-> カーソル?cursorをそのままの読みで訳した感じがする

あいまいなトランザクショナルトポロジー

別のtupleを受け取っているので、8ではなく、さらに4をカウントする。

-> この4ってどっから出てきたの…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment