storm本地可以運行集群出錯遇到的問題


  1. storm本地運行和集群運行是存在區別的:
  2. 本地可以讀取本地文件系統及java項目中的文件,但是提交集群后就不能讀取了,storm只是將topology提交到了集群,所以只能在main方法中將需要讀取的配置在提交topology之前讀出來,然后再解析,而不是在spout和bolt中讀取配置文件;
  3. 同理,外部jar包也不會提交到集群,會有ClassNotFound異常,解決辦法是將依賴包全部放進集群storm目錄的extlib目錄下。
  4. 我用的打包方式:export->JAR file -> Export all output folders for checked projects -> next -> next -> generate the manifest file->seal the jar -> finsh。
  5. 提交:storm jar ****.jar 包明.主類名 然后在ip:8080/index.html頁面查看topology運行情況。
  6. 在bolt操作hdfs時可重寫父類prepare,將fileSystem定義為成員變量,在prepare中賦值,在execute中調用,速度比在execute中賦值調用快多了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM