• 之前的文章,整理了一下,补充了一些内容,做了一些更新,现已出版上市了。...目录列表:第1章 大数据平台整体建设思想 11.1 什么是大数据平台 11.2 大数据平台的建设目标 31.2.1 别人的大数据平台是怎样的 31.2....

    之前的文章,整理了一下,补充了一些内容,做了一些更新,现已出版上市了。无耻的推广一下哈 ;) 淘宝,JD都有现货,Amazon,搜书名 《 大数据平台基础架构指南 》

    链接:https://item.jd.com/29923944547.html

    https://www.amazon.cn/dp/B07F3M1G6M/


    感谢博文视点的@侠少,感谢各位替本书写推荐语软文的朋友们,感谢之前蘑菇街大数据团队的各位小伙伴。











    目录列表:


    第1章  大数据平台整体建设思想 1

    1.1  什么是大数据平台 1

    1.2  大数据平台的建设目标 3

    1.2.1  别人的大数据平台是怎样的 3

    1.2.2  和业内领先的大数据平台的差距 4

    1.2.3  大数据平台建设目标小结 6

    1.3  大数据平台的建设指导方针 6

    1.3.1  组件工具化 7

    1.3.2  工具平台化 8

    1.3.3  平台服务化 9

    1.3.4  平台产品化 10

    1.3.5  对中小公司大数据平台的适用性 11

    1.4  大数据平台的两种建设路径 12

    1.4.1  垂直业务领域一站到底的建设方式 13

    1.4.2  通用组件建设,组合支持业务的方式 13

    1.4.3  从蘑菇街平台的实践经验对比两种建设路径 14

    1.4.4  两种建设路径的对比小结 16

    第2章  服务意识和产品思想的培养 17

    2.1  明确大数据平台服务能力的评估标准 17

    2.1.1  大数据平台团队的职能定位 18

    2.1.2  打通上下游系统和业务流程的能力 18

    2.2  满足用户真正的需求 19

    2.3  认清服务的代价,做好心理建设 20

    2.4  寻找解决服务代价问题的方案 23

    2.4.1  路线选择带来的代价问题 23

    2.4.2  如何降低服务自身的代价 25

    2.5  大数据平台的产品化思想 29

    2.5.1  从用户体验的角度谈产品设计 31

    2.5.2  从价值和利益的角度谈产品思维 36

    2.6  小结 38

    第3章  工作流(作业)调度系统 39

    3.1  作业调度系统基础理论 40

    3.1.1  调度系统分类 40

    3.1.2  工作流调度系统的两种心法流派 45

    3.1.3  工作流调度系统功能特性详解 49

    3.2  Jarvis调度系统产品开发实践 55

    3.2.1  需求定位分析 55

    3.2.2  具体功能目标的详细分析和实践 57

    3.2.3  第二代Jarvis现状和将来 75

    3.3  小结 79

    第4章  集成开发环境门户建设 81

    4.1  集成开发环境的功能定位 82

    4.1.1  集成开发环境的整体服务思路 83

    4.1.2  集成开发环境的具体产品建设目标 86

    4.1.3  小结 93

    4.2  开发平台测试环境建设 94

    4.2.1  问题背景 94

    4.2.2  系统功能性测试环境 95

    4.2.3  数据业务类测试环境 96

    4.2.4  小结 100

    第5章  数据采集、传输、交换、同步服务 101

    5.1  数据交换服务场景和常见开源方案 102

    5.1.1  大数据平台数据交换服务业务场景 102

    5.1.2  常见数据交换服务解决方案介绍 103

    5.2  数据交换服务具体产品实践 110

    5.2.1  数据交换服务底层组件 110

    5.2.2  数据交换服务管控平台 113

    5.2.3  蘑菇街数据交换服务的实践现状和未来改进计划 118

    5.3  用户行为链路分析之日志埋点采集跟踪方案实践 120

    5.3.1  记日志有什么难的 120

    5.3.2  蘑菇街的用户行为日志采集方案实践 122

    5.3.3  小结 129

    第6章  数据可视化平台 130

    6.1  什么是数据可视化平台 130

    6.1.1  数据可视化平台名词定义 131

    6.1.2  已经有了那么多商业BI系统,为什么还要造轮子 132

    6.2  数据可视化平台产品实践 134

    6.2.1  可视化平台产品定位和需求分析 135

    6.2.2  具体产品功能需求实践详解 136

    6.2.3  将来的改进目标 146

    6.2.4  产品实践小结 148

    第7章  安全与权限管控 149

    7.1  权限管理的目标是什么 149

    7.1.1  适度安全,降低人为风险 150

    7.1.2  隔离环境,提高工作效率 151

    7.1.3  权责明晰,规范业务流程 152

    7.1.4  权限管理目标小结 153

    7.2  如何解决安全和便利的矛盾 153

    7.2.1  安全和便利天生矛盾 153

    7.2.2  改变角度,转移目标 154

    7.2.3  把握尺度 155

    7.2.4  可能的变通措施 157

    7.2.5  思想小结 163

    7.3  权限管控系统产品方案和技术分析 163

    7.3.1  常见开源方案 164

    7.3.2  Kerberos 165

    7.3.3  Sentry和Ranger 168

    7.3.4  Knox 169

    7.3.5  开源项目中常见的权限模型概念 169

    7.4  基于开发平台服务入口的权限管控方案 171

    7.4.1  权限管控方案实践 171

    7.4.2  底层统一权限管控和平台边界权限管控方案对比 173

    第8章  数据质量管理 175

    8.1  元数据管理平台 176

    8.1.1  元数据管理平台管理什么 176

    8.1.2  元数据管理相关系统方案介绍 180

    8.1.3  元数据管理系统工程实践 183

    8.2  DQC数据质量中心 185

    8.2.1  DQC数据质量中心业界方案 186

    8.2.2  DQC数据质量系统建设实践 188

    8.3  数据质量管理小结 193

    第9章  大数据集群迁移经验谈 195

    9.1  集群迁移都要面对哪些麻烦事 196

    9.1.1  集群和机房外部环境问题 196

    9.1.2  平台自身组件和服务依赖问题 196

    9.1.3  业务模式和沟通配合问题 197

    9.1.4  业务逻辑和数据正确性问题 198

    9.2  集群搬迁方案的总体目标、原则、流程 199

    9.3  一些具体问题的分析和实践 201

    9.3.1  如何保证正确性 201

    9.3.2  集群数据同步拷贝方案 205

    9.3.3  各种无法双跑的业务场景梳理 207

    9.4  小结 208

    第10章  谈谈大数据码农的职业发展问题 210

    10.1  如何成为一名糟糕的大数据平台工程师 211

    10.1.1  我是小白我怕谁 211

    10.1.2  敏而好学,不耻下问 212

    10.1.3  效率优先,中文至上 213

    10.1.4  流行的就是最好的 213

    10.1.5  我们的征途,是星辰大海 215

    10.1.6  书中自有颜如玉,热衷阅读代码 216

    10.1.7  谜之问题的谜之解决方式 218

    10.1.8  勤奋好学,但是回头即忘 220

    10.1.9  小结 221

    10.2  职业选择和我们早晚要面对的中年危机问题 222

    10.2.1  中年危机,要从娃娃抓起 222

    10.2.2  中年危机之抗焦虑指南 223

    10.2.3  如何才能获得自由 225

    10.2.4  案例 230

    10.2.5  小结 233

    展开全文
  • 1)场景:数据采集到大数据平台-大数据平台回写或导出到业务系统-大数据开发平台组件间 2)常见数据源: 关系型数据库:比如MySQL、Oracle…… 文件类:比如log、CSV、Excel等 消息队列类:比如Kafka和各种MQ 各类....

    第5章 数据采集、传输、交换、同步服务

    5.1 数据交换服务场景和常见开源方案

    数据交换:不同系统之间传输和同步数据。

    1 、大数据平台数据交换服务业务场景
    1)场景:数据采集到大数据平台-大数据平台回写或导出到业务系统-大数据开发平台组件间
    2)常见数据源:

    • 关系型数据库:比如MySQL、Oracle……
    • 文件类:比如log、CSV、Excel等
    • 消息队列类:比如Kafka和各种MQ
    • 各类大数据相关组件:HDFS、Hive、HBase、ES
    • 其他网络接口或服务类:FTP、HTTP、Socket

    2、常见解决方案
    1)关系型数据库为主要处理对象的系统

    • Tungsten-replicator

    商业解决方案,能处理Oracle、MySQL的数据复制同步。数据同步、管理及稳定性是强项。

    • Canal和Otter

    Canal基于Binlog机制来获取增量数据,Otter则是构建在Canal智商的数据库远程同步管理工具。优点是流程架构简单,部署容易;缺点是Server和Client之间是一对一的消费,不太适用于需要多消费和数据分发的场景。

    • 阿里的DRC/警卫等

    定位与已购数据库实时同步,数据记录变更订阅服务。没有开源。蘑菇街的Pigeon基于Canal的Binlog解析代码模块基础上,参照DRC的思想进行的开发(Parser->MQ)。

    1. 日志或者消息队列
    • Flume

    定位是离线日志的采集、聚合和传输。

    • Logstash

    ELK著名组件,负责日志采集和转换。

    • Camus

    基于Kafka->HDFS的工具

    3)通用的数据同步解决方案

    • Sqoop
      定位于大数据平台的数据采集业务,整体架构以Hadoop为核心。不少公司使用Sqoop来构建自己的数据采集同步方案。

    • DataX

    阿里的一款开源插件,以通用的异构数据交换为目标的产品。思路:通过表昏花的输入/输出模块,将点对点扩展成星形拓扑结构。图Data3.0

    • Heka

    mozilla开源的,与Logstash类似

    5.2 具体产品实践

    1、底层组件
    模块分为输入、过滤转换、输出三个模块

    5.3 用户行为链路分析之日志埋点采集跟踪方案实践

    1、记日志有什么难的
    全方位不遗漏的采集数据。

    • 首先,页面全覆盖
    • 其次,流量全覆盖
      用js脚本、日志服务接口、日志采集SDK等手段来标准化。比如Google Analytic、百度统计、GrowingIO等

    2、采集方案
    1)整体流程

    • 页面浏览类日志:js采集,然后向日志服务器特定URL发起HTTP请求,由日志服务器记录落库。
    • 服务端日志类:agent收集日志,发送Kafka消息队列

    2)埋点管理 (记录特定的事件ID)

    • 浏览类日志的ID标识,大多是按照规则自动生成的
    • 点击交互类日志:先注册登记,然后业务方通过SDK记录

    3)PV/UV和独立交互类事件统计

    • 页面类按一类页面一个ID
    • 用户点击类,也是一类事件一个ID

    4)用户浏览行为链路跟踪方案

    • SPM编码方案(a.b.c.d.e),分层级的定位体系

    a 字段代表的是站点;b代表这个业务下的页面ID;c代表页面中的模块;d代表点击的链接在模块内部的索引位置;e是一个特定规则生成的UniqueID,用来区分不同的session或者点击。

    • 如何自动化生成个字段的ID信息

    a 字段,种类不会太多,直接定义好,写入页面的后台公共模板就行
    b字段,Web端,可以采用后台具体页面模板的URL的Hash值,用一个不宜冲突的Hash函数
    c字段,ID通常只需要页面内部唯一,所以ID本身自动生成一个
    d字段根据页面标签加特定属性的方式自动生成一个固定的ID

    5)其他问题

    • 客户端回退行为识别
    • Hybrid混合模式的处理。
    第6章 数据可视化平台
    展开全文
  • 大数据架构指南.pdf
  • 大数据参考架构和关键技术 1、大数据参考架构 大数据作为一种新兴技术,目前尚未形成完善、达成共识的技术标准体系。本章结合NIST和JTC1/SC32的研究成果,结合我们对大数据的理解和分析,提出了大数据参考架构(见图5...

    大数据参考架构和关键技术

    1、大数据参考架构

    大数据作为一种新兴技术,目前尚未形成完善、达成共识的技术标准体系。本章结合NIST和JTC1/SC32的研究成果,结合我们对大数据的理解和分析,提出了大数据参考架构(见图5)。

    大数据参考架构和关键技术

    大数据参考架构图

    大数据参考架构总体上可以概括为“一个概念体系,二个价值链维度”。“一个概念体系”是指它为大数据参考架构中使用的概念提供了一个构件层级分类体系,即“角色—活动—功能组件”,用于描述参考架构中的逻辑构件及其关系;“二个价值链维度”分别为“IT价值链”和“信息价值链”,其中“IT价值链”反映的是大数据作为一种新兴的数据应用范式对IT技术产生的新需求所带来的价值,“信息价值链”反映的是大数据作为一种数据科学方法论对数据到知识的处理过程中所实现的信息流价值。这些内涵在大数据参考模型图中得到了体现。

    大数据参考架构是一个通用的大数据系统概念模型。它表示了通用的、技术无关的大数据系统的逻辑功能构件及构件之间的互操作接口,可以作为开发各种具体类型大数据应用系统架构的通用技术参考框架。其目标是建立一个开放的大数据技术参考架构,使系统工程师、数据科学家、软件开发人员、数据架构师和高级决策者,能够在可以互操作的大数据生态系统中制定一个解决方案,解决由各种大数据特征融合而带来的需要使用多种方法的问题。它提供了一个通用的大数据应用系统框架,支持各种商业环境,包括紧密集成的企业系统和松散耦合的垂直行业,有助于理解大数据系统如何补充并有别于已有的分析、商业智能、数据库等传统的数据应用系统。

    大数据参考架构采用构件层级结构来表达大数据系统的高层概念和通用的构件分类法。从构成上看,大数据参考架构是由一系列在不同概念层级上的逻辑构件组成的。这些逻辑构件被划分为三个层级,从高到低依次为角色、活动和功能组件。最顶层级的逻辑构件是角色,包括系统协调者、数据提供者、大数据应用提供者、大数据框架提供者、数据消费者、安全和隐私、管理。第二层级的逻辑构件是每个角色执行的活动。第三层级的逻辑构件是执行每个活动需要的功能组件。

    大数据参考架构图的整体布局按照代表大数据价值链的两个维度来组织,即信息价值链(水平轴)和IT价值链(垂直轴)。在信息价值链维度上,大数据的价值通过数据的收集、预处理、分析、可视化和访问等活动来实现。在IT价值链维度上,大数据价值通过为大数据应用提供存放和运行大数据的网络、基础设施、平台、应用工具以及其他IT服务来实现。大数据应用提供者处在两个维的交叉点上,表明大数据分析及其实施为两个价值链上的大数据利益相关者提供了价值。

    五个主要的模型构件代表在每个大数据系统中存在的不同技术角色:系统协调者、数据提供者、大数据应用提供者、大数据框架提供者和数据消费者。另外两个非常重要的模型构件是安全隐私与管理,代表能为大数据系统其他五个主要模型构件提供服务和功能的构件。这两个关键模型构件的功能极其重要,因此也被集成在任何大数据解决方案中。

    参考架构可以用于多个大数据系统组成的复杂系统(如堆叠式或链式系统),这样其中一个系统的大数据使用者可以作为另外一个系统的大数据提供者。

    参考架构逻辑构件之间的关系用箭头表示,包括三类关系:“数据”、“软件”和“服务使用”。“数据”表明在系统主要构件之间流动的数据,可以是实际数值或引用地址。“软件”表明在大数据处理过程中的支撑软件工具。“服务使用”代表软件程序接口。虽然此参考架构主要用于描述大数据实时运行环境,但也可用于配置阶段。大数据系统中涉及的人工协议和人工交互没有被包含在此参考架构中。

    (1)系统协调者

    系统协调者角色提供系统必须满足的整体要求,包括政策、治理、架构、资源和业务需求,以及为确保系统符合这些需求而进行的监控和审计活动。系统协调者角色的扮演者包括业务领导、咨询师、数据科学家、信息架构师、软件架构师、安全和隐私架构师、网络架构师等。系统协调者定义和整合所需的数据应用活动到运行的垂直系统中。系统协调者通常会涉及到更多具体角色,由一个或多个角色扮演者管理和协调大数据系统的运行。这些角色扮演者可以是人,软件或二者的结合。系统协调者的功能是配置和管理大数据架构的其他组件,来执行一个或多个工作负载。这些由系统协调者管理的工作负载,在较低层可以是把框架组件分配或调配到个别物理或虚拟节点上,在较高层可以是提供一个图形用户界面来支持连接多个应用程序和组件的工作流规范。系统协调者也可以通过管理角色监控工作负载和系统,以确认每个工作负载都达到了特定的服务质量要求,还可能弹性地分配和提供额外的物理或虚拟资源,以满足由变化/激增的数据或用户/交易数量而带来的工作负载需求。

    (2)数据提供者

    数据提供者角色为大数据系统提供可用的数据。数据提供者角色的扮演者包括企业、公共代理机构、研究人员和科学家、搜索引擎、Web/FTP和其他应用、网络运营商、终端用户等。在一个大数据系统中,数据提供者的活动通常包括采集数据、持久化数据、对敏感信息进行转换和清洗、创建数据源的元数据及访问策略、访问控制、通过软件的可编程接口接口实现推或拉式的数据访问、发布数据可用及访问方法的信息等。

    数据提供者通常需要为各种数据源(原始数据或由其它系统预先转换的数据)创建一个抽象的数据源,通过不同的接口提供发现和访问数据功能。这些接口通常包括一个注册表,使得大数据应用程序能够找到数据提供者、确定包含感兴趣的数据、理解允许访问的类型、了解所支持的分析类型、定位数据源、确定数据访问方法、识别数据安全要求、识别数据保密要求以及其他相关信息。因此,该接口将提供注册数据源、查询注册表、识别注册表中包含标准数据集等功能。

    针对大数据的4V特性和系统设计方面的考虑,暴露和访问数据的接口需要根据变化的复杂性采用推和拉两种软件机制。这两种软件机制包括订阅事件、监听数据馈送、查询特定数据属性或内容,以及提交一段代码来执行数据处理功能。由于需要考虑大数据量跨网络移动的经济性,接口还可以允许提交分析请求(例如,执行一段实现特定算法的软件代码),只把结果返回给请求者。数据访问可能不总是自动进行,可以让人类角色登录到系统提供新数据应传送的方式(例如,基于数据馈送建立订阅电子邮件)。

    (3)大数据应用提供者

    大数据应用提供者在数据的生命周期中执行一系列操作,以满足系统协调者建立的系统要求及安全和隐私要求。大数据应用提供者通过把大数据框架中的一般性资源和服务能力相结合,把业务逻辑和功能封装成架构组件,构造出特定的大数据应用系统。大数据应用提供者角色的扮演者包括应用程序专家、平台专家、咨询师等。大数据应用提供者角色执行的活动包括数据的收集、预处理、分析、可视化和访问。

    大数据应用程序提供者可以是单个实例,也可以是一组更细粒度大数据应用提供者实例的集合,集合中的每个实例执行数据生命周期中的不同活动。每个大数据应用提供者的活动可能是由系统协调者、数据提供者或数据消费者调用的一般服务,如Web服务器、文件服务器、一个或多个应用程序的集合或组合。每个活动可以由多个不同实例执行,或者单个程序也可能执行多个活动。每个活动都能够与大数据框架提供者、数据提供者以及数据消费者交互。这些活动可以并行执行,也可以按照任意的数字顺序执行,活动之间经常需要通过大数据框架提供者的消息和通信框架进行通信。大数据应用提供者执行的活动和功能,特别是数据收集和数据访问活动,需要与安全和隐私角色进行交互,执行认证/授权并记录或维护数据的出处。

    收集活动用于处理与数据提供者的接口。它可以是一般服务,如由系统协调者配置的用于接收或执行数据收集任务的文件服务器或Web服务器;也可以是特定于应用的服务,如用来从数据提供者拉数据或接收数据提供者推送数据的服务。收集活动执行的任务类似于ETL的抽取(extraction)环节。收集活动接收到的数据通常需要大数据框架提供者的处理框架来执行内存队列缓存或其他数据持久化服务。

    预处理活动执行的任务类似于ETL的转换(transformation)环节,包括数据验证、清洗、去除异常值、标准化、格式化或封装。预处理活动也是大数据框架提供者归档存储的数据来源,这些数据的出处信息一般也要被验证并附加到数据存储中。预处理活动也可能聚集来自不同的数据提供者的数据,利用元数据键来创建一个扩展的和增强的数据集。

    分析活动的任务是实现从数据中提取出知识。这需要有特定的数据处理算法对数据进行处理,以便从数据中得出能够解决技术目标的新洞察。分析活动包括对大数据系统低级别的业务逻辑进行编码(更高级别的业务流程逻辑由系统协调者进行编码),它利用大数据框架提供者的处理框架来实现这些关联的逻辑,通常会涉及到在批处理或流处理组件上实现分析逻辑的软件。分析活动还可以使用大数据框架提供者的消息和通信框架在应用逻辑中传递数据和控制功能。

    可视化活动的任务是将分析活动结果以最利于沟通和理解知识的方式展现给数据消费者。可视化的功能包括生成基于文本的报告或者以图形方式渲染分析结果。可视化的结果可以是静态的,存储在大数据框架提供者中供以后访问。更多的情况下,可视化活动经常要与数据消费者、大数据分析活动以及大数据提供者的处理框架和平台进行交互,这就需要基于数据消费者设置的数据访问参数来提供交互式可视化手段。可视化活动可以完全由应用程序实现,也可以使用大数据框架提供者提供的专门的可视化处理框架实现。

    访问活动主要集中在与数据消费者的通信和交互。与数据收集活动类似,访问活动可以是由系统协调者配置的一般服务,如Web服务器或应用服务器,用于接受数据消费者请求。访问活动还可以作为可视化活动、分析活动的界面来响应数据消费者的请求,并使用大数据框架提供者的处理框架和平台来检索数据,向数据消费者请求作出响应。此外,访问活动还要确保为数据消费者提供描述性和管理性元数据,并把这些元数据作为数据传送给数据消费者。访问活动与数据消费者的接口可以是同步或异步的,也可以使用拉或推软件机制进行数据传输。

    (4)大数据框架提供者

    大数据框架提供者角色为大数据应用提供者在创建特定的大数据应用系统时提供一般资源和服务能力。大数据框架提供者的角色扮演者包括数据中心、云提供商、自建服务器集群等。大数据框架提供者执行的活动和功能包括提供基础设施(物理资源、虚拟资源)、数据平台(文件存储、索引存储)、处理框架(批处理、交互、流处理)、消息和通信框架、资源管理等。

    基础设施为其他角色执行活动提供存放和运行大数据系统所需要的资源。通常情况下,这些资源是物理资源的某种组合,用来支持相似的虚拟资源。资源一般可以分为网络、计算、存储和环境。网络资源负责数据在基础设施组件之间的传送;计算资源包括物理处理器和内存,负责执行和保持大数据系统其他组件的软件;存储资源为大数据系统提供数据持久化能力;环境资源是在考虑建立大数据系统时需要的实体工厂资源,如供电、制冷等。

    数据平台通过相关的应用编程接口(API)或其他方式,提供数据的逻辑组织和分发服务。它也可能提供数据注册、元数据以及语义数据描述等服务。逻辑数据组织的范围涵盖从简单的分隔符平面文件到完全分布式的关系存储或列存储。数据访问方式可以是文件存取API或查询语言(如SQL)。通常情况下,实现的大数据系统既能支持任何基本的文件系统存储,也支持内存存储、索引文件存储等方式。

    处理框架提供必要的基础软件以支持实现的应用能够处理具有4V特征的大数据。处理框架定义了数据的计算和处理是如何组织的。大数据应用依赖于各种平台和技术,以应对可扩展的数据处理和分析的挑战。处理框架一般可以分为批处理(batch)、流处理(streaming)和交互式(interactive)三种类型。

    消息和通信框架为可水平伸缩的集群的结点之间提供可靠队列、传输、数据接收等功能。它通常有2种实现模式,即点对点(point-to-point)模式和存储-转发(store-and-forward)模式。点对点模式不考虑消息的恢复问题,数据直接从发送者传送给接收者。存储-转发模式提供消息持久化和恢复机制,发送者把数据发送给中介代理,中介代理先存储消息然后再转发给接收者。

    资源管理活动负责解决由于大数据的数据量和速度特征而带来的对CPU、内存、I/O等资源管理问题。有两种不同的资源管理方式,分别是框架内(intra-framework)资源管理和框架间(inter-framework)资源管理。框架内资源管理负责框架自身内部各组件之间的资源分配,由框架负载驱动,通常会为了最小化框架整体需求或降低运行成本而关闭不需要的资源。

    框架间资源管理负责大数据系统多个存储框架和处理框架之间的资源调度和优化管理,通常包括管理框架的资源请求、监控框架资源使用,以及在某些情况下对申请使用资源的应用队列进行管理等。特别的,针对大数据系统负载多变、用户多样、规模较大的特点,应采用更加经济有效的资源构架和管理方案。目前的大数据软件框架,其亮点在于高可扩展性,而本质诉求仍然是如何实现并行化,即对数据进行分片、并为每一个分片分配相应的本地计算资源。

    因此,对于基础架构而言,为了支持大数据软件框架,最直接的实现方式就是将一份计算资源和一份存储资源进行绑定,构成一个资源单位(如,服务器),以获得尽可能高的本地数据访问性能。但是,这种基础架构由于计算同存储之间紧耦合且比例固定,逐渐暴露出资源利用率低、重构时灵活性差等问题。因此,未来应通过硬件及软件各方面的技术创新,在保证本地数据访问性能的同时,实现计算与存储资源之间的松耦合,即:可以按需调配整个大数据系统中的资源比例,及时适应当前业务对计算和存储的真实需要;同时,可以对系统的计算部分进行快速切换,真正满足数据技术(DT)时代对“以数据为中心、按需投入计算”的业务要求。

    (5)数据消费者

    数据消费者角色接收大数据系统的输出。与数据提供者类似,数据消费者可以是终端用户或者其它应用系统。数据消费者执行的活动通常包括搜索/检索、下载、本地分析、生成报告、可视化等。数据消费者利用大数据应用提供者提供的界面或服务访问他感兴趣的信息,这些界面包括数据报表、数据检索、数据渲染等。

    数据消费者角色也会通过数据访问活动与大数据应用提供者交互,执行其提供的数据分析和可视化功能。交互可以是基于需要(demand-based)的,包括交互式可视化、创建报告,或者利用大数据提供者提供的商务智能(BI)工具对数据进行钻取(drill-down)操作等。交互功能也可以是基于流处理(streaming-based)或推(push-based)机制的,这种情况下消费者只需要订阅大数据应用系统的输出即可。

    (6)安全和隐私

    在大数据参考架构图中,安全和隐私角色覆盖了其它五个主要角色,即系统协调者、数据提供者、大数据框架提供者、大数据应用提供者、数据消费者,表明这五个主要角色的活动都要受到安全和隐私角色的影响。安全和隐私角色处于管理角色之中,也意味着安全和隐私角色与大数据参考架构中的全部活动和功能都相互关联。在安全和隐私管理模块,通过不同的技术手段和安全措施,构筑大数据系统全方位、立体的安全防护体系,同时应提供一个合理的灾备框架,提升灾备恢复能力,实现数据的实时异地容灾功能。

    (7)管理

    管理角色包括二个活动组:系统管理和大数据生命周期管理。系统管理活动组包括调配、配置、软件包管理、软件管理、备份管理、能力管理、资源管理和大数据基础设施的性能管理等活动。大数据生命周期管理涵盖了大数据生命周期中所有的处理过程,其活动和功能是验证数据在生命周期的每个过程是否都能够被大数据系统正确地处理。

    由于大数据基础设施的分布式和复杂性,系统管理依赖于两点:使用标准的协议如SNMP把资源状态和出错信息传送给管理组件;通过可部署的代理或管理连接子(connector)允许管理角色监视甚至控制大数据处理框架元素。系统管理的功能是监视各种计算资源的运行状况,应对出现的性能或故障事件,从而能够满足大数据应用提供者的服务质量(QoS)需求。在云服务提供商提供能力管理接口时,通过管理连接子对云基础设施提供的自助服务、自我调整、自我修复等能力进行利用和管理。大型基础设施通常包括数以千计的计算和存储节点,因此应用程序和工具的调配应尽可能自动化。软件安装、应用配置以及补丁维护也应该以自动的方式推送到各结点并实现自动地跨结点复制。

    还可以利用虚拟化技术的虚拟映像,加快恢复进程和提供有效的系统修补,以最大限度地减少定期维护时的停机时间。系统管理模块应能够提供统一的运维管理,能够对包括数据中心、基础硬件、平台软件(存储、计算)和应用软件进行集中运维、统一管理,实现安装部署、参数配置、系统监控等功能。应提供自动化运维的能力,通过对多个数据中心的资源进行统一管理,合理的分配和调度业务所需要的资源,做到自动化按需分配。同时提供对多个数据中心的IT基础设施进行集中运维的能力,自动化监控数据中心内各种IT设备的事件、告警、性能,实现从业务维度来进行运维的能力。

    大数据生命周期管理活动负责验证数据在生命周期中的每个过程是否都能够被大数据系统正确地处理,它覆盖了数据从数据提供者那里被摄取到系统,一直到数据被处理或从系统中删除的整个生命周期。由于大数据生命周期管理的任务可以分布在大数据计算环境中的不同组织和个体,从遵循政策、法规和安全要求的视角,大数据生命周期管理包括以下活动或功能:政策管理(数据迁移及处置策略)、元数据管理(管理数据标识、质量、访问权限等元数据信息)、可访问管理(依据时间改变数据的可访问性)、数据恢复(灾难或系统出错时对数据进行恢复)、保护管理(维护数据完整性)。从大数据系统要应对大数据的4V特征来看,大数据生命周期管理活动和功能还包括与系统协调者、数据提供者、大数据框架提供者、大数据应用提供者、数据消费者以及安全和隐私角色之间的交互。

    2、大数据关键技术

    数据收集

    大数据时代,数据的来源极其广泛,数据有不同的类型和格式,同时呈现爆发性增长的态势,这些特性对数据收集技术也提出了更高的要求。数据收集需要从不同的数据源实时的或及时的收集不同类型的数据并发送给存储系统或数据中间件系统进行后续处理。数据收集一般可分为设备数据收集和Web数据爬取两类,常常用的数据收集软件有Splunk、Sqoop、Flume、Logstash、Kettle以及各种网络爬虫,如Heritrix、Nutch等。

    数据预处理

    数据的质量对数据的价值大小有直接影响,低质量数据将导致低质量的分析和挖掘结果。广义的数据质量涉及许多因素,如数据的准确性、完整性、一致性、时效性、可信性与可解释性等。

    大数据系统中的数据通常具有一个或多个数据源,这些数据源可以包括同构/异构的(大)数据库、文件系统、服务接口等。这些数据源中的数据来源现实世界,容易受到噪声数据、数据值缺失与数据冲突等的影响。此外数据处理、分析、可视化过程中的算法与实现技术复杂多样,往往需要对数据的组织、数据的表达形式、数据的位置等进行一些前置处理。

    数据预处理的引入,将有助于提升数据质量,并使得后继数据处理、分析、可视化过程更加容易、有效,有利于获得更好的用户体验。数据预处理形式上包括数据清理、数据集成、数据归约与数据转换等阶段。

    数据清理技术包括数据不一致性检测技术、脏数据识别技术、数据过滤技术、数据修正技术、数据噪声的识别与平滑技术等。

    数据集成把来自多个数据源的数据进行集成,缩短数据之间的物理距离,形成一个集中统一的(同构/异构)数据库、数据立方体、数据宽表与文件等。

    数据归约技术可以在不损害挖掘结果准确性的前提下,降低数据集的规模,得到简化的数据集。归约策略与技术包括维归约技术、数值归约技术、数据抽样技术等。

    经过数据转换处理后,数据被变换或统一。数据转换不仅简化处理与分析过程、提升时效性,也使得分析挖掘的模式更容易被理解。数据转换处理技术包括基于规则或元数据的转换技术、基于模型和学习的转换技术等。

    数据存储

    分布式存储与访问是大数据存储的关键技术,它具有经济、高效、容错好等特点。分布式存储技术与数据存储介质的类型和数据的组织管理形式直接相关。目前的主要数据存储介质类型包括内存、磁盘、磁带等;主要数据组织管理形式包括按行组织、按列组织、按键值组织和按关系组织;主要数据组织管理层次包括按块级组织、文件级组织以及数据库级组织等。

    不同的存储介质和组织管理形式对应于不同的大数据特征和应用特点。

    (1)分布式文件系统

    分布式文件系统是由多个网络节点组成的向上层应用提供统一的文件服务的文件系统。分布式文件系统中的每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。分布式文件系统中的文件在物理上可能被分散存储在不同的节点上,在逻辑上仍然是一个完整的文件。使用分布式文件系统时,无需关心数据存储在哪个节点上,只需像本地文件系统一样管理和存储文件系统的数据。

    分布式文件系统的性能与成本是线性增长的关系,它能够在信息爆炸时代有的效解决数据的存储和管理。分布式文件系统在大数据领域是最基础的,最核心的功能组件之一,如何实现一个高扩展,高性能,高可用的分布式文件系统是大数据领域最关键的问题之一。目前常用的分布式磁盘文件系统有 HDFS(Hadoop分布式文件系统)、GFS(Goolge分布式文件系统)、KFS(Kosmos distributed file system)等;常用的分布式内存文件系统有Tachyon等。

    (2)文档存储

    文档存储支持对结构化数据的访问,不同于关系模型的是,文档存储没有强制的架构。事实上,文档存储以封包键值对的方式进行存储。在这种情况下,应用对要检索的封包采取一些约定,或者利用存储引擎的能力将不同的文档划分成不同的集合,以管理数据。

    与关系模型不同的是,文档存储模型支持嵌套结构。例如,文档存储模型支持XML和JSON文档,字段的“值”又可以嵌套存储其它文档。文档存储模型也支持数组和列值键。与键值存储不同的是,文档存储关心文档的内部结构。这使得存储引擎可以直接支持二级索引,从而允许对任意字段进行高效查询。支持文档嵌套存储的能力,使得查询语言具有搜索嵌套对象的能力,XQuery就是一个例子。主流的文档数据库有MongoDB、CouchDB、Terrastore、RavenDB等。

    (3)列式存储

    列式存储将数据按行排序,按列存储,将相同字段的数据作为一个列族来聚合存储。当只查询少数列族数据时,列式数据库可以减少读取数据量,减少数据装载和读入读出的时间,提高数据处理效率。按列存储还可以承载更大的数据量,获得高效的垂直数据压缩能力,降低数据存储开销。使用列式存储的数据库产品有传统的数据仓库产品,如Sybase IQ、InfiniDB、Vertica等,也有开源的数据库产品,如Hadoop Hbase、Infobright等。

    (4)键值存储

    键值存储,即Key-Value存储,简称KV存储,它是NoSQL存储的一种方式。它的数据按照键值对的形式进行组织、索引和存储。KV存储非常适合不涉及过多数据关系和业务关系的业务数据,同时能有效减少读写磁盘的次数,比SQL数据库存储拥有更好的读写性能。键值存储一般不提供事务处理机制。主流的键值数据库产品有Redis、Apache Cassandra、Google Bigtable等。

    (5)图形数据库

    图形数据库是主要用于存储事物及事物之间的相关关系,这些事物整体上呈现复杂的网络关系,可以简单的称之为图形数据。使用传统的关系数据库技术已经无法很好的满足超大量图形数据的存储、查询等需求,比如上百万或上千万个节点的图形关系,而图形数据库采用不同的技术来很好的解决图形数据的查询,遍历,求最短路径等需求。在图形数据库领域,有不同的图模型来映射这些网络关系,比如超图模型,以及包含节点、关系及属性信息的属性图模型等。图形数据库可用于对真实世界的各种对象进行建模,如社交图谱,以反应这些事物之间的相互关系。主流的图形数据库有Google Pregel、Neo4j、Infinite Graph、DEX、InfoGrid、AllegroGraph、GraphDB、HyperGraphDB等。

    (6)关系数据库

    关系模型是最传统的数据存储模型,它使用记录(由元组组成)按行进行存储,记录存储在表中,表由架构界定。表中的每个列都有名称和类型,表中的所有记录都要符合表的定义。SQL是专门的查询语言,提供相应的语法查找符合条件的记录,如表联接(Join)。表联接可以基于表之间的关系在多表之间查询记录。表中的记录可以被创建和删除,记录中的字段也可以单独更新。关系模型数据库通常提供事务处理机制,这为涉及多条记录的自动化处理提供了解决方案。对不同的编程语言而言,表可以被看成数组、记录列表或者结构。表可以使用B树和哈希表进行索引,以应对高性能访问。

    传统的关系型数据库厂商结合其它技术改进关系型数据库,比如分布式集群、列式存储,支持XML,Json等数据的存储。

    (7)内存存储

    内存存储是指内存数据库(MMDB)将数据库的工作版本放在内存中,由于数据库的操作都在内存中进行,从而磁盘I/O不再是性能瓶颈,内存数据库系统的设计目标是提高数据库的效率和存储空间的利用率。内存存储的核心是内存存储管理模块,其管理策略的优劣直接关系到内存数据库系统的性能。基于内存存储的内存数据库产品有Oracle TimesTen、Altibase、eXtremeDB、Redis、RaptorDB、MemCached等产品。

    3、数据处理

    分布式数据处理技术一方面与分布式存储形式直接相关,另一方面也与业务数据的温度类型(冷数据、热数据)相关。目前主要的数据处理计算模型包括MapReduce计算模型、DAG计算模型、BSP计算模型等。

    (1)MapReduce分布式计算框架

    MapReduce是一个高性能的批处理分布式计算框架,用于对海量数据进行并行分析和处理。与传统数据仓库和分析技术相比,MapReduce 适合处理各种类型的数据,包括结构化、半结构化和非结构化数据,并且可以处理数据量为TB 和 PB 级别的超大规模数据。

    MapReduce分布式计算框架将计算任务分为大量的并行 Map和 Reduce 两类任务,并将Map任务部署到分布式集群中的不同计算机节点上并发运行,然后由Reduce任务对所有Map任务的执行结果进行汇总,得到最后的分析结果。

    MapReduce分布式计算框架可动态增加或减少计算节点,具有很高的计算弹性,并且具备很好的任务调度能力和资源分配能力,具有很好的扩展性和容错性。MapReduce分布式计算框架是大数据时代最为典型的,应用最广泛的分布式运行框架之一。

    最流行的MapReduce分布式计算框架是由Hadoop实现的MapReduce框架。Hadoop MapReduce基于HDFS和HBase等存储技术确保数据存储的有效性,计算任务会被安排在离数据最近的节点上运行,减少数据在网络中的传输开销,同时还能够重新运行失败的任务。Hadoop MapReduce已经在各个行业得到了广泛的应用,是最成熟和最流行的大数据处理技术。

    (2)分布式内存计算系统

    使用分布式共享内存进行计算可以有效的减少数据读写和移动的开销,极大的提高数据处理的性能。支持基于内存的数据计算,兼容多种分布式计算框架的通用计算平台是大数据领域所必需的重要关键技术。除了支持内存计算的商业工具(如SAP HANA、Oracle BigData Appliance等),Spark则是此种技术的开源实现代表,它是当今大数据领域最热门的基于内存计算的分布式计算系统。相比传统的Hadoop MapReduce批量计算模型,Spark使用DAG、迭代计算和内存计算的方式可以带来一到两个数量级的效率提升。

    (3)分布式流计算系统

    在大数据时代,数据的增长速度超过了存储容量的增长,在不远的将来,人们将无法存储所有的数据,同时,数据的价值会随着时间的流逝而不断减少,此外,很多数据涉及用户的隐私无法进行存储。对数据流进行实时处理的技术获得了人们越来越多的关注。

    数据的实时处理是一个很有挑战性的工作,数据流本身具有持续达到、速度快且规模巨大等特点,所以需要分布式的流计算技术对数据流进行实时处理。数据流的理论及技术研究已经有十几年的历史,目前仍旧是研究热点。当前得到广泛应用的很多系统多数为支持分布式、并行处理的流计算系统,比较代表性的商用软件包括IBM StreamBase和InfoSphere Streams,开源系统则包括Twitter Storm、Yahoo S4、Spark Streaming等。

    4、数据分析

    大数据分析技术包括已有数据信息的分布式统计分析技术,以及未知数据信息的分布式挖掘和深度学习技术。分布式统计分析技术基本都可藉由数据处理技术直接完成,分布式挖掘和深度学习技术则可以进一步细分为:

    (1)聚类

    聚类指将物理或抽象对象的集合分组成为由类似的对象组成的多个类的过程。它是一种重要的人类行为。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类是将数据分类到不同的类或者簇这样的一个过程,所以同一个簇中的对象有很大的相似性,而不同簇间的对象有很大的相异性。

    聚类是数据挖掘的主要任务之一。聚类能够作为一个独立的工具获得数据的分布状况,观察每一簇数据的特征,集中对特定的聚簇集合作进一步地分析。聚类还可以作为其他算法(如分类和定性归纳算法)的预处理步骤。

    聚类是数据挖掘中的一个很活跃的研究领域,传统的聚类算法可以被分为五类:划分方法、层次方法、基于密度方法、基于网格方法和基于模型方法。传统的聚类算法已经比较成功的解决了低维数据的聚类问题。但是由于实际应用中数据的复杂性,在处理许多问题时,现有的算法经常失效,特别是对于高维数据和大型数据的情况。数据挖掘中的聚类研究主要集中在针对海量数据的有效和实用的聚类方法上,聚类方法的可伸缩性、高维聚类分析、分类属性数据聚类、具有混合属性数据的聚类和非距离模糊聚类等问题是目前数据挖掘研究人员最为感兴趣的方向。

    (2)分类

    分类是指在一定的有监督的学习前提下,将物体或抽象对象的集合分成多个类的过程。也可以认为,分类是一种基于训练样本数据(这些数据已经被预先贴上了标签)区分另外的样本数据标签的过程,即另外的样本数据应该如何贴标签。用于解决分类问题的方法非常多,常用的分类方法主要有决策树,贝叶斯,人工神经网络,K-近邻,支持向量机,逻辑回归,随机森林等方法。 决策树是用于分类和预测的主要技术之一,决策树学习是以实例为基础的归纳学习算法,它着眼于从一组无次序、无规则的实例中推理出以决策树表示的分类规则。构造决策树的目的是找出属性和类别间的关系,用它来预测将来未知类别的记录的类别。它采用自顶向下的递归方式,在决策树的内部节点进行属性的比较,并根据不同属性值判断从该节点向下的分支,在决策树的叶节点得到结论。

    贝叶斯(Bayes)分类算法是一类利用概率统计知识进行分类的算法,如朴素贝叶斯(Naive Bayes)算法。这些算法主要利用Bayes定理来预测一个未知类别的样本属于各个类别的可能性,选择其中可能性最大的一个类别作为该样本的最终类别。

    人工神经网络(Artificial Neural Networks,ANN)是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。在这种模型中,大量的节点(或称“神经元”,或“单元”)之间相互联接构成网络,即“神经网络”,以达到处理信息的目的。神经网络通常需要进行训练,训练的过程就是网络进行学习的过程。

    训练改变了网络节点的连接权的值使其具有分类的功能,经过训练的网络就可用于对象的识别。 目前,神经网络已有上百种不同的模型,常见的有BP网络、径向基RBF网络、Hopfield网络、随机神经网络(Boltzmann机)、竞争神经网络(Hamming网络,自组织映射网络)等。但是当前的神经网络仍普遍存在收敛速度慢、计算量大、训练时间长和不可解释等缺点。

    k-近邻(kNN,k-Nearest Neighbors)算法是一种基于实例的分类方法。该方法就是找出与未知样本x距离最近的k个训练样本,看这k个样本中多数属于哪一类,就把x归为那一类。k-近邻方法是一种懒惰学习方法,它存放样本,直到需要分类时才进行分类,如果样本集比较复杂,可能会导致很大的计算开销,因此无法应用到实时性很强的场合。

    支持向量机(SVM,Support Vector Machine)是Vapnik根据统计学习理论提出的一种新的学习方法,它的最大特点是根据结构风险最小化准则,以最大化分类间隔构造最优分类超平面来提高学习机的泛化能力,较好地解决了非线性、高维数、局部极小点等问题。对于分类问题,支持向量机算法根据区域中的样本计算该区域的决策曲面,由此确定该区域中未知样本的类别。 逻辑回归是一种利用预测变量(数值型或离散型)来预测事件出现概率的模型,主要应用于生产欺诈检测,广告质量估计,以及定位产品预测等。

    (3)关联分析

    关联分析是一种简单、实用的分析技术,就是发现存在于大量数据集中的关联性或相关性,从而描述了一个事物中某些属性同时出现的规律和模式。关联分析在数据挖掘领域也称为关联规则挖掘。

    关联分析是从大量数据中发现项集之间有趣的关联和相关联系。关联分析的一个典型例子是购物篮分析。该过程通过发现顾客放人其购物篮中的不同商品之间的联系,分析顾客的购买习惯。通过了解哪些商品频繁地被顾客同时购买,这种关联的发现可以帮助零售商制定营销策略。其他的应用还包括价目表设计、商品促销、商品的排放和基于购买模式的顾客划分。

    关联分析的算法主要分为广度优先算法和深度优先算法两大类。应用最广泛的广度优先算法有Apriori,AprioriTid,AprioriHybrid,Partition,Sampling,DIC(Dynamic Itemset Counting)等算法。主要的深度优先算法有FP-growth,Eclat(Equivalence CLAss Transformation),H-Mine等算法。

    Apriori算法是一种广度优先的挖掘产生布尔关联规则所需频繁项集的算法,也是最著名的关联规则挖掘算法之一。FP-growth算法是一种深度优先的关联分析算法,于2000年由Han Jiawei等人提出,FP-growth算法基于频繁模式树(Frequent Pattern Tree,简称为FP-tree)发现频繁模式。

    (4)深度学习

    深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。深度学习(DL,Deep Learning)的概念由Hinton等人于2006年提出,是一种使用深层神经网络的机器学习模型。深层神经网络是指包含很多隐层的人工神经网络,它具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类。

    同机器学习方法一样,深度机器学习方法也有监督学习与无监督学习之分。

    不同的学习框架下建立的学习模型很是不同。例如,卷积神经网络(Convolutional neural networks,简称CNNs)就是一种深度的监督学习下的机器学习模型,而深度置信网(Deep Belief Nets,简称DBNs)就是一种无监督学习下的机器学习模型。

    当前深度学习被用于计算机视觉,语音识别,自然语言处理等领域,并取得了大量突破性的成果。运用深度学习技术,我们能够从大数据中发掘出更多有价值的信息和知识。

    5、数据可视化

    数据可视化(Data Visualization)运用计算机图形学和图像处理技术,将数据换为图形或图像在屏幕上显示出来,并进行交互处理。它涉及到计算机图形学、图像处理、计算机辅助设计、计算机视觉及人机交互等多个技术领域。数据可视化概念首先来自科学计算可视化(Visualization in Scientific Computing),科学家们不仅需要通过图形图像来分析由计算机算出的数据,而且需要了解在计算过程中数据的变化。

    随着计算机技术的发展,数据可视化概念已大大扩展,它不仅包括科学计算数据的可视化,而且包括工程数据和测量数据的可视化。学术界常把这种空间数据的可视化称为体视化(Volume Visualization)技术。近年来,随着网络技术和电子商务的发展,提出了信息可视化(Information Visualization)的要求。通过数据可视化技术,发现大量金融、通信和商业数据中隐含的规律信息,从而为决策提供依据。这已成为数据可视化技术中新的热点。

    清晰而有效地在大数据与用户之间传递和沟通信息是数据可视化的重要目标,数据可视化技术将数据库中每一个数据项作为单个图元元素表示,大量的数据集构成数据图像,同时将数据的各个属性值以多维数据的形式表示,可以从不同的维度观察数据,从而对数据进行更深入的观察和分析。

    数据可视化的关键技术包括:

    (1)数据信息的符号表达技术。除了常规的文字符号和几何图形符号,各类坐标、图像阵列、图像动画等符号技术都可以用来表达数据信息。特别是多样符号的综合使用,往往能让用户获得不一样的沟通体验。各数据类型具体的符号表达技术形式包括各类报表、仪表盘、坐标曲线、地图、谱图、图像帧等。

    (2)数据渲染技术。例如各类符号到屏幕图形阵列的2D平面渲染技术、3D立体渲染技术等。渲染关键技术还和具体媒介相关,例如手机等移动终端上的渲染技术等。

    (3)数据交互技术。除了各类PC设备和移动终端上的鼠标、键盘与屏幕的交互技术形式,可能还包括语音、指纹等交互技术。

    (4)数据表达模型技术。数据可视化表达模型描述了数据展示给用户所需要的语言文字和图形图像等符号信息,以及符号表达的逻辑信息和数据交互方式信息等。其中数据矢量从多维信息空间到视觉符号空间的映射与转换关系,是表达模型最重要的内容。此外,除了数据值的表达技术,数据趋势、数据对比、数据关系等表达技术都是表达模型中的重要内容。

    大数据可视化与传统数据可视化不同。传统数据可视化技术和软件工具(如BI)通常对数据库或数据仓库中的数据进行抽取、归纳和组合,通过不同的展现方式提供给用户,用于发现数据之间的关联信息。而大数据时代的数据可视化技术则需要结合大数据多类型、大体量、高速率、易变化等特征,能够快速的收集、筛选、分析、归纳、展现决策者所需要的信息,支持交互式可视化分析,并根据新增的数据进行实时更新。

    数据可视化技术在当前是一个正在迅速发展的新兴领域,已经出现了众多的数据可视化软件和工具,如Tableau、Datawatch、Platfora、R、D3.js、Processing.js、Gephi、ECharts、大数据魔镜等。许多商业的大数据挖掘和分析软件也包括了数据可视化功能,如IBM SPSS、SAS Enterprise Miner等。

    6、大数据安全与隐私

    大数据时代面临的挑战

    大数据的应用会带来巨大社会价值和商业利益,受价值利益驱动,大数据系统也必然会面临大量而且复杂的风险。举例来说,如果某一大数据系统产生的价值足以左右公司的发展,那么它所面临的风险就可能是一个公司层面价值的角力,小至个人、大至国家也是如此。大数据系统同时是复杂的,由传统的信息存储检索变为复杂的信息技术系统,进而可能是庞大的社会工程,由此也带来了诸多安全及隐私方面的挑战。

    大数据的安全性已上升到国家战略层面。在大数据时代,信息化已完全深入到国民经济与国防建设的方方面面,从智能家居、智慧城市甚至到智慧地球,个人、企业、团体等的海量数据为国家建设和决策提供了宏观的数据依据,大数据的安全问题将会越来越多地对国家战略产生直接或间接的影响。

    大数据的价值体现是一个从隐性价值到显性价值的动态过程。有两个关键性因素影响大数据的价值体现:数据“由量变到质变”的动态演变以及相关数据处理技术的不断升级。单个的数据记录对大数据结果并无太大影响,只有数据记录集合的数据量积累到一定程度时,数据才有可能“被挖掘”从而体现其价值。随着数据处理技术的不断发展,当今看似“杂乱无序”的数据,将来会变成一座“金矿”。现有的信息安全管理体系重点保护数据的显性价值,对数据的隐形价值及动态性管理及防护不足。

    大数据的信息窃取手段更加隐蔽和多元化。不法分子从大量的公开数据中通过数据关联手段可以获取相关个体的隐性数据,从而导致个人的隐私泄露。通过分析金融交易数据、交通运输信息包含轨迹信息,可以得知一个城市或地区的经济活动状态和趋势。

    大数据独有的“数据污染”问题会造成严重的社会资源浪费。一些恶意×××型的“数据污染”会影响到企业、团体乃至国家政治及经济方面的决策,从而导致严重的后果。

    针对安全和隐私的考虑

    大数据的商业价值是毋庸置疑的。通过大数据挖掘,企业所表现出控制力量远超以往。数据开始成为企业的核心资产,甚至企业的金矿就蕴含在数据之中,而数据质量和数据治理正成为企业掘金的重要手段和工具,是企业能否把握大数据机遇的重要抓手。

    然而,数据质量的提升和数据治理的优化,又不完全取决于企业自身的努力。大数据商业价值在于不断开发,而大数据应用作为新业态、新模式、新应用,痛点和难点不仅在于技术,更重要的是无论是数据采集、整理和挖掘,还是数据产品的推广、应用,企业都将面临法律的天花板,而隐私问题无疑是诸多法律问题中的重要一环。

    在互联网时代人们似乎是觉得自己的隐私受到了威胁,而移动互联网与大数据时代无疑加深了这种威胁。大数据时代,数据被奉为一切服务的起点与终点。人们似乎生活在一个360度无死角监控的环境里,周边仿佛有千万双眼睛在盯着你,以全景式方式洞察着你,同时又有从四面八方涌来的信息将你完全淹没其中。

    对于置身其中的用户而言,一方面渴望大数据时代,给自己带来更为贴心便捷的服务;另一方面,又时刻担忧着自己的隐私安全遭受侵犯。这种焦虑从前年谷歌眼镜在发布过程中屡屡受挫就能体现,即使谷歌眼镜事实上什么也没有做,还是无法阻挡人们对数据安全的担忧。

    对于政府管理部门而言,一方面政府已经意识到数据保护和隐私保护方面的制度不完善,并开始不断强调个人信息和隐私保护的重要性,另一方面政府似乎仍然没有从传统社会的治理方式与管控思维中解脱出来,制度上的滞后带来的不仅是灰色地带,还有风险。

    于大数据时代而言,这在本质上,就是一场商家与商家之间,用户与商家之间、政府与商家之间的隐私之战。对于商家来说,谁更靠近用户的隐私,谁就占据更多的机会;于用户而言,保护隐私,似乎从一开始就是个伪命题;于政府而言,安全与发展似乎总是难以抉择。

    普林斯顿大学的计算机科学家阿尔文德•纳拉亚南(Arvind Narayanan)称,只要有合理的商业动机来推动数据挖掘的进程,任何形式的隐私都是“算法上不可能”(algorithmically impossible)的。我们无法回避这样的事实,即数据 绝不是中立的,它很难保持匿名。

    大数据与隐私之间的关系,如何进行平衡,如何把握尺度,这已成为各国立法、司法和执法部门面临的共同难题,当然也是企业不得不思考的问题。

    目前欧盟模式和美国模式是个人数据保护方面全球最有影响的两种模式。欧盟模式是由国家主导的立法模式,国家通过立法确定个人数据保护的各项基本原则和具体法律规定。早在1981年欧盟理事会通过了《有关个人数据自动化处理的个人保护协定》,1995年欧盟通过了《关于与个人数据处理相关的个人数据保护及此类数据自由流动的指令》,欧盟后来又制定了一系列个人数据保护相关的法律法规。美国是行业自律模式的倡导者,通过行业内部的行为规则、规范、标准和行业协会的监督,实现行业内个人数据保护的自我约束。行业自律模式是在充分保证个人数据自由流动的基础上保护个人数据,从而保护行业利益。

    我国对于个人数据保护的立法起步较晚,目前还没有专门的《个人信息保护法》。目前国内关于个人数据相关的法律法规主要是2012年后颁布的三部:①2012年全国人大常委会发布的《关于加强网络信息保护的决定》;

    ②2013年工信部发布的《信息安全技术公共及商用服务信息系统个人信息保护指南》(这份标准不具有法律约束力);

    ③2013年工信部发布的《电信和互联网用户个人信息保护规定》。在立法缺位的情况下,容易出现“守法成本高、违法成本低”的怪相。

    今年国家在个人数据保护立法方面有很多新举措,国内个人数据保护的立法在逐步加强。 3月15日生效的《网络交易管理办法》进一步规定了网络交易中个人信息保护的要求。 3月15日生效的新《消费者权益保费法》授予工商部门对“侵害消费者个人信息依法得到保护的权利”的执法权。

    10月10日×××发布的《关于审理利用信息网络侵害人身权益民事纠纷案件适用法律若干问题的规定》明确了用户个人信息及隐私被侵犯的诉权。

    10月27国家网信办表示将出台App应用程序发展管理办法,监管移动应用行业的各种乱象。

    11月3日全国人大常委会初次审议《×××刑法修正案(九)(草案)》,并向社会公开征求意见;《草案》包括出售、非法提供公民个人信息罪的修正案。

    11月4日工信部发布《通信短信息服务管理规定(征求意见稿)》向社会公开征求意见。《意见稿》规定,任何组织或者个人不得将采用人工收集、在线自动收集、数字任意组合等手段获得的他人的电话号码用于出售、共享和交换,或者向通过上述方式获得的电话号码发送短信息。

    从大数据关键技术来看,其数据的收集、存储、处理分析、可视化呈现等环节面临着不同的风险、安全和隐私需求。

    (1)数据收集

    根据数据来源不同,大体可分为两类,一是社会团体对自身数据的采集,如企业自己的生产、运营等数据;二是社会团体对他人数据的采集,如本企业对其它企业、社会公众、第三方系统等的数据采集。对于前者,企业拥有正当地采集、处置权利,但对于后者,牵涉到他方甚至多方,数据对企业存在潜在价值而进行采集的同时,是否会影响他方的利益应在考虑范围之内。尤其在双方不对等的情况下,如企业对个人,被采集方应保留被告知甚至授权的权利,数据采集行为应该接受社会公信力量(如政府、行业协会等)的监管和公示,以保证被采集方的利益不受侵害,限制企业不收集、统计敏感信息以保护被采集方的隐私信息不受侵犯。

    同时,数据收集过程中,应注意对数据来源进行甄别和验证,保证数据的真实性和有效性。

    (2)数据存储

    已采集并存储下来的数据,是真正的价值所在,也是大数据一切行为和价值的基础。对于此,可以参考传统的信息安全手段,以保证数据的可用性、完整性、私密性为其目标。当前已有的技术手段可提供相应的安全保障,可用性通过冗余设置,完整性有校验技术;对于私密性,因大数据体量巨大的特性,传统的加密技术会牺牲大量的计算资源,可行性较差,应重点使用访问控制技术和安全审计功能来保障安全。由于大数据通常的体量巨大,很难被完全复制,因此可以通过可行的审计途径及时发现恶意行为来提高数据的安全性。

    (3)数据处理分析

    处理分析行为直接对大数据执行读写操作,应设置完备的权限管理,进行明确地授权后才能完成相应操作。具体到大数据分析,不同的分析策略会产生不同的结果和价值,通过策略制定、执行过程进而获取结果,策略的有效性直接关联到结果的可用性,策略制定阶段,应考虑通过应用不同的策略对结果进行相互验证,以保证分析结果的正确可用。同时,分析策略制定也是一个优化的过程,通过策略的优化以提高计算性能,可以有效降低计算成本。

    (4)数据可视化呈现

    大数据经过分析处理,对结果进行可视化呈现。经大数据系统处理后的结果直接体现了数据的价值,但同时也框定了仅对特定需求存在价值,数据所有者应当对计算结果进行评估,评估其有效性、可用性,如必要,进行相应的优化调整。同时应采取必要的安全策略,如访问控制、认证授权等对分析结果进行保护。

    综合来说,大数据系统安全体系的建立是一个系统性的工程,需要国家从法律法规、行业规范以及技术手段等多方面对个人隐私数据进行监管和保护。数据所有者在法律法规框架内拥有数据的处置权利。对于社会公共数据收集和使用,在企业成为数据的合法拥有者之前,应需要承担相应的社会责任作为其成本。具体而言,以个人隐私保护为例,应考虑是否授权企业对个人隐私内容进行收集和使用;大数据的收集和使用,是否可以不包含个人隐私内容;对社会公众行为的分析和获益,是否需要承担社会成本。

    当前我国的法律对隐私权的保护虽然没有做出明确直接的保护性规定,但却间接地从其他方面对公民的隐私权不容侵犯给予了确认。我国刑法主要是通过追究侵害隐私权行为刑事责任来实现对隐私权的保护。国外对个人数据的隐私权保护有统一专业的法律和法规。新版欧盟数据保护法规定在欧盟运营的企业一旦被发现不当利用所掌握的包括客户、供应商或自己员工在内的个人信息,将面临最严厉的处罚,违反该法规的公司将面临最多相当于其全球营业额5%的罚款。美国除了采用网络隐私权保护法律法规外,还倾向采用行业自律手段。

    面对大数据安全方面的复杂性,2015年美国国家标准与技术研究院(NIST)大数据工作组下属安全与隐私小组针对大数据安全与隐私发布了第一版框架性草案。该草案从安全与隐私的维度对大数据的几个关键特征:多样性、规模性、真实性、高速性、有效性进行了阐述。

    7、参考架构下的管理能力评估

    参考架构以“一个概念体系,二个价值链维度”,描绘了大数据的整个生态体系。参考架构为从事大数据相关应用的每个个体组织提供了一个通用的大数据应用系统框架,而检验并不断提升每个组织大数据应用高效运转的一个有效方式,是建立一套遵循参考架构的标准化的能力评估体系,帮助每个组织对照评估指标和成熟阶段进行评价和不断改进,最终实现组织的大数据价值最大化。

    作为个体组织评估其大数据管理能力的水平,可以沿用参考架构的思想,借鉴Gartner、IBM、CMMI等企业和机构的研究成果,按照参考架构中的主要角色设定功能域,即一级评估指标,再针对各功能域中的主要活动事项提出相应的二级评估指标,后续可以细化进一步的具体评估指标项并设定分项权重,最终形成完整的大数据管理能力成熟度评价模型。

    大数据参考架构和关键技术

    参考架构下的管理能力评估

    大数据管理能力评估模型是针对一个组织的大数据管理现状进行评估的框架,通过量化的评估结果,组织可以清楚的定义大数据管理当前所处的发展阶段以及和未来发展方向之间的差距。

    大数据管理能力成熟度阶段分级参考如图所示:

    大数据参考架构和关键技术

    大数据管理能力成熟度阶段分级参考图

    8、参考架构下的开源软件

    大数据开源技术促进了大数据生态系统的蓬勃发展,为组织或企业构建大数据系统提供了丰富可供选择的开源软件。这些开源的大数据生态系统从某些方面提供了解决构建大数据系统技术问题的解决方案,对大数据标准的制定具有积极影响。然而,从大数据系统架构角度来看,这些开源软件从架构层次及功能上还缺少明晰的分类方法,给企业在构建大数据系统时选择哪些开源软件造成了困惑。而大数据参考架构基于构件层级分类体系和二个价值链维度,提供了一个通用的大数据系统参考架构,可用于对现有大数据开源软件进行分类和映射。

    通过研究收集大数据生命周期中各环节(提供、收集、存储、预处理、分析挖掘、可视化、访问、消费等)的众多开源软件,结合大数据标准参考架构的构件层级分类法和价值链维度,我们总结并制作了大数据开源软件分布图,如图所示。该分布图一方面体现了这些开源软件的分类及其对大数据参考架构的影响;另一方面,也为企业在构建遵循大数据标准的大数据应用系统时可以方便地找到并选择适合的开源软件。

    大数据参考架构和关键技术

    如有大数据相关的

    转载于:https://blog.51cto.com/13963095/2173668

    展开全文
  • 目录:什么是大数据Hadoop介绍-HDFS、MR、Hbase大数据平台应用举例-腾讯公司的大数据平台架构“就像望远镜让我们能够感受宇宙,显微镜让我们能够观测微生物一样,大数据正在改变我们的生活以及理解世界的方式……”...

    目录:

    • 什么是大数据
    • Hadoop介绍-HDFS、MR、Hbase
    • 大数据平台应用举例-腾讯
    • 公司的大数据平台架构

    “就像望远镜让我们能够感受宇宙,显微镜让我们能够观测微生物一样,大数据正在改变我们的生活以及理解世界的方式……”。

    大数据的4V特征-来源

    深入浅出解析大数据平台架构

    公司的“大数据”

    随着公司业务的增长,大量和流程、规则相关的非结构化数据也爆发式增长。比如:

    1、业务系统现在平均每天存储20万张图片,磁盘空间每天消耗100G;

    2、平均每天产生签约视频文件6000个,每个平均250M,磁盘空间每天消耗1T;

    ……

    三国里的“大数据”

    “草船借箭”和大数据有什么关系呢?对天象的观察是基于一种对风、云、温度、湿度、光照和所处节气的综合分析这些数据来源于多元化的“非结构”类型,并且数据量较大,只不过这些数据输入到的不是电脑,而是人脑并最终通过计算分析得出结论。

    深入浅出解析大数据平台架构

    Google分布式计算的三驾马车

    • Google File System用来解决数据存储的问题,采用N多台廉价的电脑,使用冗余(也就是一份文件保存多份在不同的电脑之上)的方式,来取得读写速度与数据安全并存的结果。
    • Map-Reduce说穿了就是函数式编程,把所有的操作都分成两类,map与reduce,map用来将数据分成多份,分开处理,reduce将处理后的结果进行归并,得到最终的结果。
    • BigTable是在分布式系统上存储结构化数据的一个解决方案,解决了巨大的Table的管理、负载均衡的问题。

    Hadoop体系架构

    深入浅出解析大数据平台架构

     

    Hadoop核心设计

    深入浅出解析大数据平台架构

     

    HDFS介绍-文件读流程

    深入浅出解析大数据平台架构

     

    Client向NameNode发起文件读取的请求。
    NameNode返回文件存储的DataNode的信息。
    Client读取文件信息。
    HDFS介绍-文件写流程
    深入浅出解析大数据平台架构
    Client向NameNode发起文件写入的请求。
    NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。
    Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。

    MapReduce——映射、化简编程模型

    输入数据->Map分解任务->执行并返回结果->Reduce汇总结果->输出结果

    深入浅出解析大数据平台架构

     

    Hbase——分布式数据存储系统

    深入浅出解析大数据平台架构

     

    Client:使用HBase RPC机制与HMaster和HRegionServer进行通信

    Zookeeper:协同服务管理,HMaster通过Zookeepe可以随时感知各个HRegionServer的健康状况

    HMaster: 管理用户对表的增删改查操作

    HRegionServer:HBase中最核心的模块,主要负责响应用户I/O请求,向HDFS文件系统中读写数据

    HRegion:Hbase中分布式存储的最小单元,可以理解成一个Table

    HStore:HBase存储的核心。由MemStore和StoreFile组成。

    HLog:每次用户操作写入Memstore的同时,也会写一份数据到HLog文件

    还有哪些NoSQL产品?

    深入浅出解析大数据平台架构

     

    为什么要使用NoSQL?

    一个高并发网站的DB进化史

    深入浅出解析大数据平台架构

    关系模型>聚合数据模型的转换-基本变换

    深入浅出解析大数据平台架构

     

    关系模型>聚合数据模型的转换-内嵌变换

    深入浅出解析大数据平台架构

     

    关系模型>聚合数据模型的转换-分割变换

    深入浅出解析大数据平台架构

     

    关系模型>聚合数据模型的转换-内联变换

     

    深入浅出解析大数据平台架构

    Hadoop2.0

    MapReduce:
    JobTracker:协调作业的运行。
    TaskTracker:运行作业划分后的任务。

    深入浅出解析大数据平台架构
    大数据的技术领域
    深入浅出解析大数据平台架构
    腾讯大数据现状(资料来自2014.4.11 腾讯分享日大会)
    深入浅出解析大数据平台架构
      深入浅出解析大数据平台架构
    腾讯大数据平台产品架构
    深入浅出解析大数据平台架构
    腾讯大数据平台与业务平台的关系
    深入浅出解析大数据平台架构
    公司数据处理平台的基础架构
    深入浅出解析大数据平台架构
    公司大数据平台架构图
    深入浅出解析大数据平台架构
    应用一数据分析
    深入浅出解析大数据平台架构
    应用二视频存储
      深入浅出解析大数据平台架构
    应用三离线日志分析
    深入浅出解析大数据平台架构
    应用五在线数据分析
    参考资料:京东基于Samza的流式计算实践
    深入浅出解析大数据平台架构
    展开全文
  • 12 大数据平台基础架构和常用处理工具更多干货分布式实战(干货)spring cloud 实战(干货)mybatis 实战(干货)spring boot 实战(干货)React 入门实战(干货)构建中小型互联网企业架构(干货)python 学习持续...

    12 大数据平台基础架构和常用处理工具

    更多干货

    一、概述

    • 数据在线分析处理和常用工具
    • 大数据离线处理和常用工具
    • OLAP 和 OLTP 处理和常用处理工具

    二、数据在线分析处理和常用工具

    1、Flume 介绍

    Flume 专注于大数据的收集和传输,用来解决在线分析处理特点,数据源源不断的到来的问题。类似的大数据开源系统有 Logstash 和 Fluentd 。

    三者区别如下:

    • Logstash 主要 和 Elasticsearch 、 Kibana 结合使用,俗称 ELK 框架; Logstash 主要负责将数据源的数据转换成 Elasticsearch 认识的索引结构供 Kibana 查询
    • Fluentd 当前的使用者已经很少,逐渐被功能更强大的 Flume 代替了
    • Flume 能够支持多种数据源并且输出到多种输出源,并且支持多种格式的数据

    image

    架构图中 Source 用来连接输出源,Sink 用来连接输出源,Channel 是 Flume 内部数据传输通道(主要包括 Memory Channel 和 File Channel)。

    其中 Source 连接的输入源可以但不限于:

    Avro 
    Thrift  
    Exec(unix command  output)
    JMS (Java Message Service)
    Kafka 
    NetCat (可以使用 nc –lk port 测试)
    Syslog
    Custom 
    

    其中 Sink 连接的输出源可以但不限于:

    Hdfs
    Hive  
    Avro 
    Thrift 
    File Roll
    Hbase
    ElasticSearch (提供的功能和 Logstash 一样,但是不如Logstash 丰富,大多数时候需要自己构造 ElasticSearch  文档和索引)
    Kafka 
    Custom
    

    Flume 也能多个 Agent 相连形成 Agent 链

    image

    2、Spark 和 Storm 介绍

    Spark (Spark Streaming) 和 Storm 专注于将数据按照时间窗口进行聚合和处理。用来解决在线分析处理特点,数据需要尽快的得到处理的问题。所以经常被称作流式处理框架。

    两者的区别如下:

    • Storm 提供比 Spark 更加实时的流式处理;
    • Spark 提供比Storm更加多的服务,Spark 逐渐已经形成类似 Hadoop 的生态圈了。

    目前Spark 生态圈包含的生态系统如下(而且还正在逐渐的壮大中):

    image

    目前 Spark 有三种集群管理模式:

    • Standalone:一种简单的集群管理,其包括一个很容易搭建集群的Spark;
    • Apache Mesos :一种通用的集群管理,可以运行Hadoop MapReduce和服务应用的模式;
    • Hadoop YARN : Hadoop2.0中的资源管理模式。

    其中第二种和第三种都是使用 Spark 做任务管理和调度,Mesos 和 Yarn 做资源管理和调度

    Spark 工作组件

    image

    Strom 结构图

    image

    Storm 的工作组件:

    • topology:一个拓扑是一个个计算节点组成的图,每个节点包换处理的逻辑,节点之间的连线表示数据流动的方向;
    • spout:表示一个流的源头,产生tuple;
    • bolt: 处理输入流并产生多个输出流,可以做简单的数据转换计算,复杂的流处理一般需要经过多个bolt进行处理。

    Strom 拓扑topology的组成

    image

    image

    3、HBase 介绍

    HBase 专注于大数据存储和提供查询,用来解决在线分析处理特点,数据经过处理后数据量依然巨大的存储和展现问题。类似的大数据开源系统有 Cassandra 。

    两者区别如下:

    • Cassandra 满足可用性和分区容忍性,允许数据的不一致(不同客户端可能看到不一样的情况)、 Cassandra 提供了类似 SQL 的 CQL 查询语言,查询方便;
    • HBase 满足一致性和分区容忍性,拥有强大的记录集一致性。HBase不支持 SQL 需要使用者部署第三方服务来支持 SQL (如 Apache Phoenix);

    image

    组成部件说明:

    • Client:使用HBase RPC机制与HMaster和HRegionServer进行通信;

    • Zookeeper: 存储hbase:meta 表等元数据信息;HRegionServer把自己以Emphedral方式注册到Zookeeper中,HMaster随时感知各个HRegionServer的健康状况;Zookeeper避免HMaster单点问题;

    • HMaster: 主要负责Table和Region的管理工作:

        管理用户对表的增删改查操作
        管理HRegionServer的负载均衡,调整Region分布
        Region Split后,负责新Region的分布
        在HRegionServer停机后,负责失效HRegionServer上Region迁移
    
    

    HRegionServer:HBase中最核心的模块,主要负责响应用户I/O请求,向HDFS文件系统中读写数据:

       HRegionServer管理一些列HRegion对象;
       每个HRegion对应Table中一个Region,HRegion由多个HStore组成;
       每个HStore对应Table中一个Column Family的存储;
    

    image

    Region的 Split 和 StoreFile 的 Compact:

    Client写入 -> 存入MemStore,一直到MemStore满 -> Flush成一个StoreFile,直至增长到一定阈值 -> 触发Compact合并操作 -> 多个StoreFile合并成一个StoreFile,同时进行版本合并和数据删除 -> 当StoreFiles Compact后,逐步形成越来越大的StoreFile -> 单个StoreFile大小超过一定阈值后,触发Split操作,把当前Region Split成2个Region,Region会下线,新Split出的2个孩子Region会被HMaster分配到相应的HRegionServer 上,使得原先1个Region的压力得以分流到2个Region上。�由此过程可知,HBase只是增加数据,有所得更新和删除操作,都是在Compact阶段做的,所以,用户写操作只需要进入到内存即可立即返回,从而保证I/O高性能;

    三、大数据离线处理和常用工具

    1、Hdfs 介绍

    Hdfs 是一种分布式文件系统,和任何文件系统一样 Hdfs 提供文件的读取,写入,删除等操作。Hdfs 是能够很好的解决离线处理中需要存储大量数据的要求。Hdfs和本地文件系统的区别如下:

    • Hdfs 不支持随机读写;
    • Hdfs 是分布式文件系统,支持数据多备份;

    Hdfs 多备份数据存放策略: 第一个副本放在和client所在的node里(如果client不在集群范围内,则这第一个node是随机选取的,当然系统会尝试不选择哪些太满或者太忙的node);第二个副本放置在与第一个节点不同的机架中的node中(随机选择);第三个副本和第二个在同一个机架,随机放在不同的node中。如果还有更多的副本就随机放在集群的node里。

    image

    客户端读取数据流程图

    image

    客户端写入数据流程图

    image

    2、MapReduce 介绍

    MapReduce 是一种分布式批量计算框架,分为 Map 阶段和 Reduce 阶段。 MapReduce 能够很好的解决离线处理中需要进行大量计算的要求。 MapReduce 从出现到现在经历了第一代 MapReduce v1 和 第二代 MapReduce Yarn。

    Yarn 框架相对于老的 MapReduce 框架有以下优势:

    • 减小了 JobTracker的资源消耗,之前JobTracker 既负责资源分配,也负责任务监控,Yarn 将这两项任务分别交给了 ResourceManager 和 ApplicationMaster  ,减少了之前 JobTracker 单点失败的风险;

    • MRv1 将资源分别 Map slot 和 Reduce slot 而且相互之前不能使用,Yarn将资源分别CPU、内存,相互之前能够通用,更加灵活也更加合理;

    image

    3、Hive 介绍

    Hive 是一种数据仓库,Hive 中的数据存储于文件系统( 大部分使用 Hdfs),Hive 提供了方便的访问数据仓库中数据的 HQL 方法,该方法将 SQL 翻译成MapReduce。 能够很好的解决离线处理中需要对批量处理结果的查询。 Hive 将元数据存放在 metastore 中, Hive 的 metastore 有三种工作方式:

    • 内嵌Derby方式: 在同一时间只能有一个进程连接使用数据库;
    • Local方式 : 使用本地 Mysql 数据库存储元数据;
    • Remote方式: 使用远程已经搭建完成的 Mysql 数据库存储元数据;

    image

    四、OLAP 和 OLTP处理和常用工具

    OLAP 和 OLTP 特点

    • OLAP (联机分析处理) 和 OLTP (联机事务处理) 在查询方面的特点:
    • OLTP 单次查询返回数据量小,但是经常会涉及服务器端简单的聚合操作,要求查询响应速度快,一般应用于在线处理;
    • OLAP 单次查询返回数据量巨大,服务器端进行的处理复杂,经常包含上卷(从细粒度数据向高层的聚合)、下钻(将汇总数据拆分到更细节的数据)类似的操作;

    Elasticsearch 介绍

    Elasticsearch 是一种基于 文档 的 底层使用 Lucene 进行检索的分布式NoSql 集群。Elasticsearch 检索大量文档类数据响应速度很快,更够为 在线 OLTP 提供支持。类似的大数据开源系统有 Solr。

    两者的区别如下

    • Elasticsearch是分布式的。不需要其他组件,分发是实时的,被叫做”Push replication” 并且完全支持 Apache Lucene 的接近实时的搜索;
    • 建立索引时,搜索效率下降,实时索引搜索效率不高;
    • 随着数据量的增加,Solr的搜索效率会变得更低,而Elasticsearch却不会有明显变化

    所以, Solr的架构不适合实时搜索的应用,也就不适合 OLTP 处理

    image

    Impala 介绍

    Impala 是 Cloudera 公司主导开发的新型查询系统,它提供 SQL 语义,能查询存储在 Hadoop 的 Hdfs 和 Hbase 中的 PB 级大数据。已有 的 Hive 系统虽然也提供了 SQL 语义,但由于 Hive 底层执行使用的是 MapReduce 引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之 下,Impala 的最大特点就是它的快速。

    所以, Impala 使得在 TB 甚至 PB 级数据上进行 OLTP 分析成为可能。

    image

    Impala 主要通过以下两种技术实现快速查询大量数据:

    • 实现了嵌套型数据的列存储;
    • 使用了多层查询树,使得任务可以在数千个节点上并行执行和聚合结果;

    列存储可以减少查询时处理的数据量,有效提升 查询效率。多层查询树则借鉴了分布式搜索引擎的设计,查询树的根节点负责接收查询,并将查询分发到下一层节点,底层节点负责具体的数据读取和查询执行,然后将结果返回上层节点。

    Kylin 介绍

    Kylin 是由国人作为主要贡献者的一个旨在对 Hadoop 环境下分析流程进行加速、且能够与 SQL 兼容性工具顺利协作的解决方案,目前 Kylin 已经成功将SQL接口与多维分析机制(OLAP)引入 Hadoop,旨在对规模极为庞大的数据集加以支持。

    Kylin 能够在大数据分析领域实现以下各项特性:

    • 规模化环境下的极速 OLAP 引擎: 削减 Hadoop 环境中处理超过百亿行数据时的查询延迟时间;
    • Hadoop上的 ANSI SQL 接口: Kylin 能够在 Hadoop 之上提供 ANSI SQL 并支持大部分 ANSI SQL查询功能;
    • 利用 OLAP cube(立方体)对数百亿行数据进行查询;

    image

    Kylin 的大体设计思路:

    • 从Hive当中读取数据(这些数据被保存在HDFS之上);
    • 运行Map Reduce任务以实现预计算 ;
    • 将cuba数据保存在HBase当中 
    • 利用Zookeeper进行任务协调
    展开全文
  • 大数据架构详解电子书全
  • 什么是大数据Hadoop介绍-HDFS、MR、Hbase大数据平台应用举例-腾讯公司的大数据平台架构 “就像望远镜让我们能够感受宇宙,显微镜让我们能够观测微生物一样,大数据正在改变我们的生活以及理解世界的方式……”。 ...
  • 大数据架构指南

    2020-07-05 17:03:42
    资源名称:大数据架构指南内容简介:如果你是一名IT工程师,CTO希望你在一周内提交一份公司未来IT系统基础架构的初步建议;如果你是一位IT营销人员,客户需要你在一周内向他汇报未来大数据系统的大致技术方向;...
  • 近年来,随着IT技术与大数据、机器学习、算法方向的不断发展,越来越多的企业都意识到了数据存在的价值,将数据作为自身宝贵的资产进行管理,利用大数据和机器学习能力去挖掘、识别、利用数据资产。...
  • 大数据架构和模式

    2016-03-14 21:34:53
    第 1 部分: 大数据分类和架构简介 概述 大数据可通过许多方式来存储、获取、处理和分析。每个大数据来源都有不同的特征,包括数据的频率、量、速度、类型和真实性。处理并存储大数据时,会涉及到更多维度,比如治理...
  • 《GB/T 37973-2019 大数据安全管理指南大数据技术的发展和应用影响着国家的治理模式、企业的决策架构、商业的业务模式以及个人的生活方式。我国大数据仍处于起步发展阶段,各地发展大数据积极性高,行业应用得到...
  • 大数据概念到今天,炒作的最高风口已经过去了,根据Gartent发布的HypeCycle曲线,大数据已经处于炒作顶点之后的衰退期。 HypeCycle曲线 而从HypeCycle曲线定义的阶段来看,越过炒作顶点的技术,通常被认为...
  • 其实这就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/ 设计/ 架构、数据分析/挖掘。请不要问我哪个容易,哪个前景好,哪个钱多。
  • 海量的医疗大数据来自于各个业务信息子系统,数据的标准化程度低,在完成数据收集之后,随后就面向后续的数据的清洗和加工步骤。如何把这些海量数据按照统一的标准进行清洗,是很多行业和企业现在面对的最大困境。...
  • 大数据要怎么学,本文来说说到底要怎么学习它,以及怎么避免大数据学习的误区,以供参考。数据科学特点与大数据学习误区 (1)大数据学习要业务驱动,不要技术驱动:数据科学的核心能力是解决问题。 大数据的...
1 2 3 4 5 ... 20
收藏数 11,354
精华内容 4,541