3

タスクフックを追加して微調整した動作中の Storm トポロジがありましたが、構成が json シリアル化できないというエラーが表示されます。このエラーは、トポロジが LocalCluster に送信されるときに発生します。

私の問題は、タスクフックを適切に構成していないことだと思います。トポロジ ドライバ クラスでは、トポロジを送信する直前に次のようにします。

config.put(config.TOPOLOGY_AUTO_TASK_HOOKS, new RubeGoldbergTaskHook());

config のタイプは backtype.storm.Config で、RubeGoldbergTaskHook は BaseTaskHook を拡張します。

config.TOPOLOGY_AUTO_TASK_HOOKS プロパティを正しく設定していませんか、それとも RubeGoldbergTaskHook クラスを JSON シリアライズ可能に変更する必要がありますか?

4

2 に答える 2

2

Use in this way. It will work...

List<String> hooksList= new ArrayList<String>();
hooksList.add(RubeGoldbergTaskHook.class.getName());
conf.put(Config.TOPOLOGY_AUTO_TASK_HOOKS, hooksList);
于 2013-06-06T13:20:41.937 に答える
1

構成マップで Java インスタンスを使用したい場合は、別の方法があります。kryo (Storm で提供されているため) でバイト配列にシリアル化し、それを base 64 文字列に変換することができます。そうすれば、任意のボルトのストーム構成から任意の Java インスタンスをデシリアライズできます。それが役に立つことを願っています。

于 2013-10-15T16:34:36.330 に答える