文档章节

如何做流数据分析,Byron Ellis来告诉你...

openthings
 openthings
发布于 2017/09/11 16:05
字数 1242
阅读 101
收藏 1

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

    如何做流数据分析,Byron Ellis来告诉你...

    流数据越来越多,如各种消息、社交媒体、运行监控、在线服务、物联网等都会产生大量的实时数据,以前的静态数据也随着采集设备的进化和处理需求的提高而成为流式数据,需要采用具有高可用、低延迟和快速水平扩展的系统来进行处理。《实时分析-流数据的分析与可视化技术》一书对此做了较为全面的介绍,由[美]Byron Ellis编著,王晓伟翻译,机械工业出版社出版。

    

    流数据的处理与传统数据库有所不同,要求具有高可用、低延迟和快速水平扩展能力,这带来了特殊的挑战。所幸的是,大量的开源软件已经探索出了很好的方法,尽管还有很多美中不足,但已足以解决大量的流数据处理和分析所遇到的问题。由于运行在大规模的集群之上而且实时性要求高,流数据的事务性是个非常棘手的问题。根据性能要求和应用的特点,可以采用允许丢失数据、至少交付一次、允许重复交付等多种策略,当然也可以使用“有且只有一次”的严格事务模型,但这在分布式系统下将带来额外的检查开销,建议通过业务层面去进行处理从而提升数据前端的实时性。

    流数据分析架构包括数据采集、数据流程、数据处理、数据存储、数据交付等多个组成部分。要维持流数据平台的持续运行,可以采用ZooKepper对集群进行管理,实现各个节点的信息同步和状态管理。数据采集可以使用MQTT、AMQP、JMS等标准消息协议连接,数据采用JSON格式进行编解码,传输过程使用Kafka或Storm来进行快速传输,数据处理使用Spark或Flink会有很好的效果,而传统Hadoop的MapReduce则会遇到启动慢、实时性差的一些问题。Spark是采用“小步快跑”的批处理策略,基于内存的数据管理机制避免了MapReduce的数据反复IO问题,可以大幅度提升性能。Flink则能提供“即时”的数据处理能力,当然,这与传统的很多软件可能并不兼容,所以还是替代不了Spark,可以结合起来使用。流数据存储可以分为多级,像梯级水库一样进行管理,实时处理的采用内存,热数据采用Redis、MongoDB等,而冷数据和定期抽样数据可以采用传统文件系统和关系数据库存储。在数据处理中,数据存储应该全部采用异步方式,而且尽量避免调用文件和传统数据库存储系统,以免影响数据流动,造成延迟、丢失数据。对于日志数据,已经有完整的解决方案,比如ELK(ElasticSearch、Logstash、Kinbana)、Flume等等,而且可以通过容器技术快速安装、部署。现在,流数据处理再也不是高端产品和大型互联网公司的专利了,小型队伍照样可以玩得转。不过,要维护一个流系统的长期运行和不断升级,还是需要一个专业队伍的,成本也是不菲的。

    流数据的可视化得益于HTML5、WebSocket和Node.JS等技术和平台,已经可以较为轻松地完成,实现实时的数据更新和高动态的可视化效果,开发出以前难以想象的流畅效果,而且可以运行在很多种Web平台和设备之上。Byron Ellis对这些技术的使用做了实用的介绍,但如果使用SuperMap iClient 9D里面的SDK,则可以更为轻松地完成非常炫酷的Web动态效果(已经集成好了,不要说我没告诉你哟)。

    

    在Spark里面,所有的数据统计分析、回归分析、分类识别乃至机器学习的算法也都是可以在流数据上面使用的,这些能力非常强大。不过,也需要注意到分段统计的这些传统算法在处理持续的流数据方面的局限性,也期待具有更好的“流式数据专用”处理算法。不过,Byron Ellis没有告诉你的是,在SuperMap的系列平台中,iServer、iObject、iDesktop都能够利用Spark的能力对空间和非空间数据进行处理,然后直接发布到Web可视化前端,所具有的流数据处理和分析能力可以说是潜力无限啊!

© 著作权归作者所有

openthings

openthings

粉丝 349
博文 1229
码字总数 906912
作品 1
东城
架构师
私信 提问
加载中

评论(0)

GrowingIO 2016 数据驱动增长大会

GrowingIO 2016 数据驱动增长大会,首次聚齐了增长黑客之父 Sean Ellis 、世界前十位前沿数据科学家张溪梦等数十位中美顶尖增长实践者; 链家、点融网、Camera360、量化派、北森以及猎上等国...

活动家
2016/12/10
45
0
增长前传:如何快速找到适合自己的增长策略? - 知乎

作者:赵征宇,日日煮产品战略副总裁 来源:GrowingIO 2019 增长大会上海站 大家好!我叫赵征宇,来自日日煮。 我有大概 15 年的产品经历,早期在 1 号店、百姓网、点融负责产品和增长,去年...

数据驱动业务增长
2019/10/21
0
0
Junit4 使用(在eclipse上) author: Blue

如果写了一个类,想测试一下有没有bug,可以用main方法去测试。但是main方法缺点很多,不是理想的做单元测试的途径——方法不能一起运行,且测试结果多数要通过程序员自己观察才可以判定。 ...

晨曦之光
2012/05/23
541
1
JavaScript 正则表达式上——基本语法

定义 JavaScript种正则表达式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%>','g'); 2. 字面量 var reg=/<%[^%>]%>/g; g: global,全文搜......

豆花饭烧土豆
2016/06/07
16
0
SDN实验---Ryu的应用开发(二)Learning Switch

一:自学习交换机(二层MAC交换机)的编程思路 (一)明确问题 如何实现软件定义的自学习交换机? (二)设计解决方案 通过控制器来实现自学习交换算法,然后指导数据平面实现交换机操作 (三...

osc_jwzrbrqe
2019/10/28
7
0

没有更多内容

加载失败,请刷新页面

加载更多

新鲜出炉!看完这份多线程面试题,今年秋招我完全不慌

一、父子线程怎么共享数据 JDK的InheritableThreadLocal类可以完成父线程到子线程的值传递。但对于使用线程池等会池化复用线程的组件的情况,线程由线程池创建好,并且线程是池化起来反复使用...

osc_c67q27vg
4分钟前
6
0
程序员如何预防大龄危机

一、困境 在中国,程序员到了35岁,基本是一个坎,如果你还是通过常规的招聘网或者猎头去找工作,能拿到offer的比例相对低,因为跟新手程序员比,你没有明显的优势,论薪资:大龄程序员的薪资...

osc_923iryp1
5分钟前
7
0
身为程序员就算月薪再高,想找女朋友的话这些你千万别做!

推荐阅读:程序员如何预防大龄危机 我的一位大学同学,现在三十了,还单着,也是跟我一样从事编程工作,昨天跟我一起吃饭,他向我诉苦,说他在一个APP被一个女孩歧视,他在APP上跟一位女孩聊...

osc_8tunqpdz
7分钟前
13
0
Python基础之Python解释器安装(Windows)

Python基础之Python解释器安装(Windows) Python官网:https://www.python.org/ 版本选择:https://www.python.org/downloads/windows/ Python 3.6.8 - Dec. 24, 2018 python-3.6.8-amd64.exe......

osc_3re0wjem
8分钟前
9
0
电脑声音被禁用了怎么解除?电脑声音被禁用的处理方法【乡巴佬】

电脑突然没有声音的情况想必大家都遇到过,特别是在听歌时突然没声音,令人非常反感。这是哪里出现问题了?难道是电脑坏了?其实不是的,电脑声音被禁用也会造成此故障,那么有什么办法解决?...

osc_hjtv1vkc
9分钟前
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部