当前位置:   article > 正文

(TopkOnJstorm)第六、七周工作报告:2014-08-11~2014-08-24

(TopkOnJstorm)第六、七周工作报告:2014-08-11~2014-08-24

本周工作分四个部分

一:完成Azure的虚拟机上的Jstorm的搭建

    按照第二周周报的方法,在Azure的两台虚拟机(jstopk1和jstopk2)中搭建jstorm集群:部署如下:

    jstopk1:nimbus+supervisor(两个worker)

    jstopk2:zookeeper+supervisor(两个worker)

    经测试,环境可用。

二:优化topk算法并完成项目jstorm-topk的改造(对Rest API进行支持)

    1. 优化topk算法

        a) 函数原型如下: 

            private boolean isScoreUseful(String id, int score)

            private void deleteOneForMinScore()

            private void add(String id, int score)

            private void deleteFromScoreToIds(String id, int oldScore)

            private void changeMinScore()

        b) 通过topk算法可以实现:

            原topk存在相同id,比较score,留下较大的score;

            原topk不存在相同的id,当topk.size()<k,直接添加;

            原topk不存在相同的id,当topk.size()>=k,比较score与minScore,留下较大的;

            当不同id的score相同时,较早的id排名靠前;

    2. 项目jstorm-topk对Rest API进行支持

        a) 构建GetScoreSpout从名为jstopkacceptqueue的队列中获取用户数据(id,score);

        b) 构建PutScoreBolt,一是在初始化时从名为jstopkresulttable的表中获取原始topk;二是在获得更大的score时更改表中的topk;

    3. 项目jstorm-topk的topology设计为:

        TopologyBuilder builder = new TopologyBuilder();

        builder.setSpout("accept", new GetScoreSpout(), 2);

        builder.setBolt("compute", new ComputeBolt(), 2).shuffleGrouping("accept");

        builder.setBolt("store", new PutScoreBolt(), 1).shuffleGrouping("compute");

三:改进jstopk-client-restapi的改进,提供jar给用户使用

    简化jstopk-client-restapi项目,打包jar

        a) 提供ScoreSenderClient类,其中void send(String id,int score)为发送数据接口;

        b) 提供GetTopkClient类,其中String[] getTopk()为获取topk接口;

四:jstopk服务的使用

    1. 构建项目,导入相关包,如图:

     

    2. 创建main函数:

         a) 发送数据

         ScoreSenderClient ssc = new ScoreSenderClient();

         ssc.init();

         ssc.send("evan", 111111);

         b) 获取topk

         GetTopkClient gtk = new GetTopkClient();

         gtk.init();

         String[] tops = gtk.getTopk();

         for (String s : tops) {

               System.out.println(s);

         }

下周工作

    提交项目给老师检查,并跟老师沟通项目下一步的计划

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


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

闽ICP备14008679号