2017-04-17 2 views
1

J'ai eu une erreur avec le pacemaker sur le serveur de Storm lors de l'utilisation de storm 1.1.0 pour exécuter ma topologie -> java.lang .IllegalArgumentException: Aucun champ correspondant trouvé: waitUntilReady pour la classe org.apache.storm.pacemaker.PacemakerClientstorm1.1.0: Aucun champ correspondant trouvé: waitUntilReady pour la classe org.apache.storm.pacemaker.PacemakerClient

Il semble que lorsque vous utilisez la réflexion, l'invocateur ne trouve pas la méthode waitUntilReady? Mais je trouve cette méthode dans le code source de PacemakerClient: private void waitUntilReady() throws PacemakerConnectionException {} Quand j'utilise storm 1.0.1 avec le même code topologique et la même config, la communication de worker à pacemaker fonctionnait bien, sans cette exception

J'ai emballé la topologie en utilisant jdk1.8 et le storm1.1.0 a été démarré en utilisant aussi jdk1.8!

J'ai la configuration du stimulateur avec Strom 1.1.0 comme ceci:

 

    pacemaker.servers: ["exp104.didatick.com"] 
    pacemaker.port: 6699 
    pacemaker.max.threads: 10 
    pacemaker.childopts: "-Xmx512m" 
    pacemaker.auth.method: "NONE" 

    storm.cluster.state.store: "org.apache.storm.pacemaker.pacemaker_state_factory" 

Quelqu'un peut-il me aider? Très grâce

La pleine Stacktrace:

 
2017-04-16 17:08:50.896 o.a.s.d.worker main [INFO] Worker 855fbf1e-d23d-400f-b181-1a0934720bbf for storm TRIDENT-TEST-4-1492333594 on 47d8b370-85c2-41d1-b4e6-e63fbf832bff:6700 has finished loading 
2017-04-16 17:08:50.998 o.a.s.p.pacemaker-state-factory executor-heartbeat-timer [ERROR] Failed to set_worker_hb. Will make [10] more attempts. 
java.lang.IllegalArgumentException: No matching field found: waitUntilReady for class org.apache.storm.pacemaker.PacemakerClient 
     at clojure.lang.Reflector.getInstanceField(Reflector.java:271) ~[clojure-1.7.0.jar:?] 
     at clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:315) ~[clojure-1.7.0.jar:?] 
     at org.apache.storm.pacemaker.pacemaker_state_factory$get_pacemaker_write_client.invoke(pacemaker_state_factory.clj:110) ~[storm-core-1.1.0.jar:1.1.0] 
     at org.apache.storm.pacemaker.pacemaker_state_factory$_mkState$reify__12511$fn__12512.invoke(pacemaker_state_factory.clj:187) ~[storm-core-1.1.0.jar:1.1.0] 
     at org.apache.storm.pacemaker.pacemaker_state_factory$pacemaker_retry_on_exception$fn__12506.invoke(pacemaker_state_factory.clj:139) ~[storm-core-1.1.0.jar:1.1.0] 
     at org.apache.storm.pacemaker.pacemaker_state_factory$pacemaker_retry_on_exception.invoke(pacemaker_state_factory.clj:139) [storm-core-1.1.0.jar:1.1.0] 
     at org.apache.storm.pacemaker.pacemaker_state_factory$_mkState$reify__12511.set_worker_hb(pacemaker_state_factory.clj:183) [storm-core-1.1.0.jar:1.1.0] 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_92] 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_92] 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_92] 
     at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_92] 
     at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93) [clojure-1.7.0.jar:?] 
     at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28) [clojure-1.7.0.jar:?] 
     at org.apache.storm.cluster$mk_storm_cluster_state$reify__4395.worker_heartbeat_BANG_(cluster.clj:468) [storm-core-1.1.0.jar:1.1.0] 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_92] 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_92] 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_92] 
     at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_92] 
     at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93) [clojure-1.7.0.jar:?] 
     at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28) [clojure-1.7.0.jar:?] 
     at org.apache.storm.daemon.worker$do_executor_heartbeats.doInvoke(worker.clj:76) [storm-core-1.1.0.jar:1.1.0] 
     at clojure.lang.RestFn.invoke(RestFn.java:439) [clojure-1.7.0.jar:?] 
     at org.apache.storm.daemon.worker$fn__5542$exec_fn__1364__auto__$reify__5544$fn__5547.invoke(worker.clj:624) [storm-core-1.1.0.jar:1.1.0] 
     at org.apache.storm.timer$schedule_recurring$this__1737.invoke(timer.clj:105) [storm-core-1.1.0.jar:1.1.0] 
     at org.apache.storm.timer$mk_timer$fn__1720$fn__1721.invoke(timer.clj:50) [storm-core-1.1.0.jar:1.1.0] 
     at org.apache.storm.timer$mk_timer$fn__1720.invoke(timer.clj:42) [storm-core-1.1.0.jar:1.1.0] 
     at clojure.lang.AFn.run(AFn.java:22) [clojure-1.7.0.jar:?] 
     at java.lang.Thread.run(Thread.java:745) [?:1.8.0_92] 
+0

quelqu'un a rencontré ce problème? – darkmatter

+0

Face au même problème, mais je n'ai pas encore de solution. – contradictioned

+0

Merci, votre réponse m'a beaucoup aidé .. Au moins, je sais que ce n'est pas le problème de mon fichier de configuration .. – darkmatter

Répondre

0

Je l'ai vu le même problème.

La fonctionnalité Pacemaker semble être cassée en 1.1.0: STORM-2500. En regardant le code source, je crois qu'il a bien fonctionné jusqu'à 1.0.3, mais je ne l'ai pas testé. Je suppose que vous devrez contacter un responsable du projet afin de voir s'il a l'intention d'y remédier ou non.

Il est certainement possible qu'ils prévoient de résoudre ce problème uniquement dans la version 2.0.0 lorsqu'une partie du code Pacemaker est réécrite dans Java de toute façon.

+0

Merci beaucoup! J'ai envoyé un mail au groupe de listes d'utilisateurs, mais je n'ai pas encore de réponse. – darkmatter