30大数据介绍

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1“大量化(Volume)、多样化(Variety)、快速化(Velocity)、价值密度低(Value)”就是“大数据”的显著特征,或者说,只有具备这些特点的数据,才是大数据。VolumeVelocityValueVariety大数据的4V特征•海量数据的高存储成本•大数据量下的数据处理性能不足•流式数据处理缺失•有限的扩展能力数据扩展性需求和硬件性能之间存在差距传统的数据处理系统面临的问题,呼唤新的技术1目前数据系统架构存在问题数据抽取、转换、装载过程数据相互转移分布式文件系统海量结构化存储系统机器学习、数据挖掘、语义搜索PowerView动态图表数据采集数据预处理数据存储数据分析挖掘结果展现海量非结构化存储系统一、大数据处理流程简析大数据处理的基本流程整个大数据的处理流程可以定义为:在合适工具的辅助下,对广泛异构的数据源进行抽取和集成,结果按照一定的标准进行统一存储,并利用合适的数据分析技术对存储的数据进行分析,从中提取有益的知识并利用恰当的方式将结果展现给终端用户。具体来说,可以分为数据抽取与集成、数据分析以及数据解释。三、各处理流程相关技术简析数据采集数据采集是数据分析、挖掘的基础,常用的海量数据采集工具有Hadoop的Chukwa,Cloudera的Flume,Facebook的Scribe等,这些工具均采用分布式架构,能满足每秒数百MB的日志数据采集和传输需求。提取数据数据源目标数据存储区转换数据格式map/reduce存储数据Chukwa数据采集原理三、各处理流程相关技术简析数据预处理SQL与HBASE、HIVE之间进行内容传递时,需要一个数据转移工具,如Sqoop。其工作过程如下:MapMapMapHDFS/HIVE/HBaseSQLSqoopSqoopSqoopSqoop三、各处理流程相关技术简析数据存储HDFS结构三、各处理流程相关技术简析数据存储三、各处理流程相关技术简析数据分析挖掘HIVE查询统计用户行为数据机器学习、数据挖掘、语义搜索……HDFSHIVE数据仓库Maout挖掘数据价值MapReduceMapReduce三、各处理流程相关技术简析数据展现聚类算法结果展示•方案采用的Hadoop模块列表•HDFS,用于大规模数据存储•Yarn,系统资源管理•Hive,基于Mapreduce的SQL数据访问•Pig,脚本式数据处理•Storm,流式数据处理•Spark/SparkStreaming,内存计算框架•HBase,Key-Value数据存储•MapReduce,离线批处理计算框架•Kafka,消息队列式流失数据接入•HCatlog,元数据管理•Ambari,Hadoop平台监控、管理界面•ZooKeeper,保证系统无单点运行•Oozie,工作流式任务调度揭开Hadoop神秘的面纱•Hadoop是Apache基金会的一个项目总称,主要由HDFS、Yarn、MapReduce和HBase等组成。HDFS是对GoogleGFS的开源实现,MapReduce是对GoogleMapReduce的开源实现,HBase是GoogleBigTable的开源实现。•Hadoop来源于其创始人DougCutting的儿子给一头黄色大象取的名字。•Hadoop最初只与网页索引有关,迅速发展成为分析大数据的领先平台。HDFS原理简介-分布式文件系统HDFS主要特点:存储大文件将大文件分割成很多小块存储流式数据读取,“writeonereadmany”本身是分布式的,具备良好的可扩展性框架可以运行在任何普通的PC上。通过放开POSIX要求,极大改善数据读写性能HDFS不适合于:存储大量小文件(1MB)实时数据读取需经常修改数据的场景HDFSYARNHiveMapReduceHBaseZooKeeperBookKeeperAVROPigSqoopNN#1DataNode,文件就放它上了。NameNode,元数据信息都在这。文件被切分成大小相同的块(最末尾的块可能小于块大小),并存储在不同的数据节点上。为确保文件块的容错性,同时提供更快的数据读取,默认每个数据块有3个副本,且分布在不同的数据节点DN上。FileAFileBFileCACBABCDN#1DN#2DN#3BDN#4CDN#5ADN#6FileDDDDHBase原理简介-分布式数据库HRegionServer内部管理了一系列HRegion对象,每个HRegion对应Table中的一个Region。HRegion由多个Store组成。每个Store对应Table中的一个ColumnFamily的存储,即一个Store管理一个Region上的一个列族(CF)。每个Store包含一个MemStore和0到多个StoreFile。Store是HBase的存储核心,由MemStore和StoreFile组成。HBase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,利用Hbase技术可在廉价PCServer上搭建大规模结构化存储集群。HBase是GoogleBigtable的开源实现,与GoogleBigtable利用GFS作为其文件存储系统类似,HBase利用HadoopHDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用HadoopMapReduce来处理HBase中的海量数据;GoogleBigtable利用Chubby作为协同服务,HBase利用Zookeeper作为对应有人问HBase和HDFS是啥关系,HBase是利用HDFS的存储的,就像MySQL和磁盘,MySQL是应用,磁盘是具体存储介质。HDFS因为自身的特性,不适合随机查找,对更新操作不太友好,比如百度网盘就是拿HDFS构建的,它支持上传和删除,但不会让用户直接在网盘上修改某个文件的内容。HBase的表有以下特点:1)大:一个表可以有上亿行,上百万列。2)面向列:面向列表(簇)的存储和权限控制,列(簇)独立检索。3)稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以设计的非常稀疏。HBase提供的访问方式有命令行shell方式,javaAPI(最高效和常用的),ThriftGateway支持C++,PHP,Python等多种语言。9.1.1.NoSQL?HBase是一种NoSQL数据库.NoSQL是一个通用词表示数据库不是RDBMS,后者支持SQL作为主要访问手段。HBase是大型分布式数据库。技术上来说,HBase更像是数据存储(DataStore)多于数据库(DataBase)。因为缺少很多RDBMS特性,如列类型,第二索引,触发器,高级查询语言等.然而,HBase有许多特征同时支持线性化和模块化扩充。HBase集群通过增加RegionServers进行扩充。它可以放在普通的服务器中。例如,如果集群从10个扩充到20个RegionServer,存储空间和处理容量都同时翻倍。RDBMS也能很好扩充,但仅对一个点-特别是对一个单独数据库服务器的大小-同时,为了更好的性能,需要特殊的硬件和存储设备。HBase特性:强一致性读写:HBase不是最终一致性(eventuallyconsistent)数据存储.这让它很适合高速计数聚合类任务。自动分片(Automaticsharding):HBase表通过region分布在集群中。数据增长时,region会自动分割并重新分布。RegionServer自动故障转移Hadoop/HDFS集成:HBase支持本机外HDFS作为它的分布式文件系统。MapReduce:HBase通过MapReduce支持大并发处理,HBase可以同时做源和目标.Java客户端API:HBase支持易于使用的JavaAPI进行编程访问.Thrift/RESTAPI:HBase也支持Thrift和REST作为非Java前端.BlockCache和BloomFilters:对于大容量查询优化,HBase支持BlockCache和BloomFilters。运维管理:HBase提供内置网页用于运维视角和JMX度量.9.1.2.什么时候用HBase?HBase不适合所有问题.首先,确信有足够多数据,如果有上亿或上千亿行数据,HBase是很好的备选。如果只有上千或上百万行,则用传统的RDBMS可能是更好的选择。因为所有数据可以在一两个节点保存,集群其他节点可能闲置。其次,确信可以不依赖所有RDBMS的额外特性(e.g.,列数据类型,第二索引,事物,高级查询语言等.)一个建立在RDBMS上应用,如不能仅通过改变一个JDBC驱动移植到HBase。相对于移植,需考虑从RDBMS到HBase是一次完全的重新设计。第三,确信你有足够硬件。甚至HDFS在小于5个数据节点时,干不好什么事情(根据如HDFS块复制具有缺省值3),还要加上一个NameNode.HBase能在单独的笔记本上运行良好。但这应仅当成开发配置。9.1.3.HBase和Hadoop/HDFS的区别?HDFS是分布式文件系统,适合保存大文件。官方宣称它并非普通用途文件系统,不提供文件的个别记录的快速查询。另一方面,HBase基于HDFS且提供大表的记录快速查找(和更新)。这有时可能引起概念混乱。HBase内部将数据放到索引好的存储文件(StoreFiles),以便高速查询。存储文件位于HDFS中。参考Chapter5,数据模型和该章其他内容获取更多HBase如何归档的信息。MapReduce原理简介-分布式计算架构ApacheMapReduce是googleMapReduce的开源实现。是对并行计算的封装,使用户通过一些简单的逻辑即可完成复杂的并行计算。其核心理念是将一个大的运算任务分解到集群每个节点上,充分运用集群资源,缩短运行时间。二、、分布式并行处理技术MapReduce单词技术问题MapReduce工作流程分割文本生成新的文本结果归拢排序原文本MapReduce是一套软件框架,包括Map(映射)和Reduce(化简)两个阶段,可以进行海量数据分割、任务分解与结果汇总,从而完成海量数据的并行处理。•Hive是由Facebook开源,最初用于解决海量结构化的日志数据统计问题的ETL(Extraction-Transformation-Loading)工具,Hive是构建在Hadoop上的数据仓库平台,设计目标是可以用传统SQL操作Hadoop上的数据,让熟悉SQL编程的人员也能拥抱Hadoop(注意。是数据仓库。不是数据库啊。)•使用HQL作为查询接口•使用HDFS作为底层存储•使用MapReduce作为执行层•所以说Hive就是基于Hadoop的一个数据仓库工具,是为简化MapReduce编程而生的,非常适合数据仓库的统计分析,通过解析SQL转化成MapReduce,组成一个DAG(有向无环图)来执行。•Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。•当前Flume有两个版本Flume0.9X版本的统称Flume-og,Flume1.X版本的统称Flume-ng,由于Flume-ng经过重大重构,与Flume-og有很大不同,使用时请注意区分。•Flume就是一个数据管道,支持很多源(source),sink(目标),和透视宝的suro很像,比如拉取nginx日志可以拿这个工具简单一配就可用。当然每台nginx服务器上都要配置并启动一个flume.•YARN•YARN是Hadoop2.0中的资源管理系统,它的基本设计思想是将MRv1中的JobTracker拆分成了两个独立的服务:一个全局的资源调度器ResourceManager和每个应用程序特有的应用程序管理器ApplicationMaster,该调度器是一个纯调度器,不再参与任何与具

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功