打包上传到集群上跑是没问题的,在本地模式跑,报客户端没有所需特权,此处客户端指的是MyEclipse,右击用管理员模式打开myclipse即可. 错误日志 : 4573 [SLOT_1027] ERROR o.a.s.d.s.Slot - Error when processing event java.nio.file.FileSystemException: C:\Users\ADMINI~1\AppData\Local\Temp\6d36a211-4aed-4485-ac2f-156088
一.内容总结 1.进程创建 1) Process:两种创建一个新进程的方法: 1.实例化Process,通过args=(,)元组形式传参,2创建类继承Process,类初始化的时候传参数 2) p.join(),阻塞主进程,执行完p进程后,释放 3) 守护进程 ,守护主程序代码执行完毕,p.daemon = True import time from multiprocessing import Process def func(): while True: print('is alive')
由之前的学习,Storm的程序构成有Topology,Spout.Blot组成. 构建工程第一步 :引入jar,把storm集群中的/usr/local/apps/apache-storm-1.0.3/lib目录jar包全部引入 程序项目架构 :
storm集成jdbc,把计算结果保存到mysql中. 首先在mysql中建表 ,表的字段与输出的tuple的schema一致: create table result( word varchar(20), total int ); 编写一个连接提供器,用于获取mysql数据库连接: 需要引入jar :/usr/local/apps/apache-storm-1.0.3/external/storm-jdbc 的 storm-jdbc-1.0.3.jar package mystorm.word
storm提交任务的过程: 1.客户端通过storm提交topology 2.nimbus主节点创建本地topology任务目录.tmp 3.nimbus监控zookeeper心跳,计算工作量. 4.nimbus向zookeeper分配任务. 5.从节点监控zk的数据,一旦有新任务分配,启动任务topology.. 6.从zk上获取分配给自己的task任务,启动对应的worker进程.
Storm的数据从Spout采集后,交给Blot组件处理,数据在Blot之间流动时,会涉及到数据流动的方向.这就是Storm的分组策略. 从WordCount的单词拆分到单词计数,会使用按字段的分组策略来拆分单词,并分配到不同的Count Blot中计算.
参考文献http://www.cnblogs.com/panfeng412/archive/2012/11/30/how-to-install-and-deploy-storm-cluster.html按照这个文献安装相应的支持软件 参考文献http://blog.csdn.net/u011362822/article/details/42463695提醒我一个关于zeromq的./configure时候的错误 参考文献http://uohzoaix.github.io/studies/2014