大数据药方|WOT技术门诊第一期诊断书

大数据
9月27日,WOT技术门诊第一期会诊结束,本期特邀门诊专家数果科技创始人王劲,针对在构建大数据应用平台过程中遇到的典型问题开出了那些药方?

9月27日,WOT技术门诊第一期会诊结束,本期特邀门诊专家数果科技创始人王劲,针对在构建大数据应用平台过程中遇到的典型问题开出了那些药方?

[本期专家简介:数果科技联合创始人,曾任酷狗音乐大数据架构师,技术负责人,负责酷狗大数据技术规划、建设、应用。12年IT从业经验,2年分布式应用开发,1年移动互联网广告系统架构设计,4年大数据技术实践经验,多年的团队管理经验,主要研究方向流式计算、大数据存储计算、分布式存储系统、NoSQL、搜索引擎等~]

 

问题一:很多开发者在搭建大数据分析平台时,都会遇到大数据内部的融合性、与传统技术的融合性、运维负担大等问题,您认为在搭建大数据分析平台时应该遵循哪些设计准则?

大数据平台架构设计的基本准则:实时、简单、解耦、易维护、易定位。

实时:由于大数据的时效性越高,数据价值就越大,所以设计时尽量让数据实时。

简单:大数据平台架构尽量简单,适应业务需求就可以,不要过度设计,不一定要全采用开源的,有些组件自己开发更快更简单。解耦:整个大数据平台由很多环节组件,每个环节是一个独立系统,尽量让环节与环节之间解耦,耦合太高,不便后续的维护升级。

易维护:由于大数据平台,都是采用分布式架构,很多故障是不可预测的,所以需要可视化运维平台来简化我们后续的运维工作。易定位:在大数据平台中,数据异常、数据波动也是经常发生的,所以需要对整个数据链路进行监控,我们叫数据质量监控。[[174086]]

问题二:在大数据系统架构的技术选型时,如何保持技术的互补与不造成架构臃肿间的平衡?还有就是我们都知道这些工具都是有自身的缺陷,而且缺陷的暴露基本上不可预测的,像spark在数据量过大的时稳定性经常没法保证,能否请您说一下关于这方面的监测和应对方案呢?

针对在大数据系统架构的技术选型时,如何保持技术的互补与不造成架构臃肿间的平衡这个问题,根据公司的业务需求进行技术选型,够用就行,不能为了架构而架构。

关于这方面的监测和应对方案

从两方面处理:

  1. 对使用的组件团队需要成员深入了解,需要对使用的组件可控。
  2. 对使用的每个组件进行指标监控,便于出问题后定位分析问题。

问题三:对于对实时性要求较强的业务来说,应该如何进行NoSQL的选型?比如HBase/Redis/ Cassandra,分别适用于哪些场景?请您简述它们各自的优劣势。

对于技术选型,没有统一的标准与规范,而是要根据具体的业务需求进行量身定制,同一项技术,在A公司能很好的应用,而在B公司可能就会存在很多问题。一旦选型某项技术后,团队一定要能消化此技术的核心问题,这样在整个运营过程中才能扛得住各种奇葩的问题。

而且具体的技术,在业务不同的阶段会抛出不同的问题。有时会随着数据量的增加,性能成为瓶颈;有时会随着业务的复杂度增加,对某些特性要求更高等等。所以不敢选型哪项技术,团队一定要慢慢深入吃透,才能扛住业务不断变化的需求。

对于HBase / Cassandra / Redis来说

HBase,Cassandra属于列式数据库,HBase提供了Cassandra没有的行锁机制,Cassandra要想使用锁需要配合其他系统,如Hadoop Zookeeper; HBase提供更好的MapReduce并行计算支持,Cassandra在0.6版本也提供了这个功能; Cassandra的读写性能和可扩展性更好,但不擅长区间扫描。

Redis属于一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步Redis一个分布式缓存。

HBase / Cassandra更多适合TB或PB数据存储及查询等场景; Redis更多适合缓存或对GB级实时性要求高的场景。

问题四:在国家互联网+,以及移动互联网蓬勃发展的背景下,大数据的发展会有哪个更侧重的趋势呢?在这样的背景下,大数据从业者又该如何强化自身适应潮流?

  1. 大数据计算提高数据处理效率,增加人类认知盈余
  2. 大数据通过全局的数据让人类了解事物背后的真相
  3. 大数据有助于了解事物发展的客观规律,利于科学决策
  4. 大数据提供了同事物的连接,客观了解人类行为
  5. 大数据改变过去的经验思维,帮助人们建立数据思维

大数据从业者,面临很多岗位,针对不同岗位,要求不一样,下面介绍几种岗位,有兴趣的可以了解下。

ETL(提取、传输和加载)开发人员

面对猛增的数据和数据种类,企业非常需要能够收集和整合大数据的人才。ETL开发人员面临企业数据的多种不同的来源,并想办法从这些来源中提取数据、导入数据并调整数据以适应企业的需求,然后将其添加到数据库中。

Hadoop开发人员

Hadoop是基于Java的开源框架,它支持对大数据集的处理。根据Kforce表示,企业对Hadoop框架中的数据,以及不同种类的技术,如Hive、HBase、MapReduce、Pig等有着很高的需求,这主要是对数据量的需求。并且,如果没有大规模分布式处理,使用传统商业智能工具处理TB级/PB级的成本很高而且很费时间。 “具有Hadoo框架经验的人员最受追捧,随着企业确定其长期的大数据战略,这些职位将会更紧俏。

可视化工具开发人员

大规模的数据给数据分析带来巨大挑战。新类型的可视化工具集(例如Spotifre、Qlikview和Tableau)允许直观的快速的数据探测。虽然这些职位可能类似于通常的商业智能开发人员,但Hadoop现在仍然很热门,而且是一种新类型的专门技能。

数据科学家

数据科学家之前被称为数据架构师,他们能够从数据中挖掘出商业价值。他们还必须具备良好的沟通能力,以向IT领导和业务领导解释数据结果。这些数据科学家通常还有自己的沙箱,用于探索和检查企业的数据,并帮助推动创新。

OLAP开发人员

联机分析处理(On-Line Analytical Processing,OLAP)开发人员是数据分析专家。他们从关系型或非结构化数据来源获取数据,并创建三维模型,然后构建用户界面,通过高性能预定义查询来访问数据。

预测分析开发人员“在营销公司中,预测分析被大量用于预测消费者行为和瞄准目标受众。”有时候,这个职位似乎有点类似于数据科学家,这些IT人员非常擅长构建潜在商业情况、利用基于历史数据的假设来预测未来表现。

问题五:同样作为流处理模型,SparkStreaming与Storm目前各自的应用现状如何?在进行技术选型时应该从哪些方面权衡?

从实际生产应用现状来看:

Storm开源的比较早,自2011年起,推特就在使用storm了,大部分公司的实时计算环境使用的storm。而spark streaming是一个比较新的项目,在2013年的时候,仅仅被Sharethrough使用。Storm是Hortonworks Hadoop数据平台中的数据流式处理的解决方案,而Spark Streaming出现在MapR的分布式平台和Cloudera的企业数据平台中。

storm与spark streaming的对比:

数据处理模型、数据延迟性

虽然两种框架都提供了系统的可扩展性和可容错性,但是它们的数据处理模型从根本上说是不一样的,而处理模型则决定了他们的实时性。

Storm可以实现正真流式实时的处理数据,例如每次处理一条消息,这样,延迟就可以控制在秒级以下,实时性很高。而Spark Streaming的本质其实还是批量处理,只是这个批量是微批量,在短的时间窗口内进行数据实时处理,通常延迟在秒级左右,实时性相对较弱。

容错能力

在数据容错能力方面,spark streaming做的比storm好一些,它的容错是通过状态记录去实现的。而storm则不一样,storm对每一条数据进行处理标记,从而进行跟踪数据的处理情况,它只能保证每条数据被处理一次,但实际情况是,在发生错误的时候,这条数据是被处理多次的。这意味着,更新多次的时候可能会导致数据不正确。

而spark的批处理特点,能够保证每个批处理的所有数据只处理一次,保证数据不会在恢复的时候错乱(批处理重新执行)。

storm提供的Trident库虽然能够保证在数据容错时只被处理一次,但它很大程度上依赖于事务的状态更新,并且这个过程相对较慢,更甚者,这个过程是需要用户自己去实现。

总结:如果你的业务场景对实时性要求比较高,同样对数据容错也有所要求,那么storm将是一个很好的选择。

当然,如果你希望对每次实时处理的过程进行掌控,那么spark streaming提供的状态记录会清楚地描述出数据处理的过程,并且数据的错荣能力也很不错。

问题六:探索性大数据的意义何在?应该具备哪些技术基础?

谈探索性大数据的意义,我们得从探索性数据分析的特点讲起。

a、研究从原始数据入手,完全以实际数据为依据。

传统的统计分析方法是先假定数据服从某种分布,如多数情况下假定数据服从正态分布,然后用适应这种分布的模型进行分析和预测。但客观实际的多数数据并不满足假定的理论分布(如正态分布),这样实际场合就会偏离严格假定所描述的理论模型,传统统计方法就可能表现很差,从而使其应用具有极大的局限性。EDA则不是从某种假定出发,而是完全从客观数据出发,从实际数据中去探索其内在的数据规律性。

b、分析方法从实际出发,不以某种理论为依据

传统的统计分析方法是以概率论为理论基础,对各种参数的估计、检验和预测给出具有一定精度的度量方法和度量值。EDA则以不完全正式的方法处理数据。在探索数据内在的数量特征、数量关系和数量变化时,什么方法可以达到这一目的就采用什么方法,灵活对待,灵活处理。方法的选择完全服从于数据的特点和研究的目的,并且更重视数据特征值的稳健耐抗性,而相对放松对概率理论和精确度的刻意追求。

c、分析工具简单直观,更易于普及

传统的统计分析方法应用的数学工具越来越深奥,统计研究也越来越理论化,这样就使应用的人越来越害怕统计。EDA提供多种多样丰富多彩的详细考察数据的方法。例如,它运用简单直观的茎叶图、箱线图、残差图、字母值、数据变换、中位数平滑等与传统统计方法截然不同的方法,使得具有一般数学知识的人就可以进行复杂的数据分析。这不仅极大地扩大了统计分析的用户群体,而且为统计思想注入了新的活力。

探索性大数据分析需要具备哪些技术基础,从它的特点可以看出,需要具体原始数据存储功能,所以在大数据中做探索性分析,需要具备TB/PB级原始数据的快速查询与存储等技术能力。具体到技术点,大家有兴趣的可以私聊~

以下内容用心感受才能扑捉到更细腻的美好瞬间

WOT技术门诊-认真“治病”互动花絮

一线业务人员和大数据技术人员“撕逼”大战花絮

WOT技术门诊第一期已经落幕。在这次线上互动交流活动中,各个行业不同岗位人群发表了自己最真实的想法。因为交流,我们从未孤独孤独,不是没人听你说话而是你不想说给别人听。

所以,你孤独,你活该。你的孤独虽败犹耻!!!

那个,别!别!不要!不要!扔砖啊!!

其实,我是想说,我不希望你孤独。因为,我心疼......

其实我真的想对你说

WOT技术门诊第二期也要开始喽~

责任编辑:未丽燕 来源: WOT
相关推荐

2016-10-21 13:24:33

大数据大数据技术董四辈

2016-11-11 19:58:23

2017-01-17 14:01:18

2010-05-10 19:43:37

IT号外智能计算

2013-07-02 17:29:21

IT半小时

2018-06-14 11:02:37

区块链支付宝去中心化

2022-04-06 11:41:07

Harmony观后感开源

2015-08-19 09:39:09

联盟秘书处 

2016-12-22 10:26:16

2011-10-18 09:59:06

移动推送技术

2015-07-27 15:34:43

51CTO学院技术沙龙WEB开发

2011-08-10 13:50:35

2024-01-03 15:50:22

鸿蒙JS开源库js-e2e

2013-10-08 16:57:58

企业网络架构华为

2012-11-29 13:23:17

挨踢人物传51CTO技术论坛

2015-12-14 15:38:39

2016-04-25 15:58:07

Linux磁盘

2012-02-08 15:28:42

炎黄盈动

2011-05-10 10:37:31

Linux

2011-03-14 10:34:35

51CTO技术沙龙LinuxLAMP
点赞
收藏

51CTO技术栈公众号