当前位置:   article > 正文

(TopkOnJstorm)第一周工作报告(2014-07-07~2014-07-13)_jstorm blot并发

jstorm blot并发

本周的工作主要有三个部分:

一:完成项目的准备工作

    1. 在CSDN CODE平台上建立新项目JSTopk:《https://code.csdn.net/sinat_16596967/jstopk

    2. 建立工作报告博客:《http://blog.csdn.net/sinat_16596967

二:学习使用Window Azure

    主要通过《window Azure中文博客》进行学习。

    1. 虚拟机部分

    在《Virtual Machines》文档中,有详细的linux虚拟机教程:包含如何创建、连接、使用虚拟机。

    根据《如何在Windows Azure虚拟机上部署OpenLogic CentOS镜像》创建自己的linux集群时候,但发现已经无法申请Azure公有云试用服务,正在与商老师沟通中。而根据需求文档中 “在Azure公有云的虚拟机环境实现JStorm最小topology的集群部署” 的要求,我建议2-4台就已经足够了,配置现在还无法评估(涉及到使用HDFS还是Azrue提供的存储服务)。

    2. REST API

    REST API 允许用户按编程方式通过存储模拟器访问 Azure 或开发环境中的 Blob、队列、表和文件服务。它可以从 Azure 中运行的服务访问存储服务,也可以直接通过 Internet 从可以发送 HTTP/HTTPS 请求和接收 HTTP/HTTPS 响应的任何应用程序进行访问。
    3. 
Azure主要提供三种存储服务:

    a) Blob Storage:云端的文件系统,其中container相当于本地文件系统的文件夹;Blob相当于文件。创建方式与编程例子可以看博文《使用Blob Storage》

    b) Queue Storage:提供一个云端的队列,相当于分布式消息队列,可以解耦系统的消息传递。服务器端通过Queue Storage可以把用户递交的信息存储在队列中,后台再运行一个程序从队列中取得数据进行信息的处理。创建方式与编程例子可以看博文《使用Queue Storage》

    c) Table Storage:提供一个云端的表格结构。类似于数据库,但是与一般的关系型数据库不同,Table Storage并不要求一个表中的所有数据都遵循同一模式。举例来说,在一个表中,可以存储一条有三个字段的记录和一条只有两个字段的记录。这也是我们为什么说可以把Table Storage想象为XML文件的原因。创建方式与编程例子可以看博文《使用Table Storage》

    4. 本项目预计使用的存储服务:

    a) 原始数据的注入:使用Queue Storage,消息队列具有先入先出的特点,还可以解耦用户程序和服务程序的消息传递,可以提高系统的容错性。

    b) top-k结果的读出:这个涉及是服务程序推送给用户还是由用户拉取的方式。我建议使用用户拉去的方式,使用Table Storage,存储最新的结果,由用户自己来拉取,可以减轻服务程序的负担,增加可靠性,减少无用过程。

    c) 将实时数据持久化到一种分布式文件系统:使用HDFS或者Table Storage。而我并没有理解“实时数据”是否指所有的数据,需要与商老师沟通。

    5. 项目将使用java来实现REST API,而Azure也支持,详细可以参考《Windows Azure Storage 客户端Java版概览》

三:JStorm

    JStorm的下载和部署:在实验室已搭建一个四个节点的JStorm集群,也实现了一些topology。因此,具体的部署流程将在Azure虚拟机使用后一起介绍,可以参考《如何安装JStorm》

    根据Top-K算法的需求,可以设计一个这样的topology:spout->blot1->bolt2

    1. spout是使用REST API从Queue Storage获取数据,并发度为M。

    2. bolt1是过滤,并发度为N。缓存K个最大值(以最小堆的形式存储),如果新数据大于最小值,就改变堆,并blot2发送tuple。如果worker失败,则重新积攒K个最大值,可设计为无状态处理过程。这样便可以分布式处理数据,提高性能。

    3. bolt2是汇聚,并发度为1。缓存K个最大值(以最小堆的形式存储),如果新数据超过最小值,就改变堆,并使用REST推送到Table Storage和持久化到分布式文件系统。如果worker失败,则重启后需要从Table Storage中读取原有的top-K数据建立原始堆,保证结果的正确性。

下周计划

    1. 申请Azure公有云资源,包括虚拟机资源和存储服务资源。

    2. 在虚拟机上部署JStorm集群。

    3. 完成topology的初步版本,达到运行状态。

    4. 完成REST API使用Queue Storage和Table Storage的例子。


感谢CSDN开源夏令营和商之狄老师的指导与支持!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/284438
推荐阅读
相关标签
  

闽ICP备14008679号