1、大数据平台框架选型分析 一、需求 城市大数据平台,首先是作为一个数据管理平台,核心需求是数据的存和取,然后因为海量数据、多数据类型的信息需要有丰富的数据接入能力和数据标准化处理能力,有了技术能力就需要纵深挖掘附加价值更好的服务,如信息统计、分析挖掘、全文检索等,考虑到面向的客户对象有的是上层的应用集成商,所以要考虑灵活的数据接服务来支撑。 二、平台产品业务流程 三、选型思路 必要技术组件服务: ETL>非/关系数据仓储〉大数据处理引擎〉服务协人调〉分析BI>平台监管 四、选型要求 1 .需要满足我们平台的几大核心功能需求,子功能不设局限性。如不满足全部, 需要对未满足的其它核
2、心功能的开放使用服务支持 2 .国内外资料及社区尽量丰富,包括组件服务的成熟度流行度较高 3 .需要对选型平台自身所包含的核心功能有较为深入的理解,易用其API或基于源码开发 4 .商业服务性价比高,并有空间脱离第三方商业技术服务 5 .一些非功能性需求的条件标准清晰,如承载的集群节点、处理数据量及安全机制等 五、选型需要考虑 简单性:亲自试用大数据套件。这也就意味着:安装它,将它连接到你的Hadoop安 装,集成你的不同接(文件、数据库、B2B等等),并最终建模、部署、执行一些大数据作业。自己来了解使用大数据套件的容易程度一一仅让某个提供商的顾问来为你展示它是如何工作是远远不够
3、的。亲自做一个概念验证。 广泛性:是否该大数据套件支持广泛使用的开源标准一一不只是Hadoop和它的生态 系统,还有通过SOAP和RESTweb服务的数据集成等等。它是否开源,并能根据你的特定问题易于改变或扩展?是否存在一个含有文档、论坛、博客和交流会的大社区? 特性:是否支持所有需要的特性? Hadoop的发行版本(如果你已经使用了某一个)? 你想要使用的Hadoop生态系统的所有部分?你想要集成的所有接、技术、产品?请注意过多的特性可能会大大增加复杂性和费用。所以请查证你是否真正需要一个非常重量级的解决方案。是否你真的需要它的所有特性? 陷阱:请注意某些陷阱。某些大数据套件采用数
4、据驱动的付费方式(数据税”),也就是说,你得为自己处理的每个数据行付费。因为我们是在谈论大数据,所以这会变得非常昂贵。并不是所有的大数据套件都会生成本地ApacheHadoop代码,通常要在每个Hadoop集群的服务器上安装一个私有引擎,而这样就会解除对于软件提供商的独立性。还要考虑你使用大数据套件真正想做的事情。某些解决方案仅支持将Hadoop用于ETL来填充数据至数据仓库,而其他一些解决方案还提供了诸如后处理、转换或Hadoop集群上的大数据分析。ETL仅是ApacheHadoop和其生态系统的一种使用情形。 六、方案分析 自建套件 hortonworks 国内突exadoop
5、 TDW+fineBI 成本 1%F 源 培训服务3k/A 授权支持1K 性能 单集群最大规模达到56台,处理数据量可达百P级 功能 按需整合 HDFS和YARN数据管理从各种引擎访问数据根据策略加载和管理数据身份验证、授权和数据保护大规模配置、管理、监控和运营Hadoop群集与您的数据分析工具集成跨平台配置部署 易操 作性 安装复杂,操作需要专业培训。 图形设计界面,参数配置,易上手。 应用成熟度 国外大客户较多 文档/社区支持 文档较多,社区一般,相关专业培训较多。 官方社区比较活跃(英文)中文社区有
6、1个文档较少,多为英文文档 文档较少,无商用服务,无任何技术支持 扩展性 开源开放 开源开放 开源开放 移植性 支持多操作系统 支持多操作系统 支持多操作系统 支持多操作系统 监控 1、跟随广品阶段逐 监控功能强大Armbri 元 无 优势 1、开源强大支持的开源套 1、国产套件 1、开源中文支 步完善整合自定义 件 2、父流支持方 持 劣势 套件 2、自选流行组件,资料丰富 2、配套商业服务支持 便 3、商业服务较灵活 2、基于大数据 处理核心,灵活组合其它组件来适应不同 产品阶段及项目半定制套件,预学现用 整
7、合周期不可控 商业成本较局 依赖于打包服 务公司的支持 七、相关资料 HDP(hortonworks) ACompleteEnterpriseHadoopDataPlatfo开源工具汇总整理 类别 名称 备注 “询引擎 Phoenix Salesforc公司出品,ApacheHBase之上的一个SQL中间层,完全使用Java编写 Stinger 原叫Tez,下TtHive,Hortonwork主导开发,运仃在YARN +的DAG计算框架 Presto Facebook 开源 Shark Spark上的SQL执行引擎 加 基于HadoopMapRedu
8、ce的脚本语言 ClouderaImpala 参照GoogleDremel实现,能运行在HDFSl八HBase上,使用C++开发 ApacheDrill 参照GoogleDremel实现 ApacheTajo 一个运行在YARNLh支持SQL的分布式数据仓库 Hive 基于HadoopMapReduce 的SQL查询引擎 上式计算 FacebookPuma 实时数据流分析 TwitterRainbird 分布式实时统计系统,如网站的点击统计 YahooS4 TwitterStorm Java开发的一个通用的、分布式的、可扩展的、分区容错的、可插拔的无主架构的流式
9、系统 使用Java和Clojure实现 上代计算 ApacheHama 建立在Hadoop上基于BSP(BulkSynchronousParal)l的计算框架,模仿了 Google的 Pregel 卜线计算 建值存储 ApacheGiraph 建立在Hadoop上的可伸缩的分布式迭代图处理系统,灵感来自BSPbulksynchronousparallil和 Google 的 Pregel HaLoop 迭代的 MapReduce Twister 迭代的MapReduce HadoopMapReduce 经典的大数据批处理系统 BerkeleySpark Da
10、taTorrent 使用Scala语百实现,和MapReduce有较大的竞争关系,性能强于MapReduce基于Hadoop2.X构建的实时流式处理和分析平台,每秒可以处理超过10亿个实时事件 ,evelDB Google开源的高效KV编程库,注意它只是个库 RocksDB Facebook开源的,基于Google的LevelDB但提高了扩展性可以运行在多核处理器上 HyperDex 下 TtKV存储系统,支持 strings integers floats lis、smaps和sets等丰富的数据类型 TokyoCabinet 日本人MikioHirabayashi平林干雄
11、开发的一款DBMI八据库,注息它只是个库(大名鼎鼎的DBM数据库qdbm就是MikioHirabayash开发的),读写非常快 Voldemort 一个分布式键值存储系统,是AmazonDynam。的一个开源克隆,Linkedli开源 AmazonDynamo 亚马逊的KV模式的存储平台,无主架构 Tair 淘宝出品的高性能、分布式、可扩展、高可靠的KV结构存储系统,专为小文件优化,并提供简单易用的接(类似Map ) ,Tai支持Java和C版本的客户端 ApacheAccumulo 一个可靠的、可伸缩的、高性能的排序分布式的KV存储系统,参照GoogleBigtable而
12、设计,建立在 Hadoop、Thrif 和 Zookeeper 之上。 Redis 使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、 单机版KV数据库。从2010年3月15日起,Redis的开发工作由VMware主持 OceanBase 支持海量数据的高性能分布式数据库系统,实现了数千亿条记录、数百TB数据上的跨行跨表事务 AmazonSimpleDB 一个可大规模伸缩、用Erlang编写的高可用数据存储 Vertica Cassandra HyperTable 惠普2011收购Vertica,Verti是传统的关系型数据库,基于列存储,同时支持MPP使用
13、标准的SQL查询,可以和Hadoop/MapReduce进行集成 Hadoop 成员,Facebook 于 28 将 Cassandra开源,基于 O (1)DHT 的完全 P2P 架构 搜索引擎公司Zvents针对Bigtable的C+针源实现 FoundationDB 支持ACID事务处理的NoSQL数据库,提供非常好的性能、数据一致性和操作弹性
14、 HBase Bigtable在 Hadoop中的实现,最初是Powerset公司为了处理自然语言搜索产生的海量数据而开展的项目 X件存储 CouchDB 回向文档的数据存储 MongoDB 文档数据库 Tachyon 加州大学伯克利分校的AMPLab基于Hadoop的核心组件开发出一个更快的版本Tachyon,它从底层重构了 Hadoop平台。 KFS GFS的C+钎源版本 HDFS GFS八Hadoop中的实现 "源管理 TwitterMesos Hado
15、opYarn GoogleBorg的翻版类似于Mesos 日志收集系k FacebookScribe Facebook开源的日志收集系统,能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文件系统等)上,以便于进行集中统计分析处理,常与Hadoop结合使用,Scribe用于向HDFS中Push日志 ClouderaFlume Cloudera提供的日志收集系统,支持对日志的实时性收集 ogstash 日志管理、分析和传输工具,可配合kibana ElasticSear组建成日志查询系统 kibana为日志提供友好的Web查询页面 StormMQ
16、ZeroMQ很底层的高性能网络库 肖息系统 RabbitMQ ApacheActiveMQ 在AMQPS础上完整的,可复用的企业消息系统能力强劲的开源消息总线 Jafka 开源的、高性能的、跨语言分布式消息系统,最早是由Apache孵化的 Kafka (由Linkedln捐助给Apache )克隆而来 ApacheKafka Linkedin于 2010年12月份开源的分布式消息系统,它主要用于处理活跃的流式数据,由Scala写成 分布式服务 ZooKeeper 分布式锁服务,PoxOS算法的实现,对应Google的Chubby RPC ApacheAvro Fa
17、cebookThrift Hadoop 中的 RPC RPC支持C++/Java/PHP等众多语言 Nagios 监视系统运行状态和网络信息的监视系统 “群管理 Ganglia UCBerkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。 ApacheAmbari Hadoop成员,管理和监视ApacheHadoop集群的开源框架 ”础设施 _evelDB Google顶级大牛开发的单机版键值数据库,具有非常高的写性能 SSTable RecordlO 源于 Google,ortedStringTable 源于Google matB
18、uffers ProtocolBuffers 针对游戏开发的,高效的跨平台序列化库,相比ProtoBuffer开销更小,因为FlatBuffer没有解析过程 Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可附十数据存储、通信协议等方面。它不依赖于语言和平台并且 可扩展性极强。 1997年由麻省理工学院提出,目标是为了解决因特网中的热点(Hotspot)|问题 初衷和CAR叶分类似,基本解决了在P2P环境中最为关 ConsistentHashing 键的1可题如何在动态的网络拓扑中分布存储和路由。 Netty BloomFilter JBO
19、SSI供的一个java开源框架,提供异步的、事件驱动的网络应用程序框架,用 以快速开发高性能、高可靠性的网络服务器和客户端程序。 布隆过滤器,1970年由布隆提出,是一个很长的二进制矢量和一系列随机映射函 数,可以用于检索一个元素是否在一个集合中,优点是空间效率和查询时间都远 远超过一般的算法,缺点是有一定的误识别率和删除困难。 W^h 开源Java实现的搜索引擎,诞生Hadoop的地方。 _ucene SolrCloud 一套信息检索工具包,但并不包含搜索引擎系统,它包含了索引结构、读写索引 工具、相关性工具、排序等功能。 基于 Sol^ Zookeeper 的分布式搜索
20、Solr4.(的核心组件之一,~主 要思想是使用Zookeeper作为集群的配置信息中心 Solr Solr是基于 Lucene 的搜索。 “索引擎 开源的(Apache2 协议),分布式的,RESTful的,构建在 ApacheLuceneElasticSearch之上的的搜索引擎。 一个基于SQL的全文检索引擎,可结合MySQLPostgreSQL做全文检索, Sphinx可提供比数据库本身更专业的搜索功能,单一索引可达1亿条记录,10 万条记录情况下的查询速度为0.x秒(毫秒级)。 Linkin公司开发的一个开源分布式实时半结构化数据库,在全文索引的
21、 SenseiDB 基础封装了 BrowseQueryLanguage ( BQL,类似SQL )的查询语法。 收据挖掘 Mahout Hadoop成员,目标是建立一个可扩展的机器学习库 aas OpenStack 美国国家航空航天局和Rackspace合作研发的,以Apache许可证授权 云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作,旨在为公共及私有云的建设与管理提供软件的开源项目。6个核心项目:Nova (计算,Compute ),Swif(对象存储,Object) ,Glance(镜像,Image ) ,Keyston4 身份,Id
22、enti ),Horizon 自助 门户,Dashboard),Quantum&Melange (网络&M址管理),另外还有6T,社区项目,如Rackspace(负载均衡)、Rackspace(关系型数据库)。 Docker 应用容器引擎,让开发者可打包应用及依赖包到一个可移植的容器中,然后发布到1认“乂机器上,也可实现虚拟化。 Kubernetes Google开源的容器集群管理系统 mctfyGoogle开源的 Linux容器 ,控管理 Dapper Google生产环境下的大规模分布式系统的跟踪系统 Zipkin Twittei开源的参考GoogleDapper而开发,使用ApacheCassandra做为数据存储系统






