- storm本地运行和集群运行是存在区别的:
- 本地可以读取本地文件系统及java项目中的文件,但是提交集群后就不能读取了,storm只是将topology提交到了集群,所以只能在main方法中将需要读取的配置在提交topology之前读出来,然后再解析,而不是在spout和bolt中读取配置文件;
- 同理,外部jar包也不会提交到集群,会有ClassNotFound异常,解决办法是将依赖包全部放进集群storm目录的extlib目录下。
- 我用的打包方式:export->JAR file -> Export all output folders for checked projects -> next -> next -> generate the manifest file->seal the jar -> finsh。
- 提交:storm jar ****.jar 包明.主类名 然后在ip:8080/index.html页面查看topology运行情况。
- 在bolt操作hdfs时可重写父类prepare,将fileSystem定义为成员变量,在prepare中赋值,在execute中调用,速度比在execute中赋值调用快多了。
posted @
2017-06-29 10:10
wangguoning
阅读(
1566)
评论()
编辑
收藏
举报