(TopkOnJstorm)第三、四周工作报告:2014-07-21~2014-08-03

两周工作分五个部分

一:申请微软Azure资源

    通过和导师数次邮件沟通,申请下了世纪互联运营的 Windows Azure beta 试用。

账号为[email protected]

二:研究Azure虚拟机和存储服务的使用

    虚拟机的使用在下一周周报中描述。

    存储服务的使用:

    如第一周的周报所述,Azure提供三种存储服务Bolb、Queue、Table。我申请了一个服务cloud0920

其中:TableEndpoint = "http://cloud0920.table.core.chinacloudapi.cn/";

QueueEndpoint = "http://cloud0920.queue.core.chinacloudapi.cn/";

BlobEndpoint = "https://cloud0920.blob.core.chinacloudapi.cn/";

三:设计用户的输入输出

用户的输入输出设计原则之一为互联网任意地点的主机均可用。这是我使用Azure Queue来获取用户的输入,使用Azure Table来存放topk的输出。项目已经上传,名字为jstopk-client-restapi,地址为https://code.csdn.net/sinat_16596967/jstopk/tree/master。

项目分为两部分:

1、使用Queue来获取用户输入。主类MainPushServer启动5个PushClient向名字为jstopkqueue的队列push数据,数据为(UserName,Score);DataPusher则为真正push数据的类。

2、使用Table来存放算法输出(即topk结果)。主类MainPullServer启动5个PullClient从名字为jstopkresult的表中pull partitionKey为top50,rowKey为result的值,数据为一个String,由\n分割解析;DataPuller为真正pull数据的类,结果。

3、Utility为存放storageConnectionString,queueName,tableName等配置常量的地方。其中storageConnectionString是Azure 连接字符串,是一个非常重要的连接参数,有三种连接方式:

a) 在本地测试服务或应用程序时连接到 Azure 存储仿真程序。

b) 使用存储服务的默认终结点连接到 Azure 中的存储帐户。

c) 使用存储服务的显式终结点连接到 Azure 中的存储帐户。

我使用第三种方式,因为默认的是连接到*.windows.net,我申请的是*.chinacloudapi.cn。模式如下

BlobEndpoint=myBlobEndpoint;QueueEndpoint=myQueueEndpoint;TableEndpoint=myTableEndpoint;AccountName=myAccountName;AccountKey=myAccountKey

4、test包为测试类,测试push的数据是否正确以及pull是否正常。

四:Queue 使用

Queue比较简单,只需要确定连接字符串和队列名就可以定位队列。如图所示:

start()函数:

// Setup the cloud storage account.

account = CloudStorageAccount.parse(Utility.storageConnectionString);

// Create a table service client

tableClient = account.createCloudTableClient();

// Retrieve a reference to a table

table = new CloudTable(Utility.tableName, tableClient);

table.createIfNotExists();

push()函数:

CloudQueueMessage message = new CloudQueueMessage(UserName + "\n" + score);

queue.addMessage(message);

get()函数:

CloudQueueMessage message = queue.retrieveMessage();

经过测试,能够正常使用,并符合项目需求。

五:Table 使用

    Table的使用会稍微复杂一些,首先需要使用json-core的包,并创建数据类ResultEntity extends TableServiceEntity,这样的数据才能够插入到表中。而且对于Entity的操作首先需要通过连接字符串和表名定位表,再通过partitionKey和rowKey定位单元格。如图所示:

start()函数:

// Setup the cloud storage account.

account = CloudStorageAccount.parse(Utility.storageConnectionString)

// Create a table service client

tableClient = account.createCloudTableClient();

// Retrieve a reference to a table

table = new CloudTable(Utility.tableName, tableClient);

table.createIfNotExists();

pull()函数:

TableOperation retrieveTop50 = TableOperation.retrieve("top50","result", ResultEntity.class);

ResultEntity result = table.execute(retrieveTop50).getResultAsType();

set()函数:

ResultEntity re = new ResultEntity("top50", "result");

re.setResult("a\n200\nb\n199");

TableOperation insert = TableOperation.insertOrReplace(re);

table.execute(insert);

经过测试,能够正常使用,并符合项目需求。

下周计划

1. 完成Azure虚拟机的构建以及Jstorm的搭建。

2. 完成项目jstorm-topk的改造(对Rest API进行支持)。

3. 将jstorm-topk与jstopk-client-restapi结合提供完整的topk服务。

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

(TopkOnJstorm)第三、四周工作报告:2014-07-21~2014-08-03

时间: 2024-10-22 05:52:01

(TopkOnJstorm)第三、四周工作报告:2014-07-21~2014-08-03的相关文章

(TopkOnJstorm)第二周工作报告:2014-07-14~2014-07~20

本周的工作分两个部分 一:搭建JStorm环境(三个机器组成的集群) 由于微软AZure的虚拟机还没有申请下来,我先在实验室的环境下搭建了 1. 搭建Zookeeper集群 a) 下载Zookeeper的3.4.5版本,解压至/xxx/xxx/zookeeper-3.4.5 b) 配置环境变量(在~/.bashrc) export ZOOKEEPER_HOME=/xxx/xxx/zookeeper-3.4.5 export PATH=$PATH:$HOME/bin:$ZOOKEEPER_HOME

第十二届全国人民代表大会《政府工作报告》全文

第十二届全国人民代表大会<政府工作报告>全文 第十二届全国人民代表大会<政府工作报告>全文 温jia宝 2013年3月5日 温jia宝: 现在,我代表国务院,向大会报告过去五年的政府工作,并对今年工作提出建议,请各位代表审议,并请全国政协委员提出意见.[09:05] 过去五年工作回顾[09:06] 第十一届全国人民代表大会第一次会议以来的五年,是我国发展进程中极不平凡的五年.我们有效应对国际金融危机的严重冲击,保持经济平稳较快发展,国内生产总值从26.6万亿元增加到51.9万亿元,

《计算机问题求解》总结——2014年CCF计算机课程改革导教班(2014.07.11)

一:引言 "心想事成",这是自己获得导教班学习机会的最佳概括.2013年年末学习李晓明老师的<人群与网络>课程:随后网络认识烟台大学贺利坚老师,了解到2013年导教班的学习内容:注册成为CCF会员,进而提交申请书并被录取为学员. 二:一周学习总结 一周学习时间很短,收获良多.除了课堂教学,优良的培训环境(北京怀柔区红螺园饭店,离市区坐公交车需要2个小时),让学员与老师能够专注交流,早中晚的餐桌交流成为了保留节目.有一半以上的时间都尽可能与陈老师.李老师等同桌.罗斯福总统有&

2017全国两会政府工作报告(全文)

2017全国两会政府工作报告(全文) "两会"并不是一个特定的机构名称,而是对自1959年以来历年召开的"中华人民共和国全国人民代表大会"和"中国人民政治协商会议"的统称.由于两场会议会期基本重合,而且对于国家运作的重要程度都非常的高,故简称做"两会".下面一起来阅读2017年政府两会工作报告! 2017年两会政府工作报告 --2017年3月5日在第十二届全国人民代表大会第五次会议上 国务院总理 李克强 各位代表,现在,我代表

2015年10月18日---工作报告

工作汇报 在刚刚的一个星期,我做了如下三项工作,现在对图像编码的学习正处于知识积累期,对视频编码有了一些了解.但是还有很多基础知识需要去看. 第一,   正在阅读您给我们的视频编码书籍.看到20多页,但在粗略的浏览后面的章节,我发现视频编码的数学要求很高,很多公式看不懂,估计需要多学习这方面的知识. 第二,   在阅读一篇<高效视频编码>的论文,由中科院大学的沈燕飞博士写的.准备细看,以备做报告时使用. 第三,   除了做以上的三件事之外,还在自学MatLab和泛函分析等基础知识.同时在学习选

Buffalo WZR-HP-AG300H 刷 OpenWRT 固件(2014.07.03版本)

Version.2014.07.03 网上介绍刷机的教程,TFTP客户端主要是Linux.Windows 7.Windows XP.手边没有合适的Linux电脑,Windows 7不带TFTP客户端,懒得折腾,就找了一台Windows XP电脑. 所以,下面介绍以如下环境为基础: l   Buffalo WZR-HP-AG300H 无线路由器: l   一台傻瓜交换机(宽带路由器也行,只用到LAN口),这个的作用是使电脑的网口保持UP状态: l   OpenWRT固件,文件名:“openwrt-

大数据的道德拷问-【软件和信息服务】2014.07

美国零售商Target在基于购买记录分析的基础上,分析出一位少女怀孕,进而推送孕期相关的产品广告到这户人家,这位少女的父亲对此颇为不满.当然,最后证明他女儿真怀孕了,这位父亲也颇为尴尬.基于过去销售记录进行预测,并非需要大数据技术,传统的BI也许就能解决,但这个妇孺皆知的案例却给我们敲响了警钟:大数据在为某些团体带来经济效益的同时,也在某些方面侵犯着我们的隐私. 前几天听到另外一个中国本地版的大数据故事:有个朋友想验证一下淘宝上能否买到棺材,搜索一下真找到不少店家.不过,接下去这位哥们就颇为尴尬

随着“互联网+”概念在政府工作报告中提出,互联网金融领域再度升温

随着“互联网+”概念在政府工作报告中提出,互联网金融领域再度升温.大会启动之后受到了监管层.学术界.产业界.金融界.传媒界.投资界及行业协会的高度关注与踊跃参与.峰会特邀全国各地互联网金融前沿企业创始人.高管分享成功经验,打造了超高规格的互联网金融行业盛会.现场环节设计地精彩纷呈,高峰论坛.优秀项目推荐.投融资对接.品牌集中展示等,现场“站”无虚席,人气爆棚. 大会受到了包括国家和各省市政府金融管理机构的支持,四千互联网金融大咖参会,盛况空前.广东省金融工作办公室总经济师余昆明,广东互联网金融协

2014.07总结会经验记录

PPT方面的 1 完成工作情况汇总页,按时间描述项目,X轴是时间,Y轴是项目 2 具体项目页,工作内容可以按类型划分,人员无需在单个项目中指认出来.有一个汇总页进行描述即可. 3 人员配置页,可以去按照项目去划分人员,描述职责.(可借鉴zx的方式,用三角,圆圈,实心圆来区分人员使用方式,专职,复用,临时,我现在用的数字的统计方式更直观,单人用符号来标识更好) 4 技能覆盖页面没太大意义,要保留的话还是要强调变化,而且和人员配置页重了. 5 力求精炼,发现效果还不如第一版,内容必须精炼,过度展开后