当今编程人员面对的最大挑战就是复杂性,硬件越来越复杂,OS越来越复杂,编程语言和API越来越复杂,我们构建的应用也越来越复杂。根据外媒的一项调查报告,以下列出了Java程序员在过去12个月内一直使用的一些工具或框架,或许会对你有意义。

当今编程人员面临的***应战便是杂乱性,硬件越来越杂乱,OS越来越杂乱,编程言语和API越来越杂乱,咱们构建的运用也越来越杂乱。依据外媒的一项调查报告,以下列出了Java程序员在曩昔12个月内一向运用的一些东西或结构,或许会对你有意义。

最适合Java开发者的大数据东西和结构(java架构和大数据)  Java 大数据工具 第1张

先来看看大数据的概念。依据维基百科,大数据是巨大或杂乱的数据集的广义术语,因而传统的数据处理程序不足以支撑如此巨大的体量。

在许多情况下,运用SQL数据库存储/检索数据都是很好的挑选。而现如今的许多情况下,它都不再能满意咱们的意图,这一切都取决于用例的改变。

现在来评论一些不同的非SQL存储/处理数据东西,例如,NoSQL数据库,全文查找引擎,实时流式处理,图形数据库等。

1、MongoDB——***的,跨渠道的,面向文档的数据库。

MongoDB是一个根据散布式文件存储的数据库,运用C++言语编写。旨在为Web运用供给可扩展的高功用数据存储解决计划。运用功用凹凸依赖于数据库功用,MongoDB则对错联系数据库中功用最丰厚,最像联系数据库的,跟着MongDB 3.4版别发布,其运用场景适用才能得到了进一步拓宽。

最适合Java开发者的大数据东西和结构(java架构和大数据)  Java 大数据工具 第2张

MongoDB的中心优势便是灵敏的文档模型、高可用仿制集、可扩展分片集群。你可以试着从几大方面了解MongoDB,如实时监控MongoDB东西、内存运用量和页面过错、连接数、数据库操作、仿制集等。

2、Elasticsearch ——为云构建的散布式RESTful查找引擎。

ElasticSearch是根据Lucene的查找服务器。它供给了散布式多用户才能的全文查找引擎,根据RESTful web接口。Elasticsearch是用Java开发的,并作为Apache答应条款下的开放源码发布,是比较盛行的企业级查找引擎。

最适合Java开发者的大数据东西和结构(java架构和大数据)  Java 大数据工具 第3张

ElasticSearch不仅是一个全文本查找引擎,仍是一个散布式实时文档存储,其间每个field均是被索引的数据且可被查找;也是一个带实时剖析功用的散布式查找引擎,而且可以扩展至数以百计的服务器存储及处理PB级的数据。ElasticSearch在底层运用Lucene完结其索引功用,因而其许多基本概念源于Lucene。

3、Cassandra——开源散布式数据库办理体系,开始是由Facebook开发的,旨在处理许多产品服务器上的许多数据,供给高可用性,没有单点故障。

Apache Cassandra是一套开源散布式NoSQL数据库体系。集Google BigTable的数据模型与Amazon Dynamo的彻底散布式架构于一身。于2008开源,尔后,因为Cassandra杰出的可扩展性,被Digg、Twitter等Web 2.0网站所选用,成为了一种盛行的散布式结构化数据存储计划。

最适合Java开发者的大数据东西和结构(java架构和大数据)  Java 大数据工具 第4张

因Cassandra是用Java编写的,所以理论上在具有JDK6及以上版别的机器中都可以运转,官方测验的JDK还有OpenJDK 及Sun的JDK。 Cassandra的操作指令,相似于咱们平常操作的联系数据库,关于了解MySQL的朋友来说,操作会很简略上手。

4、Redis ——开源(BSD答应)内存数据结构存储,用作数据库,缓存和音讯署理。

最适合Java开发者的大数据东西和结构(java架构和大数据)  Java 大数据工具 第5张

Redis是一个开源的运用ANSI C言语编写的、支撑网络、可根据内存亦可耐久化的日志型、Key-Value数据库,并供给多种言语的API。Redis 有三个首要使其有别于其它许多竞争对手的特色:Redis是彻底在内存中保存数据的数据库,运用磁盘仅仅为了耐久性意图; Redis比较许多键值数据存储体系有相对丰厚的数据类型; Redis可以将数据仿制到恣意数量的从服务器中。

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

Hazelcast 是一种内存数据网格 in-memory data grid,供给Java程序员要害使命买卖和万亿级内存运用。尽管Hazelcast没有所谓的“Master”,可是依然有一个Leader节点(the oldest member),这个概念与ZooKeeper中的Leader相似,可是完成原理却彻底不同。一起,Hazelcast中的数据是散布式的,每一个member持有部分数据和相应的backup数据,这点也与ZooKeeper不同。

最适合Java开发者的大数据东西和结构(java架构和大数据)  Java 大数据工具 第6张

Hazelcast的运用快捷性深受开发者喜爱,但假如要投入运用,还需要慎重考虑。

6、EHCache——广泛运用的开源Java散布式缓存。首要面向通用缓存、Java EE和轻量级容器。

EhCache 是一个纯Java的进程内缓存结构,具有快速、精干等特色,是Hibernate中默许的CacheProvider。首要特性有:快速简略,具有多种缓存战略;缓存数据有两级,内存和磁盘,因而无需忧虑容量问题;缓存数据会在虚拟机重启的过程中写入磁盘;可以经过RMI、可刺进API等方法进行散布式缓存;具有缓存和缓存办理器的侦听接口;支撑多缓存办理器实例,以及一个实例的多个缓存区域;供给Hibernate的缓存完成。

7、Hadoop ——用Java编写的开源软件结构,用于散布式存储,并对非常大的数据集进行散布式处理。

最适合Java开发者的大数据东西和结构(java架构和大数据)  Java 大数据工具 第7张

用户可以在不了解散布式底层细节的情况下,开发散布式程序。充分运用集群进行高速运算和存储。Hadoop完成了一个散布式文件体系(Hadoop Distributed File System),简称HDFS。Hadoop的结构最中心的规划便是:HDFS和MapReduce。HDFS为海量的数据供给了存储,MapReduce则为海量的数据供给了核算。

8、Solr ——开源企业查找渠道,用Java编写,来自Apache Lucene项目。

Solr是一个独立的企业级查找运用服务器,它对外供给相似于Web-service的API接口。用户可以经过http恳求,向查找引擎服务器提交必定格局的XML文件,生成索引;也可以经过Http Get操作提出查找恳求,并得到XML格局的回来成果。

与ElasticSearch相同,相同是根据Lucene,但它对其进行了扩展,供给了比Lucene更为丰厚的查询言语,一起完成了可装备、可扩展并对查询功用进行了优化。

9、Spark ——Apache Software Foundation中最活泼的项目,是一个开源集群核算结构。

Spark 是一种与 Hadoop 相似的开源集群核算环境,可是两者之间还存在一些不同之处,这些不同之处使 Spark 在某些作业负载方面体现得愈加优胜,换句话说,Spark 启用了内存散布数据集,除了可以供给交互式查询外,它还可以优化迭代作业负载。

最适合Java开发者的大数据东西和结构(java架构和大数据)  Java 大数据工具 第8张

Spark 是在 Scala 言语中完成的,它将 Scala 用作其运用程序结构。与 Hadoop 不同,Spark 和 Scala 可以严密集成,其间的 Scala 可以像操作本地调集方针相同轻松地操作散布式数据集。

10、Memcached ——通用散布式内存缓存体系。

Memcached是一套散布式快取体系,开始是Danga Interactive为了LiveJournal所开展的,但被许多软件(如MediaWiki)所运用。Memcached作为高速运转的散布式缓存服务器,具有以下的特色:协议简略,根据libevent的事情处理,内置内存存储方法。

11、Apache Hive ——在Hadoop之上供给相似SQL的层。

最适合Java开发者的大数据东西和结构(java架构和大数据)  Java 大数据工具 第9张

Hive是一个根据Hadoop的数据仓库渠道。经过hive,可以方便地进行ETL作业。hive界说了一个相似于SQL的查询言语,可以将用户编写的SQL转化为相应的Mapreduce程序根据Hadoop履行。现在,现已发布了Apache Hive 2.1.1 版别。

12、Apache Kafka ——开始是由LinkedIn开发的高吞吐量,散布式订阅音讯体系。

最适合Java开发者的大数据东西和结构(java架构和大数据)  Java 大数据工具 第10张

Apache Kafka是一个开源音讯体系项目,由Scala写成。该项意图方针是为处理实时数据供给一个一致、高通量、低等候的渠道。Kafka保护按类区别的音讯,称为主题(topic)。生产者(producer)向kafka的主题发布音讯,顾客(consumer)向主题注册,而且接纳发布到这些主题的音讯。kafka以一个具有一台或多台服务器的集群运转着,每一台服务器称为broker。

13、Akka ——用于在JVM上构建高并发,散布式和弹性音讯驱动运用程序的东西包。

最适合Java开发者的大数据东西和结构(java架构和大数据)  Java 大数据工具 第11张

Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型运用。它现已成功运用在电信职业,体系简直不会宕机。

14、HBase ——开放源代码,非联系型,散布式数据库,选用Google的BigTable建模,用Java编写,并在HDFS上运转。

最适合Java开发者的大数据东西和结构(java架构和大数据)  Java 大数据工具 第12张

与FUJITSU Cliq等商用大数据产品不同,HBase是Google Bigtable的开源完成,相似Google Bigtable运用GFS作为其文件存储体系,HBase运用Hadoop HDFS作为其文件存储体系;Google运转MapReduce来处理Bigtable中的海量数据,HBase相同运用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable运用 Chubby作为协同服务,HBase运用Zookeeper作为对应。

15、Neo4j ——在Java中完成的开源图形数据库。

最适合Java开发者的大数据东西和结构(java架构和大数据)  Java 大数据工具 第13张

Neo4j是一个高功用的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、根据磁盘的、具有彻底业务特性的Java耐久化引擎。

16、CouchBase ——开源散布式的NoSQL面向文档数据库,针对交互式运用程序进行了优化。

假如曾经没有NoSQL的运用经历,那么了解couchbase的时分要害有两点:拖延写入和松懈存储。该产品根据Apache CouchDB,并整合了GeoCouch(一个根据Erlang、严密集成的地舆空间索引体系,可支撑LBS运用)。

17、Apache Storm——开源散布式实时核算体系。

最适合Java开发者的大数据东西和结构(java架构和大数据)  Java 大数据工具 第14张

Apache Storm 是一个能近实时地在数据之上运转用户代码片段的流式数据处理结构。它实际上是一系列连在一起的管道。一般用于简略的剖析使命 ,比如核算,以及清洗,使其惯例化,而且预备摄入用于长时刻存储的数据。

18、CouchDB——开源的面向文档的NoSQL数据库,运用JSON存储数据。

CouchDB 是一个开源的面向文档的数据库办理体系,可以经过 RESTful JavaScript Object Notation (JSON) API 拜访。CouchDB落实到***层的数据结构便是两类B+Tree 。

19、Oracle Coherence——内存数据网格解决计划,经过供给对常用数据的快速拜访,使企业可以可猜测地扩展要害使命运用程序。

简略来说,Coherence仅支撑Java,.NET和C++ API三个版别,这三个都是面向方针的言语,这也阐明Coherence和运用开发的亲和性。

20、Titan——可扩展的图形数据库,优化用于存储和查询包括散布在多机集群上的数百亿个极点和边的图形。

最适合Java开发者的大数据东西和结构(java架构和大数据)  Java 大数据工具 第15张

支撑不同的散布式存储层:Cassandra 1.1和HBase 0.92。原生完成 Blueprints graph API,Gremlin graph traversal language,Frames graph-to-object mapper,Rexster graph server。

21、Amazon DynamoDB——快速,灵敏的全面办理NoSQL的数据库服务,适用于任何规划的要求一致性,单位毫秒推迟的运用程序。

Amazon DynamoDB 是一种彻底保管的 NoSQL 数据库服务,供给快速而可猜测的功用,可以完成无缝扩展。

22、Amazon Kinesis——AWS上的实时流式传输数据渠道。

Web 运用程序、移动设备、可穿戴设备、职业传感器和许多软件运用程序和服务都或许生成许多的流数据(有时到达每小时数 TB),需要对其进行接连地搜集、存储和处理。Amazon Kinesis 便是针对这种需求发生的。

23、Datomic——彻底业务,云安排妥当,散布式数据库,用Clojure编写。

Datomic 是一个灵敏的、根据时刻因子的数据库,支撑联合查询,具有弹性的可扩展性以及支撑ACID业务性。Datomic 供给高可用的、散布式存储服务。

转载请说明出处
知优网 » 最适合Java开发者的大数据东西和结构(java架构和大数据)

发表评论

您需要后才能发表评论