目录
一、大数据相关概念 (一)大数据的概念
大数据(Big Data):指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。主要解决,海量数据的存储和海量数据的分析计算问题。
(二)大数据的特征
简称4V:Volume(规模性),Variety(多样性),Velocity(高速性),Value(价值性)。
(三)大数据的构成
大数据分为结构化、半结构化和非结构化三种。
二、大数据处理的基础技术 (一)大数据的处理流程
一般而言,大数据处理流程,我们可分为四步骤:数据采集、数据导入和清洗处理、数据统计分析和挖掘、结果可视化。
1、数据采集:
大数据的采集一般采用ETL (Extract-Transform-Load )工具负责将分布的、异构数据源中的数据如关系数据、平面数据以及其他非结构化数据等抽取到临时文件或数据库中。
2、数据清洗和预处理:
采集好数据,肯定不少是重复或是无用的数据,此时需要对数据进行简单的清洗和预处理,使得不同来源的数据整合成一致的,适合数据分析算法和工具读取的数据,如数据去重、异常处理和数据归一化等,然后将这些数据存到大型分布式数据库或者分布式存储集群中。
3、数据统计分析和挖掘:
统计分析需要用到工具来处理,比如SPSS工具、一些结构算法模型,进行分类汇总以满足各种数据分析需求。
4、结果可视化:
大数据分析的使用者有大数据分析专家,同时还有普通用户,但是他们二者对于大数据分析最基本的要求就是可视化分析,因为可视化分析能够直观的呈现大数据特点,同时能够非常容易被读者所接受,就如同看图说话一样简单明了。
(二)大数据处理的基础技术
1、分布式计算
分布式计算是相对于集中式计算而言的,将需要进行大量计算的项目数据分割成小块,由分布式系统中多台计算机节点分别计算,再合并计算结果并得出统一数据结论。
2、分布式文件系统
分布式文件系统是将数据分散存储在多台独立的设备上,采用可扩展的系统结构,多台存储服务器分担存储负荷,利用元数据定位数据在服务器中的存储位置,具有较高的系统可靠性、可用性和存取效率,并且易于扩展。
3、分布式数据库
分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。
分布式数据库系统可以由多个异构、位置分布、跨网络的计算机节点组成。每台计算机节点中都可以有数据库管理系统的一份完整或部分拷贝副本,并具有自己局部的数据库。多台计算机节点利用高速计算机网络将物理上分散的多个数据存储单元相互连接起来,共同组成一个完整的、全局的,逻辑上集中、物理上分布的大型数据库系统。
4、数据库和数据仓库
数据库和数据仓库在概念上有很多相似之处,但是有本质上的差别。
(1)数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。
(2)数据库是按照一定数据结构来组织、存储和管理数据的数据集合。
数据仓库所在层面比数据库更高,换言之,一个数据仓库可以采用不同种类的数据库实现。
5、云计算与虚拟化技术
(1)云计算
云计算(Cloud Computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态、易扩展且虚拟化的资源。云是网络、互联网的一种比喻说法。
(2)KVM虚拟机
KVM(Kernel-based Virtual Machine)虚拟机是开源Linux原生的全虚拟化解决方案,它基于X86硬件的虚拟化扩展(Intel VT 或者 AMD-V技术)。KVM中,虚拟机被实现为常规的Linux进程,由标准Linux调度程序进行调度,而虚拟机的每个虚拟CPU被实现为一个常规的Linux进程。这使得KMV能够使用Linux 内核的已有功能。
(3)云计算与虚拟化的关系
云计算是个概念,而不是具体技术。虚拟化是一种具体技术,指把硬件资源虚拟化,实现隔离性、可扩展性、安全性、资源可充分利用等。但看似不相关的东西,背后却依然有千丝万缕的关系。 说到虚拟化,一般是指将物理的实体,通过软件模式,形成若干虚拟存在的系统,其真实运作还是在实体上,只是划分了若干区域或者时域。而云计算的基础是虚拟化,但虚拟化只是云计算的一部分。云计算是在虚拟化出若干资源池以后的应用。
虚拟化广泛应用与IT领域中,针对不同的资源,有着不同的虚拟化技术,如今我们可以给虚拟化大致分为四类:内存虚拟化、网络虚拟化、服务器虚拟化、存储虚拟化。
内存虚拟化:是指利用虚拟化技术实现对计算机内存的管理。从上层应用来看,内存虚拟化系统使得其具有连续可用的内存,即一个连续而完整的地址空间。从物理层来看,通常被分割成多个物理内存碎片。
存储虚拟化:存储虚拟化是将存储资源进行逻辑视图和物理存储分离,从而为系统提供无缝的资源管理。
网络虚拟化:网络虚拟化是利用软件从物理网络元素中分离网络的一种方式,网络虚拟化与其他形式的虚拟化有很多共同之处。
服务器虚拟化:服务器虚拟化是将服务器的CPU、内存、磁盘等硬件集中管理,通过集中式的动态按需分配,提高资源的利用率。
云计算的原理更多的是利用了计算虚拟化,当然,其他三种可能在一些云计算中也会有应用,但是虚拟化并不仅仅只服务云计算。
三、流行大数据技术 (一)流行的大数据技术各个阶段
架构设计技术:Flume、Zookeeper、Kafka
采集技术:Python、Scala
存储技术:Hbase、Hive、Sqoop
计算技术:Mahout、Spark、Storm
可视化技术:Echart、Superset
(二)Hadoop生态系统
Hadoop是一个开源的大数据分析软件,集合了大数据不同阶段技术的生态系统,其核心是Yarn、HDFS和MapReduce,集成了Spark生态圈。
(三)Hadoop核心组件简要介绍
1、HDFS(Hadoop分布式文件系统)
HDFS是Hadoop体系中数据存储管理的基础,它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。简化了文件的一致性模型,通过流式数据访问,提供高吞吐量数据访问能力,适合带有大型数据集的应用程序。提供了一次写入多次读取的机制,数据以块的形式,同时分布在集群的不同物理机器上。HDFS 的架构是基于一组特定的节点构建的。这些节点包括 NameNode(仅一个),在 HDFS 内部提供元数据服务;若干个DataNode为 HDFS 提供存储块。
2、MapReduce(分布式计算框架)
MapReduce是一种分布式计算模型,用于大数据计算,它屏蔽了分布式计算框架细节,将计算抽象成Map和Reduce两部分,其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式的中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。
MapReduce提供了以下的主要功能:数据划分和计算任务调度,数据/代码互定位,系统优化,出错检测和恢复。
3、HBase(分布式列存数据库)
HBase是一个建立在HDFS之上,面向列的针对结构化数据的可伸缩、高可靠、高性能、分布式数据库。 采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。 提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。 HBase利用Hadoop HDFS作为其文件存储系统,并利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper提供协同服务。
4、Zookeeper(分布式协同服务)
Zookeeper是一个为分布式应用提供协同服务的软件,提供包括配置维护、域名服务、分布式同步、组服务等功能,用于解决分布式环境下的数据管理问题。Hadoop的许多组件依赖于Zookeeper,用于管理Hadoop操作。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
5、Hive(数据仓库)
Hive是基于Hadoop的一个数据仓库工具,最初用于解决海量结构化日志数据的统计问题。Hive使用类SQL 的HiveQL 语言实现数据查询,并将HQL转化为在Hadoop上执行的MapReduce任务。Hive用于离线数据分析,可让不熟悉MapReduce的开发人员,使用HQL实现数据查询分析,降低了大数据处理应用门槛。Hive 本质上是基于HDFS上的应用程序,其数据都存储在Hadoop兼容的文件系统(例如,Amazon S3、HDFS)中。
四、大数据应用场景
1、物流仓储:大数据分析系统助力商家精细化运营、提升销量、节约成本。
2、零售:分析用户消费习惯,为用户购买商品提供方便,从而提升商品销量。
3、旅游:深度结合大数据能力与旅游行业需求,共建旅游产业智慧管理、智慧服务和智慧营销的 未来。