文档章节

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

openthings
 openthings
发布于 2017/09/11 16:05
字数 1242
阅读 71
收藏 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
粉丝 273
博文 1011
码字总数 544432
作品 1
东城
架构师
私信 提问
JavaScript 正则表达式上——基本语法

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

豆花饭烧土豆
2016/06/07
5
0
火箭公司Relativity Space雄心初显,创始人来自蓝色起源和SpaceX

  即便在航天业百花齐放的时代,Relativity Space 也一枝独秀。这家火箭公司的创始人是一群 20 多岁的年轻人,他们曾经在 Blue Origin 与 SpaceX 工作。他们聚在一起希望用 3D 打印技术制造...

DeepTech深科技
03/28
0
0
CI Weekly #8 | CI/CD 技能进阶路线

在使用 flow.ci 进行持续集成的过程中,也许你会遇到一些小麻烦。最近我们整理了一些常见问题在 flow.ci 文档之 FAQ,希望对你有用。如果你遇到其他问题,也可以通过「在线消息」或去 Gitter...

风起云飞fir_im
2016/12/22
19
0
公开课笔记 | 从0到1搭建数据运营体系

今天这篇文章,就跟大家分享一下如何搭建一套正确、高效的数据运营体系。 一、什么是数据运营 “数据运营” 有两层含义。 狭义指“数据运营”这一工作岗位,它跟内容运营、产品运营、活动运营...

大数据之路
2013/05/30
0
0
JavaScript 正则表达式上——基本语法

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

豆花饭烧土豆
2016/07/21
20
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 你是靠自己努力才失败的

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 小小编辑:推荐歌曲 《Raveena》- Raveena 《Raveena》- Raveena 手机党少年们想听歌,请使劲儿戳(这里) 11月18日,俞敏洪在某论坛演讲中称...

小小编辑
53分钟前
230
7
firewalld

1. firewalld 是什么 CentOS中默认是有 firewalld, iptables, etablesd firewalld 是 CentOS7/RadHat7 中默认的防火墙管理工具. firewalld 工具用来管理里netfilter, 不过底层还是调用的还是...

Fc丶
今天
2
0
Java 源代码和 C 源代码的运行区别

与其他程序的执行方式和编译方式不同。 Java 源代码需要进行编译成字节码后在 Java 虚拟机上运行,这样 Java 程序能够保持独立性和跨平台功特性。 请参考下图。 https://www.cwiki.us/pages...

honeymose
今天
6
0
Apache限定目录解析PHP,限制user_agent,PHP相关的配置

Apache限定目录解析PHP 配置前访问upload/index.php [root@test-a ~]# curl -x192.168.77.139:80 'www.test.com/upload/index.php'This is upload diretory 配置,/usr/local/apache2.4/......

野雪球
今天
6
0
java.util.Concurrent.Exchanger源码

类图 源码: package java.util.concurrent;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicReference;import java.util.concurrent......

狼王黄师傅
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部