您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据挖掘与识别 > 大数据相关术语及概念
114AAccount,Authorization,Authentication,Audit帐号、授权、认证、审计BOSSBusiness&OperationSupportSystem业务运营支撑系统CRMCustomerRelationshipManagement客户关系管理DMZDe-MilitarizedZone非军事化去,即隔离区ETLExtractionTransformationLoading抽取、转换和加载ESOPEnterpriseServiceOperationPlatform集团客户业务综合运营平台FTPFileTransferProtocol文本传输协议ICMPInternetControlMessageProtocolInternet控制报文协议NGCCNextGenerationCallCenter下一代呼叫中心SQLStructuredQueryLanguage结构化查询语言VGOPValue-addedServiceGeneralOperationPlatform增值业务综合运营平台1Hadoop(MapReduce)Hadoop是一个处理、存储和分析海量的分布式、非结构化数据的开源框架。Hadoop是一个处理、存储和分析海量的分布式、非结构化数据的开源框架。最初由雅虎的DougCutting创建,Hadoop的灵感来自于MapReduce,MapReduce是谷歌在2000年代初期开发的用于网页索引的用户定义函数。它被设计用来处理分布在多个并行节点的PB级和EB级数据。Hadoop集群运行在廉价的商用硬件上,这样硬件扩展就不存在资金压力。Hadoop现在是Apache软件联盟(TheApacheSoftwareFoundation)的一个项目,数百名贡献者不断改进其核心技术。基本概念:与将海量数据限定在一台机器运行的方式不同,Hadoop将大数据分成多个部分,这样每个部分都可以被同时处理和分析。21.1Hadoop如何工作客户从日志文件、社交媒体供稿和内部数据存储等来源获得非结构化和半结构化数据。它将数据打碎成“部分”,这些“部分”被载入到商用硬件的多个节点组成的文件系统。Hadoop的默认文件存储系统是Hadoop分布式文件系统。文件系统(如HDFS)善于存储大量非结构化和半结构化数据,因为它们不需要将数据组织成关系型的行和列。各“部分”被复制多次,并加载到文件系统。这样,如果一个节点失效,另一个节点包含失效节点数据的副本。名称节点充当调解人,负责沟通信息:如哪些节点是可用的,某些数据存储在集群的什么地方,以及哪些节点失效。一旦数据被加载到集群中,它就准备好通过MapReduce框架进行分析。客户提交一个“匹配”的任务(通常是用Java编写的查询语句)给到一个被称为作业跟踪器的节点。该作业跟踪器引用名称节点,以确定完成工作需要访问哪些数据,以及所需的数据在集群的存储位置。一旦确定,作业跟踪器向相关节点提交查询。每个节点同时、并行处理,而非将所有数据集中到一个位置处理。这是Hadoop的一个本质特征。当每个节点处理完指定的作业,它会存储结果。客户通过任务追踪器启动“Reduce”任务。汇总map阶段存储在各个节点上的结果数据,获得原始查询的“答案”,然后将“答案”加载到集群的另一个节点中。客户就可以访问这些可以载入多种分析环境进行分析的结果了。MapReduce的工作就完成了。一旦MapReduce阶段完成,数据科学家和其他人就可以使用高级数据分析技巧对处理后的数据进一步分析。也可以对这些数据建模,将数据从Hadoop集群转移到现有的关系型数据库、数据仓库等传统IT系统进行进一步的分析。而MapReduce是Google提出的一种云计算的核心计算模式,是一种分布式运算技术,也是简化的分布式编程模式,MapReduce模式的主要思想是将自动分割要执行的问题(例如程序)拆解成map(映射)和reduce(化简)的方式,在数据被分割后通过Map函数的3程序将数据映射成不同的区块,分配给计算机机群处理达到分布式运算的效果,在通过Reduce函数的程序将结果汇整,从而输出开发者需要的结果。再来看看Hadoop的特性,第一,它是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。其次,Hadoop是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop还是可伸缩的,能够处理PB级数据。此外,Hadoop依赖于社区服务器,因此它的成本比较低,任何人都可以使用。你也可以这么理解Hadoop的构成,Hadoop=HDFS(文件系统,数据存储技术相关)+HBase(数据库)+MapReduce(数据处理)+……OthersHadoop用到的一些技术有:HDFS:Hadoop分布式文件系统(DistributedFileSystem)-HDFS(HadoopDistributedFileSystem)MapReduce:并行计算框架HBase:类似GoogleBigTable的分布式NoSQL列数据库。Hive:数据仓库工具,由Facebook贡献。Zookeeper:分布式锁设施,提供类似GoogleChubby的功能,由Facebook贡献。Avro:新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制。Pig:大数据分析平台,为用户提供多种接口。Ambari:Hadoop管理工具,可以快捷的监控、部署、管理集群。Sqoop:用于在Hadoop与传统的数据库间进行数据的传递。大数据是所有行业新的权威的竞争优势。认为大数据是昙花一现的企业和技术供应商很快就会发现自己需要很辛苦才能跟上那些提前思考的竞争对手的步伐。在我们看来,他们是非常危险的。对于那些理解并拥抱大数据现实的企业,新创新,高灵活性,以及高盈利能力的可能性几乎是无止境的。4来自任何来源的数据都会由Kafka集群负责收集与暂时存储,而Zookeeper——中继——主题分类机制则随即跟上。而后其会通过Storm或者Spark被发送至HIVE/HDFS,并由后者再传递至分析引擎(例如SASVA)——这一切都以实时方式完成,结论则被推送至仪表板供用户理解及据此行动。最后,为了充分发挥实时数据分析的潜能,企业之间还需要通力协作。大数据领域的经验证明,合作伙伴之间的配合是实现分析的前提条件。最后,各合作伙伴还需要广泛接触各垂直行业,从而理解其中的具体业务及错综复杂的相关要素。2Storm集群Twitter将Storm正式开源了,这是一个分布式的、容错的实时计算系统,它被托管在GitHub上,遵循EclipsePublicLicense1.0。Storm是由BackType开发的实时处理系统,BackType现在已在Twitter麾下。GitHub上的最新版本是Storm0.8.0,基本是用Clojure写的。Storm为分布式实时计算提供了一组通用原语,可被用于“流处理”之中,实时处理消息并更新数据库。这是管理队列及工作者集群的另一种方式。Storm也可被用于“连续计算”(continuouscomputation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。它还可被用于“分布式RPC”,以并行的方式运行昂贵的运算。Storm的主工程师NathanMarz表示:Storm可以方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm用于实时处理,就好比Hadoop用于批处理。Storm保证每个消息都会得到处理,而且它很快——在一个小集群中,每秒可以处理数以百万计的消息。更棒的是你可以使用任意编程语言来做开发。Storm的主要特点如下:简单的编程模型。类似于MapReduce降低了并行批处理复杂性,Storm降低了进行实时处理的复杂性。可以使用各种编程语言。你可以在Storm之上使用各种编程语言。默认支持Clojure、Java、Ruby和Python。要增加对其他语言的支持,只需实现一个简单的Storm通信协议即可。容错性。Storm会管理工作进程和节点的故障。5水平扩展。计算是在多个线程、进程和服务器之间并行进行的。可靠的消息处理。Storm保证每个消息至少能得到一次完整处理。任务失败时,它会负责从消息源重试消息。快速。系统的设计保证了消息能得到快速的处理,使用ØMQ作为其底层消息队列。本地模式。Storm有一个“本地模式”,可以在处理过程中完全模拟Storm集群。这让你可以快速进行开发和单元测试。Storm集群由一个主节点和多个工作节点组成。主节点运行了一个名为“Nimbus”的守护进程,用于分配代码、布置任务及故障检测。每个工作节点都运行了一个名为“Supervisor”的守护进程,用于监听工作,开始并终止工作进程。Nimbus和Supervisor都能快速失败,而且是无状态的,这样一来它们就变得十分健壮,两者的协调工作是由ApacheZooKeeper来完成的。Storm的术语包括Stream、Spout、Bolt、Task、Worker、StreamGrouping和Topology。Stream是被处理的数据。Spout是数据源。Bolt处理数据。Task是运行于Spout或Bolt中的线程。Worker是运行这些线程的进程。StreamGrouping规定了Bolt接收什么东西作为输入数据。数据可以随机分配(术语为Shuffle),或者根据字段值分配(术语为Fields),或者广播(术语为All),或者总是发给一个Task(术语为Global),也可以不关心该数据(术语为None),或者由自定义逻辑来决定(术语为Direct)。Topology是由StreamGrouping连接起来的Spout和Bolt节点网络。在StormConcepts页面里对这些术语有更详细的描述。可以和Storm相提并论的系统有Esper、Streambase、HStreaming和YahooS4。其中和Storm最接近的就是S4。两者最大的区别在于Storm会保证消息得到处理。Storm,如果需要持久化,可以使用一个类似于Cassandra或Riak这样的外部数据库。Storm是分布式数据处理的框架,本身几乎不提供复杂事件计算,而Esper、Streambase属于CEP系统。入门的最佳途径是阅读GitHub上的官方《StormTutorial》。其中讨论了多种Storm概念和抽象,提供了范例代码以便你可以运行一个StormTopology。开发过程中,可以用本地模式来运行Storm,这样就能在本地开发,在进程中测试Topology。一切就绪后,以远程模式运行Storm,提交用于在集群中运行的Topology。要运行Storm集群,你需要ApacheZookeeper、ØMQ、JZMQ、Java6和Python2.6.6。ZooKeeper用于管理集群中的不同组件,ØMQ是内部消息系统,JZMQ是ØMQ的JavaBinding。有个名为storm-deploy的子项目,可以在AWS上一键部署Storm集群。关于详细6的步骤,可以阅读StormWiki上的《SettingupaStormcluster》。出现的背景在过去10年中,随着互联网应用的高速发展,企业积累的数据量越来越大,越来越多。随着GoogleMapReduce、Hadoop等相关技术的出现,处理大规模数据变得简单起来,但是这些数据处理技术都不是实时的系统,它们的设计目标也不是实时计算。毕竟实时的计算系统和基于批处理模型的系统(如Hadoop)有着本质的区别。但是随着大数据业务的快速增长,针对大规模数据处理的实时计算变成了一种业务上的需求,缺少“实时的Hadoop系统”已经成为整个大数据生态系统中的一个巨大缺失。Storm正是在这样的需求背景下出现的,Storm很好地满足了这一需求。在Storm出现之前,对于需要实现计算的任务,开发者需要手动维护一个消息队列和消息处理者所组成的实时处理网络,
本文标题:大数据相关术语及概念
链接地址:https://www.777doc.com/doc-2512102 .html