単純なケースと組み合わせた(04)ストームとカフカ

  嵐スパウトが言及した上記の嵐基本的な概念は、中断することなく、データの安定した流れを取られるべきです。だから、明らかに、そのデータソースとしてメッセージキューイングシステム、分散メモリ・システムまたはメモリデータベースは良い選択です。そのため、嵐のリリースパッケージには、カフカからのサポートが嵐のアプリケーションのデータを読んで、統合されたjarファイルが含まれています。プロセスの使用について以下のレコード。

  エッセイのBenpian ストームケースプログラミングの改善に基づきます

  1、追加のjarパッケージ

  Javaプロジェクトで嵐 - カフカ-0.9.2-incubating.jar追加しました、jarファイルは、Apache-嵐-0.9.2-インキュベート/外部/ストーム・カフカから入手することができます

  図2に示すように、アセンブリのクラスを変更します

1つの パッケージのデモ。
2  
3  インポートjava.util.UUID。
4  
5  インポートbacktype.storm.Config。
6  インポートbacktype.storm.StormSubmitter。
7  インポートbacktype.storm.generated.StormTopology。
8  インポートbacktype.storm.spout.SchemeAsMultiScheme。
9  インポートbacktype.storm.topology.TopologyBuilder。
10  インポートstorm.kafka.BrokerHosts。
11  インポートstorm.kafka.KafkaSpout。
12  インポートstorm.kafka.SpoutConfig。
13  インポートstorm.kafka.StringScheme。
14  インポートstorm.kafka.ZkHosts;
 15  
16  // アセンブリの種々の構成要素、嵐の、クラスタにタスクを提出する
。17  パブリック クラス{SubmitClientが
 18である 
19。     パブリック 静的 ボイドメイン(文字列[]引数)をスロー例外{
 20は         // トポロジ構造を得ますデバイス
21は、          TopologyBuilderビルダー= 新しい新TopologyBuilder();
 22がある         // 私たちのスパウト指定
23がある          builder.setSpout( "データソース-スパウト" 、createKafkaSpout());
 24          // 指定されたボルトアセンブリ、また、データソースを指定する必要があります
25          builder.setBoltを( "boltA"、新しい新しい MyBoltA())shuffleGrouping。( "データソース-スパウト" ;)
 26は、          builder.setBolt( "boltB"、新新)shuffleGrouping( "Bolta" MyBoltB());
 27          //は、特定のタスク生成
28          StormTopology phoneTopo = ビルダーを.createTopology();
 29          // パラメータの数指定されたタスク
30          コンフィグ設定= 新しい新設定();
 31である         // 分布がタスク実行する6嵐ワーカークラスタ所望
32          config.setNumWorkers(6 ;)
 33である         // タスクを提出
34である          StormSubmitterを.submitTopology( "mystormdemo" 設定、phoneTopo);
 35     }
 36  
37      // Kakfaは、データメッセージシステムから読み出さサポート
38は     プライベート 静的KafkaSpout createKafkaSpout(){
 39          BrokerHostsのbrokerHosts = 新しい新 ZkHosts( "192.168.7.151:2181,192.168.7.152:2181,192.168.7.153:2181" )。
 40          SpoutConfig spoutConfig = 新しい新しい SpoutConfig(brokerHosts、 "mydemo1"、 "/ mydemo1" 、UUID.randomUUID()のtoString());
 41である          spoutConfig.scheme = 新しい新しい SchemeAsMultiScheme(新しい新しいStringScheme());
 42である         // KafkaSpoutリターン
43 IS          返す 新しい新しいKafkaSpout(spoutConfig)。
44      }
 45 }

  23行目は口カフカ、および新しいメソッドを指定されているcreateKafkaSpout

  3、ファイルのパッケージ化、送信サーバー

  stormDemo.jarにこれらの4つのファイルは、サーバの嵐にアップロードし、一時的には/ usr / local /テスト/嵐に保存されています

  4、サーバは、余分なjarファイルのパッケージを追加します

  嵐、位置kafka_2.9.2-0.8.1.1へのサービスに関連したカフカのjarパケットを追加/ apacheのストーム0.9.2-インキュベート/ libのに追加LIBS

[ルート@ localhostの嵐-カフカ]#cpは嵐・カフカ-0.9.2-incubating.jar /usr/local/apache-storm-0.9.2-incubating/lib/ 
[ルート@ localhostのLIBS]#cpはkafka_2.9.2- 0.8.1.1.jar /usr/local/apache-storm-0.9.2-incubating/lib/ [ルート@ localhostのLIBS]#cpはScalaの -library-2.9.2.jar /usr/local/apache-storm-0.9。 2-インキュベーション/ LIB / #CPメトリック[ローカルホストLIBS @ルート] -core-2.2.0.jar /usr/local/apache-storm-0.9.2-incubating/lib/ #のcpてきぱき[ローカルホストLIBS @ルート] - java-1.0.5.jar /usr/local/apache-storm-0.9.2-incubating/lib/ [ルート@ localhostのLIBS]#cpはzkclient -0.3.jar /usr/local/apache-storm-0.9.2-インキュベーション/ libに/ [ルート@ localhostのLIBS]#cpはlog4jの -1.2.15.jar /usr/local/apache-storm-0.9.2-incubating/lib/ [ルート@ localhostのLIBS]#CP SLF4J -api-1.7.2.jar /usr/local/apache-storm-0.9.2-incubating/lib/ [ルート@ localhostのLIBS]#CP jopt -simple-3.2.jar / USR /ローカル/ apacheのストーム0.9.2-インキュベート/ libに/

  5、関連するプログラムを開始

  まず飼育係、カフカ、嵐のサービスを開始した後、以前のエッセイを参照して、それぞれのプロデューサークライアントカフカを開始

  飼育係のクラスタのインストール

  カフカ単一のマルチブローカ(疑似分散)の基本構成

  スタンドアローンインストール構成の嵐

  Javaプログラムは、典型的なカフカを接続します

  その後、タスクを提出するには、次のコマンドを実行します。

[ルート@ localhostのApacheのストーム0.9.2-インキュベート]#ビン/嵐ジャー/usr/local/test/storm/stormDemo.jar demo.SubmitClient

 

おすすめ

転載: www.cnblogs.com/javasl/p/12315060.html