日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

twitter storm学习 - 安装部署问题汇总

發布時間:2025/6/15 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 twitter storm学习 - 安装部署问题汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

已經碰到的或者將來碰到的關于安裝部署方面的問題以及解決方法,先挖個坑

1.提交的topology在admin界面上看emitted始終都是0,查看日志發現有如下錯誤:

worker [ERROR] Error on initialization of server mk-worker
org.zeromq.ZMQException: 無效的參數(0x16)
? ? ? ? at org.zeromq.ZMQ$Socket.setLongSockopt(Native Method)
? ? ? ? at org.zeromq.ZMQ$Socket.setLinger(ZMQ.java:601)
? ? ? ? at zilch.mq$set_linger.invoke(mq.clj:57)
? ? ? ? at backtype.storm.messaging.zmq.ZMQContext.connect(zmq.clj:62)
? ? ? ? at backtype.storm.daemon.worker$mk_refresh_connections$this__4293$iter__4300__4304$fn__4305.invoke(worker.clj:244)
? ? ? ? at clojure.lang.LazySeq.sval(LazySeq.java:42)
? ? ? ? at clojure.lang.LazySeq.seq(LazySeq.java:60)
? ? ? ? at clojure.lang.RT.seq(RT.java:473)
? ? ? ? at clojure.core$seq.invoke(core.clj:133)
? ? ? ? at clojure.core$dorun.invoke(core.clj:2725)
? ? ? ? at clojure.core$doall.invoke(core.clj:2741)
? ? ? ? at backtype.storm.daemon.worker$mk_refresh_connections$this__4293.invoke(worker.clj:238)
? ? ? ? at...

我的zeromq版本是3.X ,查資料后看到有說法可能是zeromq的版本問題,按照建議下載2.7.1版本,并重新安裝zeromq以及jzmq,重啟nimbus和supervisor節點,重新commit測試的topology,執行成功,日志也沒有錯誤了。

2. 安裝并編譯zeromq出錯:

make報錯:cannot link with -luuid, install uuid-dev.

原來是缺少庫,嘗試yum install uuid-dev,找不到這個庫

bing了一下,原來uuid-dev在不同的平臺上名字不同,我用的centos上名字為libuuid-devel

執行yum install libuuid-devel ?...?

下載并安裝成功!

3. 在eclipse中編譯storm-starter示例代碼出錯:

?import backtype.storm.task.IMetricsContext??找不到.

自己判斷是引用的storm.jar版本問題,把我引用的0.8.1版本的jar包換成0.7的,結果錯誤更多,一查發現搞反了,應該用更新的jar包,于是下載0.8.2版本的編譯,錯誤消除!?

4. drpc示例代碼調用錯誤

像服務器上部署了storm-starter的BasicDRPCTopology,

使用客戶端代碼嘗試連接drpc server發送參數并獲取結果

DRPCClient client= new DRPCClient("192.168.72.203",3772);

String result = client.execute("basicdprc","goodbye");
System.out.println(result);

192.168.72.203是我在服務端配置的drpc服務器的ip

代碼執行到execute以后停住,很長時間都無法執行,到服務端查看drpc.log日志,有如下錯誤:

TNonblockingServer [WARN] Got an IOException in internalRead!
java.io.IOException: Connection reset by peer?
? ? ? ? at sun.nio.ch.FileDispatcherImpl.read0(Native Method)?
? ? ? ? at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
? ? ? ? at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:218)
? ? ? ? at sun.nio.ch.IOUtil.read(IOUtil.java:191)
? ? ? ? at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:359)
? ? ? ? at org.apache.thrift7.transport.TNonblockingSocket.read(TNonblockingSocket.java:141)
? ? ? ? at org.apache.thrift7.server.TNonblockingServer$FrameBuffer.internalRead(TNonblockingServer.java:669)
? ? ? ? at org.apache.thrift7.server.TNonblockingServer$FrameBuffer.read(TNonblockingServer.java:458)
? ? ? ? at org.apache.thrift7.server.TNonblockingServer$SelectThread.handleRead(TNonblockingServer.java:359)
? ? ? ? at org.apache.thrift7.server.TNonblockingServer$SelectThread.select(TNonblockingServer.java:304)
? ? ? ? at org.apache.thrift7.server.TNonblockingServer$SelectThread.run(TNonblockingServer.java:243)

折騰了一天多,最終解決了這個詭異的問題,錯誤原因出奇的簡單:

BasicDRPCTopology代碼中聲明new LinearDRPCTopologyBuilder("exclamation");

指定了topology的name為exclamation

而我在手動使用./storm jar...參數提交的時候指定的名字是basicdprc,提交topology的時候是正常的,在storm

ui管理界面里看到此topology的名字也是basicdprc,但是DRPCClient調用execute的時候卻必須使用代碼中指定的名稱... ?改成??client.execute("exclamation","goodbye");就可以順利調用了。

神那,怎么會這樣!!!既然允許參數指定提交的topology名稱,那drpcclient也應該允許使用此名稱啊!!這種限制簡直要讓人撞墻!!?

5. storm.yaml配置文件格式錯誤

yaml配置文件的格式要求比較變態:

配置鍵值對 的時候,冒號后面需要有一個空格,不能直接跟值,否則解析的時候會報錯:

例如 ?storm.zookeeper.port: 2183 ? 2183和冒號間就需要有一空格

另外行的開頭前面也需要有空格...

?

?

轉載于:https://my.oschina.net/u/221218/blog/145288

總結

以上是生活随笔為你收集整理的twitter storm学习 - 安装部署问题汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。