22个大数据开发处理框架平台和工具

1、MongoDB——最受欢迎的,跨平台的,面向文档的数据库。

https://www.mongodb.com/

22个大数据开发处理框架平台和工具_第1张图片

MongoDB是一个基于分布式文件存储的数据库,使用C++语言编写。旨在为Web应用提供可扩展的高性能数据存储解决方案。应用性能高低依赖于数据库性能,MongoDB则是非关系数据库中功能最丰富,最像关系数据库的,随着MongDB 3.4版本发布,其应用场景适用能力得到了进一步拓展。

MongoDB的核心优势就是灵活的文档模型、高可用复制集、可扩展分片集群。你可以试着从几大方面了解MongoDB,如实时监控MongoDB工具、内存使用量和页面错误、连接数、数据库操作、复制集等。

互联网科技发展蓬勃兴起,人工智能时代来临,抓住下一个风口。为帮助那些往想互联网方向转行想学习,却因为时间不够,资源不足而放弃的人。我自己整理的一份最新的大数据进阶资料和高级开发教程,大数据学习群: 740041381 欢迎进阶中和进想深入大数据的小伙伴加入。
2、Elasticsearch ——为云构建的分布式RESTful搜索引擎。

https://www.elastic.co/cn/

22个大数据开发处理框架平台和工具_第2张图片

ElasticSearch是基于Lucene的搜索服务器。它提供了分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是比较流行的企业级搜索引擎。

ElasticSearch不仅是一个全文本搜索引擎,还是一个分布式实时文档存储,其中每个field均是被索引的数据且可被搜索;也是一个带实时分析功能的分布式搜索引擎,并且能够扩展至数以百计的服务器存储及处理PB级的数据。ElasticSearch在底层利用Lucene完成其索引功能,因此其许多基本概念源于Lucene。

 

3、Cassandra——开源分布式数据库管理系统。

http://cassandra.apache.org/

22个大数据开发处理框架平台和工具_第3张图片

最初是由Facebook开发的,旨在处理许多商品服务器上的大量数据,提供高可用性,没有单点故障。

Apache Cassandra是一套开源分布式NoSQL数据库系统。集Google BigTable的数据模型与Amazon Dynamo的完全分布式架构于一身。于2008开源,此后,由于Cassandra良好的可扩展性,被Digg、Twitter等Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。

因Cassandra是用Java编写的,所以理论上在具有JDK6及以上版本的机器中都可以运行,官方测试的JDK还有OpenJDK 及Sun的JDK。 Cassandra的操作命令,类似于我们平时操作的关系数据库,对于熟悉MySQL的朋友来说,操作会很容易上手。

 

4、Redis ——开源(BSD许可)内存数据结构存储,用作数据库,缓存和消息代理。

https://redis.io/

22个大数据开发处理框架平台和工具_第4张图片

Redis是一个开源的使用ANSI C语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis 有三个主要使其有别于其它很多竞争对手的特点:Redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久性目的; Redis相比许多键值数据存储系统有相对丰富的数据类型; Redis可以将数据复制到任意数据库。

 

5、Hazelcast ——基于Java的开源内存数据网格。

https://hazelcast.com/

22个大数据开发处理框架平台和工具_第5张图片

Hazelcast 是一种内存数据网格 in-memory data grid,提供Java程序员关键任务交易和万亿级内存应用。虽然Hazelcast没有所谓的“Master”,但是仍然有一个Leader节点(the oldest member),这个概念与ZooKeeper中的Leader类似,但是实现原理却完全不同。同时,Hazelcast中的数据是分布式的,每一个member持有部分数据和相应的backup数据,这点也与ZooKeeper不同。

Hazelcast的应用便捷性深受开发者喜欢,但如果要投入使用,还需要慎重考虑。

 

6、Ehcache——广泛使用的开源Java分布式缓存。

http://www.ehcache.org/

22个大数据开发处理框架平台和工具_第6张图片

主要面向通用缓存、Java EE和轻量级容器。EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是hibernate中默认的CacheProvider。主要特性有:快速简单,具有多种缓存策略;缓存数据有两级,内存和磁盘,因此无需担心容量问题;缓存数据会在虚拟机重启的过程中写入磁盘;可以通过RMI、可插入API等方式进行分布式缓存;具有缓存和缓存管理器的侦听接口;支持多缓存管理器实例,以及一个实例的多个缓存区域;提供Hibernate的缓存实现。

 

7、Hadoop ——用Java编写的开源软件框架。

http://hadoop.apache.org/

22个大数据开发处理框架平台和工具_第7张图片

用于分布式存储,并对非常大的数据用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算。

 

8、Solr ——开源企业搜索平台,用Java编写,来自Apache Lucene项目。

http://lucene.apache.org/solr/

22个大数据开发处理框架平台和工具_第8张图片

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

与ElasticSearch一样,同样是基于Lucene,但它对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化。

 

9、Spark ——Apache Software Foundation中最活跃的项目,是一个开源集群计算框架。

http://spark.apache.org/

22个大数据开发处理框架平台和工具_第9张图片

Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松。

 

10、Memcached ——通用分布式内存缓存系统。

https://memcached.org/

22个大数据开发处理框架平台和工具_第10张图片

Memcached是一套分布式快取系统,当初是Danga Interactive为了LiveJournal所发展的,但被许多软件(如MediaWiki)所使用。Memcached作为高速运行的分布式缓存服务器,具有以下的特点:协议简单,基于libevent的事件处理,内置内存存储方式。

 

11、Apache Ambari——通过开发用于配置,管理和监控Apache Hadoop集群的软件来简化Hadoop管理

https://ambari.apache.org/

 

22个大数据开发处理框架平台和工具_第11张图片

Apache Ambari项目旨在通过开发用于配置,管理和监控Apache Hadoop集群的软件来简化Hadoop管理。Ambari提供了一个由RESTful API支持的直观,易用的Hadoop管理Web UI。

Ambari使系统管理员能够:

提供Hadoop集群

Ambari提供了跨任意数量的主机安装Hadoop服务的分步向导。

Ambari处理群集的Hadoop服务配置。

管理Hadoop集群

Ambari提供集中管理,用于在整个集群中启动,停止和重新配置Hadoop服务。

监控Hadoop集群

Ambari提供了一个仪表板,用于监控Hadoop集群的运行状况和状态。

Ambari利用Ambari指标系统进行指标收集。

Ambari利用Ambari Alert Framework进行系统警报,并在需要您注意时通知您(例如,节点出现故障,剩余磁盘空间不足等)。

Ambari使应用程序开发人员和系统集成商能够:

使用Ambari REST API轻松将Hadoop配置,管理和监控功能集成到自己的应用程序中。

互联网科技发展蓬勃兴起,人工智能时代来临,抓住下一个风口。为帮助那些往想互联网方向转行想学习,却因为时间不够,资源不足而放弃的人。我自己整理的一份最新的大数据进阶资料和高级开发教程,大数据学习群: 740041381 欢迎进阶中和进想深入大数据的小伙伴加入。

12、Apache Avro——是一种数据序列化系统。

https://avro.apache.org/

22个大数据开发处理框架平台和工具_第12张图片

Apache Avro™是一种数据序列化系统。

Avro提供:

丰富的数据结构。

紧凑,快速的二进制数据格式。

容器文件,用于存储持久数据。

远程过程调用(RPC)。

与动态语言的简单集成。不需要代码生成来读取或写入数据文件,也不需要使用或实现RPC协议。代码生成作为可选优化,仅值得为静态类型语言实现。

架构

Avro依赖模式。读取Avro数据时,始终存在写入时使用的模式。这允许每个数据写入时不会产生每个值的开销,从而使序列化既快又小。这也便于使用动态脚本语言,因为数据及其模式完全是自我描述的。

当Avro数据存储在文件中时,其架构随之存储,以便以后任何程序都可以处理文件。如果读取数据的程序需要不同的模式,则可以轻松解决,因为两个模式都存在。

在RPC中使用Avro时,客户端和服务器在连接握手中交换模式。(这可以进行优化,以便对于大多数调用,实际上不会传输任何模式。)由于客户端和服务器都具有另一个完整模式,因此相同命名字段,缺少字段,额外字段等之间的对应关系都可以轻松解决。

Avro架构使用JSON定义 。这有助于在已有JSON库的语言中实现。

与其他系统比较

Avro提供类似于诸如Thrift, Protocol Buffers等系统的功能.Avro在以下基本方面与这些系统不同。

动态类型:Avro不需要生成代码。数据始终伴随着一种模式,该模式允许在不生成代码,静态数据类型等的情况下完全处理该数据。这有助于构建通用数据处理系统和语言。

未标记的数据:由于在读取数据时存在模式,因此需要使用数据对较少的类型信息进行编码,从而导致较小的序列化大小。

没有手动分配的字段ID:当架构更改时,处理数据时始终存在旧架构和新架构,因此可以使用字段名称以符号方式解析差异。

 

13、Apache Chukwa——是一个用于监控大型分布式系统的开源数据收集系统

https://chukwa.apache.org/

22个大数据开发处理框架平台和工具_第13张图片

 

Apache Chukwa是一个用于监控大型分布式系统的开源数据收集系统。Apache Chukwa构建于Hadoop分布式文件系统(HDFS)和Map / Reduce框架之上,并继承了Hadoop的可扩展性和健壮性。Apache Chukwa还包括一个灵活而强大的工具包,用于显示,监控和分析结果,以充分利用收集的数据。

 

14、Apache HBase——是Hadoop数据库,是一个分布式,可扩展的大数据存储

https://hbase.apache.org/

22个大数据开发处理框架平台和工具_第14张图片

Apache HBase™是Hadoop数据库,是一个分布式,可扩展的大数据存储。

当您需要对大数据进行随机,实时读/写访问时,请使用Apache HBase™。该项目的目标是托管非常大的表 - 数十亿行X百万列 - 在商品硬件集群上。Apache HBase是一个开源的,分布式的,版本化的非关系数据库,模仿Google的Bigtable: Chang等人的结构化数据分布式存储系统。正如Bigtable利用Google文件系统提供的分布式数据存储一样,Apache HBase在Hadoop和HDFS之上提供类似Bigtable的功能。

 

15、hive——数据仓库软件有助于使用SQL读取,编写和管理驻留在分布式存储中的大型数据集

https://hive.apache.org/

22个大数据开发处理框架平台和工具_第15张图片

Apache Hive™数据仓库软件有助于使用SQL读取,编写和管理驻留在分布式存储中的大型数据集。可以将结构投影到已存储的数据中。提供了命令行工具和JDBC驱动程序以将用户连接到Hive。

 

16、Apache Mahout——是一个分布式线性代数框架和数学表达的Scala DSL

https://mahout.apache.org/

22个大数据开发处理框架平台和工具_第16张图片

 

Apache Mahout(TM)是一个分布式线性代数框架和数学表达的Scala DSL,旨在让数学家,统计学家和数据科学家快速实现他们自己的算法。Apache Spark是推荐的开箱即用的分布式后端,或者可以扩展到其他分布式后端。

数学上富有表现力的Scala DSL

支持多个分布式后端(包括Apache Spark)

用于CPU / GPU / CUDA加速的模块化本机求解器

 

17、Apache Pig——是一个分析大型数据集的平台

https://pig.apache.org/

22个大数据开发处理框架平台和工具_第17张图片

Apache Pig是一个分析大型数据集的平台,它包含用于表达数据分析程序的高级语言,以及用于评估这些程序的基础结构。Pig程序的显着特性是它们的结构适合于大量的并行化,这反过来使它们能够处理非常大的数据集。目前,Pig的基础设施层由一个编译器组成,该编译器生成Map-Reduce程序序列,已经存在大规模并行实现(例如,Hadoop子项目)。Pig的语言层目前由一个名为Pig Latin的文本语言组成,它具有以下关键属性:易于编程。实现简单,“令人尴尬的并行”数据分析任务的并行执行是微不足道的。由多个相互关联的数据转换组成的复杂任务被明确编码为数据流序列,使其易于编写,理解和维护。优化机会。任务编码的方式允许系统自动优化其执行,允许用户专注于语义而不是效率。可扩展性。用户可以创建自己的功能来进行专用处理。

 

18、ApacheTEZ——构建一个应用程序框架

https://tez.apache.org/

22个大数据开发处理框架平台和工具_第18张图片

 

ApacheTEZ®项目旨在构建一个应用程序框架,该框架允许处理数据的任务的复杂的有向非循环图。它目前在Apache Hadoop YARN上面构建。

Tez的两个主要设计主题是:

通过以下方式授权最终用户:

富有表现力的数据流定义API

灵活的输入 - 处理器 - 输出运行时模型

数据类型不可知

简化部署

执行绩效

Map Reduce的性能提升

最佳资源管理

在运行时计划重新配置

动态物理数据流决策

 

19、Apache ZooKeeper——致力于开发和维护开源服务器,实现高度可靠的分布式协调

https://zookeeper.apache.org/

22个大数据开发处理框架平台和工具_第19张图片

ZooKeeper是一种集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务。所有这些类型的服务都以分布式应用程序的某种形式使用。每次实施它们都需要做很多工作来修复不可避免的错误和竞争条件。由于难以实现这些类型的服务,应用程序最初通常会吝啬它们,这使得它们在变化的情况下变得脆弱并且难以管理。即使正确完成,这些服务的不同实现也会在部署应用程序时导致管理复杂性。

 

20、Apache Storm——是一个免费的开源分布式实时计算系统

http://storm.apache.org/

22个大数据开发处理框架平台和工具_第20张图片

Apache Storm是一个免费的开源分布式实时计算系统。Storm可以轻松可靠地处理无限数据流,实时处理Hadoop为批处理所做的工作。风暴很简单,可以与任何编程语言一起使用,并且使用起来很有趣!

Storm有许多用例:实时分析,在线机器学习,连续计算,分布式RPC,ETL等。风暴很快:一个基准测试表示每个节点每秒处理超过一百万个元组。它具有可扩展性,容错性,可确保您的数据得到处理,并且易于设置和操作。Storm集成了您已经使用的排队和数据库技术。Storm拓扑消耗数据流并以任意复杂的方式处理这些流,然后在计算的每个阶段之间重新划分流。

 

21、Apache Samza——是一个可扩展的数据处理引擎

http://samza.apache.org/

22个大数据开发处理框架平台和工具_第21张图片

Samza允许您构建有状态的应用程序,从多个来源(包括Apache Kafka)实时处理数据。经过大规模的战斗测试,它支持灵活的部署选项,可以在YARN上运行,也可以作为 独立的库运行。

Apache Samza是一个可扩展的数据处理引擎,允许您实时处理和分析数据。以下是Samza简化构建应用程序功能的摘要:

统一API:使用简单的API以独立于数据源的方式描述您的应用程序逻辑。相同的API可以处理批处理和流数据。

每个级别的可插拔性:处理和转换来自任何来源的数据。Samza提供与Apache Kafka,AWS Kinesis,Azure EventHubs,ElasticSearch和Apache Hadoop的内置集成。此外,它很容易与您自己的来源集成。

Samza作为嵌入式库:可以毫不费力地与现有应用程序集成,无需启动和操作单独的集群进行流处理。Samza可以用作Java / Scala应用程序中嵌入的轻量级客户端库。

编写一次,随处运行: 灵活的部署选项 ,可以在任何地方运行应用程序 - 从公共云到容器化环境再到裸机硬件。

Samza作为托管服务:通过与包括Apache YARN在内的流行集群管理器集成,将流处理作为托管服务运行。

容错: 在发生故障时透明地迁移任务及其关联状态。Samza支持主机关联和增量检查点,以实现从故障中快速恢复。

大规模:对使用数TB的状态并在数千个核心上运行的应用程序进行经过实战测试。它为多家大公司提供支持,包括LinkedIn,Uber,TripAdvisor,Slack等。

 

22、Apache Flink——是一个框架和分布式处理引擎

https://flink.apache.org/

22个大数据开发处理框架平台和工具_第22张图片

Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。Flink设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。

在这里,我们解释Flink架构的重要方面。

处理无界和有界数据

任何类型的数据都是作为事件流产生的。信用卡交易,传感器测量,机器日志或网站或移动应用程序上的用户交互,所有这些数据都作为流生成。

数据可以作为无界或有界流处理。

无界流有一个开始但没有定义的结束。它们不会在生成时终止并提供数据。必须连续处理无界流,即必须在摄取事件后立即处理事件。无法等待所有输入数据到达,因为输入是无界的,并且在任何时间点都不会完成。处理无界数据通常要求以特定顺序摄取事件,例如事件发生的顺序,以便能够推断结果完整性。

有界流具有定义的开始和结束。可以在执行任何计算之前通过摄取所有数据来处理有界流。处理有界流不需要有序摄取,因为可以始终对有界数据集进行排序。有界流的处理也称为批处理。

Apache Flink擅长处理无界和有界数据集。精确控制时间和状态使Flink的运行时能够在无界流上运行任何类型的应用程序。有界流由算法和数据结构内部处理,这些算法和数据结构专门针对固定大小的数据集而设计,从而产生出色的性能。

你可能感兴趣的:(大数据)