你还需要知道的9个大数据技术
疯狂的蜗牛
8年前
<p>Hadoop是大数据领域最流行的技术,但并非唯一。还有很多其他技术可用于解决大数据问题。除了Apache Hadoop外,另外9个大数据技术也是必须要了解的。</p> <p>1.Apache Flink</p> <p>2.Apache Samza</p> <p>3.Google Cloud Data Flow</p> <p>4.StreamSets</p> <p>5.Tensor Flow</p> <p>6.Apache NiFi</p> <p>7.Druid</p> <p>8.LinkedIn WhereHows</p> <p>9.Microsoft Cognitive Services</p> <p><strong>Apache Flink</strong>:是一个高效、分布式、基于Java实现的通用大数据分析引擎,它具有分布式MapReduce一类平台的高效性、灵活性和扩展性以及并行数据库查询优化方案,它支持批量和基于流的数据分析,且提供了基于Java和Scala的API。 这是一种由社区驱动的分布式大数据分析开源框架,类似于Apache Hadoop和Apache Spark。它的引擎可借助数据流和内存中(in-memory)处理与迭代操作改善性能。目前Apache Flink已成为一个顶级项目(Top Level Project,TLP),于2014年4月被纳入Apache孵化器,目前在全球范围内有很多贡献者。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/d2586fba56b79a8570c94b8756c8e7fc.png"></p> <p>Flink受到了MPP数据库技术(Declaratives、Query Optimizer、Parallel in-memory、out-of-core 算法)和Hadoop MapReduce技术(Massive scale out, User Defined functions, Schema on Read)的启发,有很多独特功能(Streaming, Iterations, Dataflow, General API)。</p> <p><strong>Apache Samza:</strong>是一个开源、分布式的流处理框架,它使用开源分布式消息处理系统Apache Kafka来实现消息服务,并使用资源管理器Apache Hadoop Yarn实现容错处理、处理器隔离、安全性和资源管理。 该技术由LinkedIn开发,最初目的是为了解决Apache Kafka在扩展能力方面存在的问题,包含诸如Simple API、Managed state、Fault Tolerant、Durable messaging、Scalable、Extensible,以及Processor Isolation等功能。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/ae7bf7d734f8dd403c448d5212976ba3.png"></p> <p>Samza的代码可作为Yarn作业运行,还可以实施StreamTask接口,借此定义process()调用。StreamTask可以在任务实例内部运行,其本身也位于一个Yarn容器内。</p> <p><strong>Cloud Dataflow :</strong>Dataflow是一种原生的Google Cloud数据处理服务,是一种构建、管理和优化复杂数据流水线的方法,用于构建移动应用,调试、追踪和监控产品级云应用。它采用了Google内部的技术Flume和MillWhell,其中Flume用于数据的高效并行化处理,而MillWhell则用于互联网级别的带有很好容错机制的流处理。</p> <p>该技术提供了简单的编程模型,可用于批处理和流式数据的处理任务。该技术提供的数据流管理服务可控制数据处理作业的执行,数据处理作业可使用Data Flow SDK(Apache Beam)创建。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/24bb7dfd4bc9786bb678fda3adf6def3.png"></p> <p>Google Data Flow为数据相关的任务提供了管理、监视和安全能力。Sources和Sink可在管线中抽象地执行读写操作,管线封装而成的整个计算序列可以接受外部来源的某些输入数据,通过对数据进行转换生成一定的输出数据。</p> <p><strong>StreamSets :</strong>StreamSets是一种专门针对传输中数据进行过优化的数据处理平台,提供了可视化数据流创建模型,通过开源的方式发行。该技术可部署在内部环境或云中,提供了丰富的监视和管理界面。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/5958d6a5f113cd299580842dc8bd730c.png"></p> <p>数据收集器可使用数据管线实时地流式传输并处理数据,管线描述了数据从源头到最终目标的流动方式,可包含来源、目标,以及处理程序。数据收集器的生命周期可通过管理控制台进行控制。</p> <p><strong>TensorFlow :</strong>是继DistBelief之后的第二代机器学习系统。TensorFlow源自Google旗下的Google Brain项目,主要目标在于为Google全公司的不同产品和服务应用各种类型的神经网络机器学习能力。</p> <p>支持分布式计算的TensorFlow能够使用户在自己的机器学习基础结构中训练分布式模型。该系统以高性能的gRPC数据库为支撑,与最近发布的Google云机器学习系统互补,使用户能够利用Google云平台,对TensorFlow模型进行训练并提供服务。</p> <p>这是一种开源软件库,可使用数据流图谱(data flow graph)进行数值运算,这种技术已被包括DeepDream、RankBrain、Smart Replyused在内的各种Google项目所使用。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/d6de1b126a3824c7fb902a698dd4200d.png"></p> <p>数据流图谱使用由节点(Node)和边缘(Edge)组成的有向图(Directed graph)描述数值运算。图谱中的节点代表数值运算,边缘代表负责在节点之间进行通信的多维数据阵列(张量,Tensor)。边缘还描述了节点之间的输入/输出关系。“TensorFlow”这个名称蕴含了张量在图谱上流动的含义。</p> <p><strong>Druid :</strong>Druid是一个用于大数据实时查询和分析的高容错、高性能开源分布式系统,旨在快速处理大规模的数据,并能够实现快速查询和分析,诞生于2011年,包含诸如驱动交互式数据应用程序,多租户:大量并发用户,扩展能力:每天上万亿事件,次秒级查询,实时分析等功能。Druid还包含一些特殊的重要功能,例如低延迟数据摄入、快速聚合、任意切割能力、高可用性、近似计算与精确计算等。</p> <p>创建Druid的最初意图主要是为了解决查询延迟问题,当时试图使用Hadoop来实现交互式查询分析,但是很难满足实时分析的需要。而Druid提供了以交互方式访问数据的能力,并权衡了查询的灵活性和性能而采取了特殊的存储格式。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/0ef7c25e9ffe553e4c74c4715f03ff15.png"></p> <p>该技术还提供了其他实用功能,例如实时节点、历史节点、Broker节点、Coordinator节点、使用基于JSON查询语言的索引服务。</p> <p><strong>Apache NiFi :</strong>Apache NiFi是一套强大可靠的数据处理和分发系统,可用于对数据的流转和转换创建有向图。借助该系统可以用图形界面创建、监视、控制数据流,有丰富的配置选项可供使用,可在运行时修改数据流,动态创建数据分区。此外还可以对数据在整个系统内的流动进行数据起源跟踪。通过开发自定义组件,还可轻松对其进行扩展。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/44ca8ec7a03da74b6f644c985661f2d7.png"></p> <p>Apache NiFi的运转离不开诸如FlowFile、Processor,以及Connection等概念。</p> <p><strong>LnkedIni WhereHows :</strong>WhereHows提供带元数据搜索的企业编录(Enterprise catalog),可以让您了解数据存储在哪里,是如何保存到那里的。该工具可提供协作、数据血统分析等功能,并可连接至多种数据源和提取、加载和转换(ETL)工具。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/bdeeac67948f017eb9b15cb82c0c18ca.png"></p> <p>该工具为数据发现提供了Web界面,支持API的后端服务器负责控制元数据的爬网(Crawling)以及与其他系统的集成。</p> <p>Microsoft Cognitive Services :该技术源自Project Oxford和Bing,提供了22种认知计算API,主要分类包括:视觉、语音、语言、知识,以及搜索。该技术已集成于Cortana Intelligence Suite。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/64f4a09297c499d969173c184d884017.png"></p> <p>这是一种开源技术,提供了22种不同的认知计算REST API,并为开发者提供了适用于Windows、IOS、Android以及Python的SDK。</p> <p> </p> <p>来自:http://www.uml.org.cn/bigdata/2016101905.asp</p> <p> </p>