大数据时代班级:电信111大数据简介•数据正在迅速膨胀并变大,它决定着企业的未来发展,虽然很多企业可能并没有意识到数据爆炸性增长带来问题的隐患,但是随着时间的推移,人们将越来越多的意识到数据对企业的重要性。•哈佛大学社会学教授加里·金说:“这是一场革命,庞大的数据资源使得各个领域开始了量化进程,无论学术界、商界还是政府,所有领域都将开始这种进程。”大数据简介•随着云时代的来临,大数据(Bigdata)也吸引了越来越多的关注。大数据分析常和云计算联系到一起,因为实时的大型数据集分析需要像MapReduce(分布式计算)一样的框架来向数十、数百或甚至数千的电脑分配工作。•大数据到底有多大?一组名为“互联网上一天”的数据告诉我们,一天之中,互联网产生的全部内容可以刻满1.68亿张DVD;发出的邮件有2940亿封之多(相当于美国两年的纸质信件数量);发出的社区帖子达200万个(相当于《时代》杂志770年的文字量);卖出的手机为37.8万台……•这样的趋势会持续下去。我们现在还处于所谓“物联网”的最初级阶段,而随着技术成熟,我们的设备、交通工具和迅速发展的“可穿戴”科技将能互相连接与沟通。科技的进步已经使创造、捕捉和管理信息的成本降至2005年的六分之一,而从2005年起,用在硬件、软件、人才及服务之上的商业投资也增长了整整50%,达到了4000亿美元。四个特征•数据量大(Volume)•第一个特征是数据量大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。•类型繁多(Variety)•第二个特征是数据类型繁多。包括网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求。•价值密度低(Value)•第三个特征是数据价值密度相对较低。如随着物联网的广泛应用,信息感知无处不在,信息海量,但价值密度较低,如何通过强大的机器算法更迅速地完成数据的价值“提纯”,是大数据时代亟待解决的难题。•速度快时效高(Velocity)•第四个特征是处理速度快,时效性要求高。这是大数据区分于传统数据挖掘最显著的特征。大数据分析与处理方法介绍•众所周知,大数据已经不简简单单是数据大的事实了,而最重要的现实是对大数据进行分析,只有通过分析才能获取很多智能的,深入的,有价值的信息。那么越来越多的应用涉及到大数据,而这些大数据的属性,包括数量,速度,多样性等等都是呈现了大数据不断增长的复杂性,所以大数据的分析方法在大数据领域就显得尤为重要,可以说是决定最终信息是否有价值的决定性因素。大数据分析的五个基本方面•1.AnalyticVisualizations(可视化分析)•不管是对数据分析专家还是普通用户,数据可视化是数据分析工具最基本的要求。可视化可以直观的展示数据,让数据自己说话,让观众听到结果。•2.DataMiningAlgorithms(数据挖掘算法)•可视化是给人看的,数据挖掘就是给机器看的。集群、分割、孤立点分析还有其他的算法让我们深入数据内部,挖掘价值。这些算法不仅要处理大数据的量,也要处理大数据的速度。•3.PredictiveAnalyticCapabilities(预测性分析能力)•数据挖掘可以让分析员更好的理解数据,而预测性分析可以让分析员根据可视化分析和数据挖掘的结果做出一些预测性的判断。大数据分析的五个基本方面•4.SemanticEngines(语义引擎)•我们知道由于非结构化数据的多样性带来了数据分析的新的挑战,我们需要一系列的工具去解析,提取,分析数据。语义引擎需要被设计成能够从“文档”中智能提取信息。•5.DataQualityandMasterDataManagement(数据质量和数据管理)•数据质量和数据管理是一些管理方面的最佳实践。通过标准化的流程和工具对数据进行处理,可以保证一个预先定义好的高质量的分析结果。大数据处理•周涛博士说:大数据处理数据时代理念的三大转变:要全体不要抽样,要效率不要绝对精确,要相关不要因果。•具体的大数据处理方法其实有很多,但是根据长时间的实践,此处总结了一个基本的大数据处理流程。整个处理流程可以概括为四步,分别是采集、导入和预处理、统计和分析,以及挖掘。•采集:•大数据的采集是指利用多个数据库来接收发自客户端(Web、App或者传感器形式等)的数据,并且用户可以通过这些数据库来进行简单的查询和处理工作。比如,电商会使用传统的关系型数据库MySQL和Oracle等来存储每一笔事务数据,除此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的采集。在大数据的采集过程中,其主要特点和挑战是并发数高,因为同时有可能会有成千上万的用户来进行访问和操作,比如火车票售票网站和淘宝,它们并发的访问量在峰值时达到上百万,所以需要在采集端部署大量数据库才能支撑。并且如何在这些数据库之间进行负载均衡和分片的确是需要深入的思考和设计。大数据处理•导入/预处理:•虽然采集端本身会有很多数据库,但是如果要对这些海量数据进行有效的分析,还是应该将这些来自前端的数据导入到一个集中的大型分布式数据库,或者分布式存储集群,并且可以在导入基础上做一些简单的清洗和预处理工作。导入与预处理过程的特点和挑战主要是导入的数据量大,每秒钟的导入量经常会达到百兆,甚至千兆级别。•统计/分析:•统计与分析主要利用分布式数据库,或者分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总等,以满足大多数常见的分析需求,在这方面,一些实时性需求会用到EMC的GreenPlum、Oracle的Exadata,以及基于MySQL的列式存储Infobright等,而一些批处理,或者基于半结构化数据的需求可以使用Hadoop。统计与分析这部分的主要特点和挑战是分析涉及的数据量大,其对系统资源,特别是I/O会有极大的占用。大数据处理•挖掘:•与前面统计和分析过程不同的是,数据挖掘一般没有什么预先设定好的主题,主要是在现有数据上面进行基于各种算法的计算,从而起到预测(Predict)的效果,从而实现一些高级别数据分析的需求。比较典型算法有用于聚类的K-Means、用于统计学习的SVM和用于分类的NaiveBayes,主要使用的工具有Hadoop的Mahout等。•该过程的特点和挑战主要是用于挖掘的算法很复杂,并且计算涉及的数据量和计算量都很大,还有,常用数据挖掘算法都以单线程为主。处理和分析工具•用于分析大数据的工具主要有开源与商用两个生态圈。•开源大数据生态圈:•1、HadoopHDFS、HadoopMapReduce,HBase、Hive渐次诞生,早期Hadoop生态圈逐步形成。•2、.Hypertable是另类。它存在于Hadoop生态圈之外,但也曾经有一些用户。•3、NoSQL,membase、MongoDB•商用大数据生态圈:•1、一体机数据库/数据仓库:IBMPureData(Netezza),OracleExadata,SAPHana等等。•2、数据仓库:TeradataAsterData,EMCGreenPlum,HPVertica等等。•3、数据集市:QlikView、Tableau、以及国内的YonghongDataMart。处理和分析工具Hadoop•据IDC的预测,全球大数据市场2015年将达170亿美元规模,市场发展前景很大。而Hadoop作为新一代的架构和技术,因为有利于并行分布处理“大数据”而备受重视。•ApacheHadoop是一个用java语言实现的软件框架,在由大量计算机组成的集群中运行海量数据的分布式计算,它可以让应用程序支持上千个节点和PB级别的数据。Hadoop是项目的总称,主要是由分布式存储(HDFS)、分布式计算(MapReduce)等组成。•优点:可扩展:不论是存储的可扩展还是计算的可扩展都是Hadoop的设计根本。经济:框架可以运行在任何普通的PC上。可靠:分布式文件系统的备份恢复机制以及MapReduce的任务监控保证了分布式处理的可靠性。高效:分布式文件系统的高效数据交互实现以及MapReduce结合LocalData处理的模式,为高效处理海量的信息作了基础准备。处理和分析工具Hadoop•Hadoop原本来自于谷歌一款名为MapReduce的编程模型包。谷歌的MapReduce框架可以把一个应用程序分解为许多并行计算指令,跨大量的计算节点运行非常巨大的数据集。使用该框架的一个典型例子就是在网络数据上运行的搜索算法。•Hadoop实现了一个分布式文件系统(HadoopDistributedFileSystem),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(highthroughput)来访问应用程序的数据,适合那些有着超大数据集(largedataset)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streamingaccess)文件系统中的数据。•Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。MapReduceHDFSHBasePigChuKwaHiveZooKeeperHadoop体系架构•Pig是一个基于Hadoop的大规模数据分析平台,Pig为复杂的海量数据并行计算提供了一个简易的操作和编程接口•Chukwa是基于Hadoop的集群监控系统,由yahoo贡献•hive是基于Hadoop的一个工具,提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行•ZooKeeper:高效的,可扩展的协调系统,存储和协调关键共享状态•HBase是一个开源的,基于列存储模型的分布式数据库•HDFS是一个分布式文件系统。有着高容错性的特点,并且设计用来部署在低廉的硬件上,适合那些有着超大数据集的应用程序•MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算HDFS——分布式文件系统•NameNode可以看作是分布式文件系统中的管理者,存储文件系统的meta-data,主要负责管理文件系统的命名空间,集群配置信息,存储块的复制。•DataNode是文件存储的基本单元。它存储文件块在本地文件系统中,保存了文件块的meta-data,同时周期性的发送所有存在的文件块的报告给NameNode。•Client就是需要获取分布式文件系统文件的应用程序。HDFS是一个高度容错性的分布式文件系统,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。MapReduceMap:任务的分解Reduce:结果的汇总两大核心设计HDFSNameNode:文件管理DataNode:文件存储Client:文件获取Hadoop核心设计HDFS具体操作文件写入:1.Client向NameNode发起文件写入的请求2.NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。3.Client将文件划分为多个文件块,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。文件读取:1.Client向NameNode发起文件读取的请求2.NameNode返回文件存储的DataNode的信息。3.Client读取文件信息。MapReduce——映射、化简编程模型1.根据输入数据的大小和参数的设置把数据分成splits,每个split对于一个map线程。2.Split中的数据作为Map的输入,Map的输出一定在Map端。3.Map的输出到Reduce的输入的过程(shuffle过程):第一阶段:在map端完成内存-排序-写入磁盘-复制第二阶段:在reduce端完成映射到reduce端分区-合并-排序4.Reduce的输入到Reduce的输出最后排好序的key/value作为Reduce的输入,输出不一定是在reduce端。Ma