jon*_*jon 9 java hadoop mapreduce distributed-computing apache-storm
我们正在评估为部署而追求Storm,但我有点担心.我们目前运行Hadoop MapReduce,并希望将我们的一些处理从MapReduce转换为Storm进程.请注意,这是一些,但不是全部.我们仍然会有一些MapReduce功能.
我找到了Mesos,它可能(可能)允许我们在同一硬件上维护Storm和Hadoop部署,但还有一些其他问题:
我设想理想的情况是能够任意地"借用"Storm和Hadoop之间的插槽.恩.两者都会根据需要使用相同的资源.不幸的是,这是一个固定的部署,并不像EC2那样"基于云".
我想避免在我们的Storm环境中遇到瓶颈.一个理想的情况是根据需求"旋转"(或反向)螺栓的更多实例.这可能/现实吗?
"重新启动"拓扑似乎是一个相当昂贵的操作,我不确定是否真的是一个选项.理想情况下,我希望它尽可能无缝.
我们正确接近这个问题吗?从本质上讲,Storm拓扑将"提供"MapReduce批处理作业.我们的一些处理可以以流方式处理,并且作为Storm拓扑会更好,而其中一些需要批处理.
任何一般性反馈,即使它没有解决我的具体问题,也会受到欢迎.在这一点上,这更像是一个探索阶段,我可能完全以错误的方式接近这一点.
一些想法,以及我迄今为止进行类似实验的经验(在Sprint期间通过Spike工作):
Run Code Online (Sandbox Code Playgroud)builder.setBolt(4, new MyBolt(), 12) .shuffleGrouping(1) .shuffleGrouping(2) .fieldsGrouping(3, new Fields("id1", "id2"));
最后一个参数("12")是该螺栓的平行度.如果它是拓扑中的瓶颈而您需要扩展以满足需求,那么您可以增加这一点.12的并行性意味着它将导致12个线程在风暴群集中并行执行螺栓.
builder.setBolt(new MyBolt(),3).setNumTasks(64).shuffleGrouping("someSpout");
这里,执行程序(线程)的数量MyBolt()为3,您可以动态更改线程数而不会影响拓扑. storm rebalance用于此:
$ storm rebalance someTopology -n 6 -e mySpout=4 -e myBolt=6
Run Code Online (Sandbox Code Playgroud)
这会将"someTopology"拓扑的工作者数量更改为6,将mySpout的执行者/线程数量更改为4,将myBolt的执行者/线程数量更改为6.
| 归档时间: |
|
| 查看次数: |
2559 次 |
| 最近记录: |