大数据学习笔记1

一、大数据定义

  IBM用4V(Volume、Variety、Velocity、Value)来描述大数据所拥有的特点。

(1)大容量(Volume),指数据体量巨大;

(2)多形式(Variety),指数据类型多样;

(3)高速率(Velocity),指数据以非常高的速率产生实时数据;

(4)价值密度(Value),指价值密度低的数据为大数据(大数据伴随着从低价值的原始数据中进行深度挖掘和计算,从海量且形式各异的数据源中抽取出富含价值的信息)。

二、大数据时代的思维变革

(1)不是随机样本,而是全体数据;

(2)不是精确性,而是混杂性;

(3)不是因果关系,而是相关关系。

三、大数据的技术转型

关系数据库(SQL)->NoSQL;

关系数据库在事务处理上满足ACID:A(原子性Atomicity)C(一致性Consistency)I(隔离性Isolation)D(持久性Durability)。

四、数据分片

在大数据环境下,数据量已经由GB级别跨越到PB级别,依靠单台计算机已经无法存储与处理如此规模的数据,需要采用大规模集群来对这些数据进行存储和处理,所以系统的可扩展性成为衡量系统优劣的关键因素。

传统关系数据库为了支持更多的数据,采用纵向扩展(Scale Up)的方式,即不增加机器数量,而是通过改善单机硬件资源配置来解决问题,对于大数据不可行;

目前主流的大数据存储与计算系统通常采用横向扩展(Scale Out)的方式支持系统可扩展性,即通过增加机器数目来获得水平扩展能力。与此对应,对于待处理的海量数据需要通过数据分片(Shard/Partition)来对数据进行切分并分配到各个机器中去,通过数据分片实现系统的水平扩展。

目前大规模存储与计算系统都是采用普通商用服务器来作为硬件资源池的,系统故障被认为是常态,因此与数据分片洗切相关的事数据复制,通过数据复制来保证数据的高可用性。(数据复制是将同一份数据复制存储在多台计算机中,以保证数据在故障常环境下仍然可用,另一好处是既可以增加读操作的并发性,又可以提高单词的读取效率。)

而数据复制带来的难题是,如何保证数据的一致性。可将数据分片的通用模型看作是一个二级映射关系,第一级key-partition,第二级partition-machine,在做数据分片时,根据key-partition关系,将数据水平切割成众多数据分片,再按partition-machine关系将数据分片存储到对应的物理机器上。读取时反之。

数据分片有两种常用策略:

(1)哈希分片:主要通过哈希函数来建立key-partition映射关系,它只支持“单点查询(Point Query)”(即根据某个记录的主键key获得记录内容),而无法支持“范围查询(Range Query)”(即指定记录的主键范围,一次读取多条满足条件的记录)。采取哈希分片的实际系统众多,大多数KV(key-value)存储系统都支持这种方式。

(2)范围分片:首先对所有记录的主键进行排序,然后在排好序的主键空间里将记录划分成数据分片,每个数据分片存储有序的主键空间片段内的所有记录,即支持单点查询又支持范围查询。

五、数据一致性

在大数据系统中为了获得系统可用性,需要为同一数据分片存储多份副本,业界常规做法是一个数据分片同时保存三个副本。由此产生数据一致性问题,如何让在系统外部的使用者看来,即使存在多个副本数据,它与单份数据也是一样的,CAP、BASE、ACID等基本原则是分布式环境下数据一致性方案设计重要的指导原则。

(1)CAP原则

Consistency/Availability/Partition Tolerance ,CAP原则对分布式系统中的三个特性进行了如下归纳:

1、一致性(Consistency):在分布式系统中的所有数据备份,在同一时刻是否具有同样的值(等同于所有节点访问同一份最新的数据副本)。

2、可用性(Availability):在集群中,一部分节点出现故障后,集群整体是否还能响应客户端的读写请求(对数据更新具备高可用性)。

3、分区容错性(Partition Tolerance):从实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间爱你做出选择。

CAP原则是指对于一个大规模分布式数据系统来说,CAP三个特性不可兼得,同一个系统之多只能实现其中的两个,而必须放宽第三个要素来保证其他两个要素被满足。

可以认为,在网络环境下,运行环境出现网络分区是不可避免的,所以系统必须具备分区容人性特性,故在此场景下,涉及大规模分布式系统时,架构师往往在AP和CP中进行衡量和选择,有所强调,有所放弃,视具体情况而定。

(2)CAP与ACID

二者关系:CAP和ACID都包含了A和C,但具体含义不同;若CAP选择A,在一定程度上会影响ACID中的部分要求。

二者区别:ACID中的C指的是对操作的一致性约束,而CAP中的C指的是数据的强一致性(多副本对外表现类似于单副本),故可将CAP中的C看作一致性约束的一种,即CAP中的C是ACID中的C所涵盖语义的子集。

在出现网络分区的情形下,ACID中的C要求的一致性约束是无法保证的,所以在网络分区解决后,需要通过一定手段来恢复ACID中要求的一致性。

当出现网络分区时,ACID中的事务独立只能在多个分区中的某个分区执行,因为事务的序列化要求通信,而当网络分区时,明显无法做到这一点,所以只能在某个分区执行。如果多个分区都可以各自进行ACID中的数据持久化(D)操作,当网络分区解决后,如果每个分区都提供持久化记录,则系统可以根据这些记录发现违反ACID一致性约束的内容,并给予修正。

(3)BASE原则

关系数据库系统采纳ACID原则,获得高可靠性和强一致性。而大多数分布式环境下的云存储系统和NoSQL系统则采纳BASE原则。

1、基本可用(Basically Available):在绝大多数时间内,系统处于可用状态,允许偶尔的失效,所以称为基本可用。

2、软状态/柔性状态(Soft State):指数据状态不要求在任意时刻都完全保持同步,可以理解为系统处于有状态(State)和无状态(Stateless)之间的中间状态。

3、最终一致性(Eventual Consistency):与强一致性相比,最终一致性是一种弱一致性,尽管软状态不要求任意时刻数据保持一致同步,但是在给定时间窗口内,最终会达到一致的状态。

BASE和ACID的差异:

1、BASE通过牺牲强一致性来获得更高可用性。(注:尽管现在大多数的NoSQL系统采纳了BASE原则,但NoSQL系统与云存储系统的发展过程正在向逐步提供局部ACID特性发展,即从全局而言,符合BASE原则,但局部上支持ACID原则,这样可以吸取两者各自的好处,在两者之间建立平衡。)

2、ACID强调数据的一致性,这是传统数据库设计的思路;而BASE更强调可用性,弱化数据强一致性的概念,这是互联网时代对于大规模分布式数据系统的一种需求,尤其是其中软状态和最终一致性。

六、主流大数据技术

可分为两大类:

(1)面向非实时批处理业务场景:着重于处理传统数据处理技术在有限的时空环境里无法胜任的TB级、PB级海量数据存储、加工、分析、应用等。(一些典型的业务场景如:用户行为分析、订单防欺诈分析、用户流失分析、数据仓库等,这类业务场景的特点是非实时响应,通常一些单位在晚上交易结束时,抽取各类数据进入大数据分析平台,在数小时内获得计算结果,并用于第二天的业务。)

主流的支撑技术:HDFS、MapReduce、Hive等。

(2)面向实时处理业务场景:这类业务场景特点是强实时响应,用户发出一条业务请求,在数秒之内要给予相应,并确保数据完整性。(如微博应用、实时社交、实时订单处理等。)

主流的支撑技术:HBase、Kafka、Storm等。

1、HDFS

 HDFS是Hadoop的核心子项目,是整个Hadoop平台数据存储与访问的基础,在此之上承载其他如MapReduce、HBase等子项目的运转。它是易于使用和管理的分布式文件系统。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据及上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。

2、MapReduce

是一个软件架构,在数以千计的普通硬件构成的集群中以平行计算的方式处理海量数据,该计算框架具有很高的稳定性和容错能力。MapReduce对负责逻辑进行高度规约,抽象为Mapper和Reducer类,复杂逻辑通过理解,转化为符合MapReduce函数处理的模式。MapReduce job会划分输入数据集为独立的计算块,这些分块被map任务以完全并行、独立的模式处理。MapReduce框架对maps的输出进行排序,排序后,数据作为reduce任务的输入数据。job的input和output数据都存储在HDFS文件系统中。计算框架管理作业调度、监控作业、重新执行失败任务。

3、YARN

Apache Hadoop YARN(Yet Another Resource Negotiator,另一种资源协调者)是从Hadoop 0.23进化来的一种新的资源管理和应用调度框架。基于YARN,可以运行多种类型的应用程序,例如MapReduce、Spark、Storm等。YARN不在具体管理应用,资源管理和应用管理是两个低耦合的模块。YARN从某种意义上来说,是一个云操作系统(Cloud OS)。基于该操作系统之上,程序员可以开发多种应用程序,例如批处理MapReduce程序、Spark程序以及流式作业Storm程序等。这些应用,可以同时利用Hadoop集群的数据资源和计算资源。

4、HBase

是Hadoop平台中重要的非关系型数据库,它通过线性可扩展部署,可以支撑PB级数据存储与处理能力。作为非关系型数据库,HBase适合于非结构化数据存储,它的存储模式是基于列的。

5、Hive

是Apache基金会下面的开源框架,是基于Hadoop的数据仓库工具,它可以把结构化的数据文件映射为一张数据仓库表,并提供简单的SQL(Structured Query Language)查询功能,后台将SQL语句转换为MapReduce任务来运行。使用Hive可以满足一些不懂MapReduce丹东SQL的数据库管理员的需求,让他们能够平滑地使用大数据分析平台。

6、Kafka

Apache Kafka是分布式“发布-订阅”消息系统,最初,它由LinkedIn公司开发,而后成为Apache项目。Kafka是一种快速、可扩展的、设计时内在的就是分布式的、分区的和可复制的提交日志服务。Kafka是一个分布式系统,易于向外扩展,可为发布和订阅提供高吞吐量,并且支持多订阅者,当失败时,能自动平衡消费者;Kafka可将消息持久化存储,既可面向非实时业务,也可面向实时业务。

7、Storm

是一个免费开源、分布式、高容错的实时计算系统。它能够处理持续不断的流计算任务,目前,比较多地被应用到实时分析、在线机器学习、ETL( Extract-Transform-Load,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数具,但其对象并不限于数据仓库。ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去)等领域。

七、大数据职业方向

(1)大数据平台架构与研发:从事底层的大数据平台研发,技术难度最高,适合于前沿技术机构,要不断发现与改进目前大数据技术的缺陷,对于形成稳定版本的大数据平台,要面向业界进行推广。

(2)大数据平台应用开发:从事大数据平台应用技术的开发工作,满足大量企业事业单位使用大数据平台的需求。

(3)大数据平台集成与运维:从事大数据平台的集成与运维工作,对于大量企事业单位的大数据部署与常规应用,需要有专职的集成人员进行集成安装与调试,需要定期运维人员进行运维与提供技术保障。

(4)大数据平台数据分析与应用:下哦那个是数据分析、预测与应用工作,借助与大数据平台,分析各类业务数据,并服务于业务,这类岗位跟业务休戚相关,一些对数据高度重视的机构,如精确广告营销、大数据安全分析等。

(5)大数据技术培训与推广:从事大数据技术教育与培训工作。

八、大数据实践平台的搭建

(1)初学者模式

本模式是在一台物理机(笔记本电脑或台式机)上,根据计算机硬件性能,搭建 一台或三台虚拟主机,在虚拟主机里部署各类大数据组件。

1、所需要的主要软件环境:

虚拟主机软件:推荐采用VMware Workstation或Oracle VM VirtualBox;

Linux操作系统:推荐采用Red Hat或CentOS;

远程管理软件:SSH或SecureCRT。

2、本模式的安装流程:

在物理机上安装虚拟主机软件;在虚拟主机软件中新建虚拟主机,安装Linux;调通新建虚拟主机的网络,可以实现在物理机与虚拟主机之间互访问;开通SSH服务,实现物理主机通过SSH管理虚拟主机。

本模式适合初学者,优点是简单,缺点是每次使用大数据时,需要先开启虚拟主机,无法随时随地使用。

(2)物理集群模式

本模式是采用多台(一至三台)物理服务器,在标准的机房环境里搭建大数据平台。

1、所需要的主要软硬件环境:

多台物理服务器;

一台交换机;

个人管理机:笔记本电脑或台式机;

Linux操作系统:推荐采用Red Hat或CentOS;

远程管理软件:SSH或SrcureCRT。

2、本模式的安装流程:

服务器上架与物理连线;在所有物理服务器上安装Linux操作系统;调通物理服务器之间的网络,调通管理机对物理服务器的网络;在所有物理服务器上开启SSH服务,并增加机房网络防火墙安全策略,允许管理机通过SSH管理物理服务器。

本模式适合于机构用户,有一定的硬件资源,优点是性能优越,可永备使用,缺点是成本相对较高,集群规模有限。

(3)虚拟化集群模式

本模式是采用云计算的模式,底层设置多台物理服务器,通过云计算管理软件实现几十、上百台虚拟主机的制备,在虚拟主机中搭建大数据平台。

1、所需要的主要软硬件环境:

一定数量的物理服务器;

一定数量的交换机;

个人管理机:笔记本电脑或台式机;

OpenStack等云管理软件;

Linux操作系统:推荐采用Red Hat或CentOS;

远程管理软件:SSH或SecureCRT。

2、本模式的安装流程:

服务器上架与物理连线;在所有物理服务器上安装Linux操作系统;部署OpenStack框架,在物理服务器上按要求部署Nova、Ceph、Glance、Keystone、Quantum、MySQL、HTTP、Horizon等组件模块,完成云计算环境的部署;调通物理服务器、云计算内部网络,调通管理机对物理服务器的网络;是被Linux虚拟主机,并开放相关的SSH管理权限。

本模式适合于中型以上机构用户,利用富余的硬件资源搭建云环境,并按需对外提供虚拟主机资源,有点事可在分钟级内批量创建或回收上百个大数据节点,满足更多用户、更大范围的使用,缺点是需要维护云计算环境,如果规模不大,成本会比较高。

你可能感兴趣的:(大数据,大数据)