使用Storm实现实时大数据分析!
2013-01-12 19:10:27 来源:互联网 评论:0 点击:
随着数据体积的越来越大,实时处理成为了许多机构需要面对的首要挑战。Shruthi Kumar和Siddharth Patankar在Dr.Dobb’s上结合了汽车超速监视,为我们演示了使用Storm进行实时大数据分析。CSDN在此编译
- }
- }
- catch (SQLException e)
- {
- e.printStackTrace();
- }
- }
- Date now = new Date();
- try
- {
- prepStatement.setTimestamp(dbIndex+1, new java.sql.Timestamp(now.getTime()));
- prepStatement.addBatch();
- counter.incrementAndGet();
- if (counter.get()== batchSize)
- executeBatch();
- }
- catch (SQLException e1)
- {
- e1.printStackTrace();
- }
- }
- else
- {
- long curTime = System.currentTimeMillis();
- long diffInSeconds = (curTime-startTime)/(60*1000);
- if(counter.get()<batchSize && diffInSeconds>batchTimeWindowInSeconds)
- {
- try {
- executeBatch();
- startTime = System.currentTimeMillis();
- }
- catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- }
- public void executeBatch() throws SQLException
- {
- batchExecuted=true;
- prepStatement.executeBatch();
- counter = new AtomicInteger(0);
- }
一旦Spout和Bolt准备就绪(等待被执行),topology生成器将会建立topology并准备执行。下面就来看一下执行步骤。
在本地集群上运行和测试topology
- 通过TopologyBuilder建立topology。
- 使用Storm Submitter,将topology递交给集群。以topology的名字、配置和topology的对象作为参数。
- 提交topology。
Listing Eight:建立和执行topology。
-
public class StormMain
- {
- public static void main(String[] args) throws AlreadyAliveException,
- InvalidTopologyException,
- InterruptedException
- {
- ParallelFileSpout parallelFileSpout = new ParallelFileSpout();
- ThresholdBolt thresholdBolt = new ThresholdBolt();
- DBWriterBolt dbWriterBolt = new DBWriterBolt();
- TopologyBuilder builder = new TopologyBuilder();
- builder.setSpout("spout", parallelFileSpout, 1);
- builder.setBolt("thresholdBolt", thresholdBolt,1).shuffleGrouping("spout");
- builder.setBolt("dbWriterBolt",dbWriterBolt,1).shuffleGrouping("thresholdBolt");
- if(this.argsMain!=null && this.argsMain.length > 0)
- {
- conf.setNumWorkers(1);
- StormSubmitter.submitTopology(
- this.argsMain[0], conf, builder.createTopology());
- }
- else
- {
- Config conf = new Config();
- conf.setDebug(true);
- conf.setMaxTaskParallelism(3);
- LocalCluster cluster = new LocalCluster();
- cluster.submitTopology(
- "Threshold_Test", conf, builder.createTopology());
- }
- }
- }
topology被建立后将被提交到本地集群。一旦topology被提交,除非被取缔或者集群关闭,它将一直保持运行不需要做任何的修改。这也是Storm的另一大特色之一。
这个简单的例子体现了当你掌握了topology、spout和bolt的概念,将可以轻松的使用Storm进行实时处理。如果你既想处理大数据又不想遍历Hadoop的话,不难发现使用Storm将是个很好的选择。
原文链接:Easy, Real-Time Big Data Analysis Using Storm (编译/仲浩 王旭东/审校)
上一篇:网站统计中的数据收集原理及实现(二)
下一篇:大数据定义和十大应用案例
分享到:
收藏
评论排行
- ·Windows(Win7)下用Xming...(92)
- ·使用jmx client监控activemq(20)
- ·Hive查询OOM分析(14)
- ·复杂网络架构导致的诡异...(8)
- ·使用 OpenStack 实现云...(7)
- ·影响Java EE性能的十大问题(6)
- ·云计算平台管理的三大利...(6)
- ·Mysql数据库复制延时分析(5)
- ·OpenStack Nova开发与测...(4)
- ·LTPP一键安装包1.2 发布(4)
- ·Linux下系统或服务排障的...(4)
- ·PHP发布5.4.4 和 5.3.1...(4)
- ·RSYSLOG搭建集中日志管理服务(4)
- ·转换程序源码的编码格式[...(3)
- ·Linux 的木马程式 Wirenet 出现(3)
- ·Nginx 发布1.2.1稳定版...(3)
- ·zend framework文件读取漏洞分析(3)
- ·Percona Playback 0.3 development release(3)
- ·运维业务与CMDB集成关系一例(3)
- ·应该知道的Linux技巧(3)