23个java大数据处理框架

article/2025/9/16 7:43:05

本文转自:https://www.cnblogs.com/stm32stm32/p/6413557.html

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

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

在许多情况下,使用SQL数据库存储/检索数据都是很好的选择。而现如今的很多情况下,它都不再能满足我们的目的,这一切都取决于用例的变化。

现在来讨论一些不同的非SQL存储/处理数据工具,例如,NoSQL数据库,全文搜索引擎,实时流式处理,图形数据库等。

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

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

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

2、Elasticsearch --为云构建的分布式RESTful搜索引擎。

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

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

3、Cassandra--开源分布式数据库管理系统,最初是由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许可)内存数据结构存储,用作数据库,缓存和消息代理。

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不同。

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

6、EHCache--广泛使用的开源Java分布式缓存。主要面向通用缓存、Java EE和轻量级容器。

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

7、Hadoop --用Java编写的开源软件框架,用于分布式存储,并对非常大的数据集进行分布式处理。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群进行高速运算和存储。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 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

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

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

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

11、Apache Hive --在Hadoop之上提供类似SQL的层。

Hive是一个基于Hadoop的数据仓库平台。通过hive,可以方便地进行ETL工作。hive定义了一个类似于SQL的查询语言,能够将用户编写的SQL转化为相应的Mapreduce程序基于Hadoop执行。目前,已经发布了Apache Hive 2.1.1 版本。

12、Apache Kafka --最初是由LinkedIn开发的高吞吐量,分布式订阅消息系统。

Apache Kafka是一个开源消息系统项目,由Scala写成。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。Kafka维护按类区分的消息,称为主题(topic)。生产者(producer)向kafka的主题发布消息,消费者(consumer)向主题注册,并且接收发布到这些主题的消息。kafka以一个拥有一台或多台服务器的集群运行着,每一台服务器称为broker。

13、Akka --用于在JVM上构建高并发,分布式和弹性消息驱动应用程序的工具包。

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

14、HBase --开放源代码,非关系型,分布式数据库,采用Google的BigTable建模,用Java编写,并在HDFS上运行。

与FUJITSU Cliq等商用大数据产品不同,HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用HadoopMapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。

15、Neo4j --在Java中实现的开源图形数据库。

Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全事务特性的Java持久化引擎。

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

如果以前没有NoSQL的使用经验,那么理解couchbase的时候关键有两点:延后写入和松散存储。该产品基于Apache CouchDB,并整合了GeoCouch(一个基于Erlang、紧密集成的地理空间索引系统,可支持LBS应用)。

17、Apache Storm--开源分布式实时计算系统。

 

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--可扩展的图形数据库,优化用于存储和查询包含分布在多机集群上的数百亿个顶点和边的图形。

支持不同的分布式存储层: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 提供高可用的、分布式存储服务。


http://chatgpt.dhexx.cn/article/qhhP2XSx.shtml

相关文章

大数据开发要学Java框架吗?

大数据开发要学Java框架吗?学习大数据要去学习Java而且还要精通,不仅要掌握Java基础知识还要掌握一些核心的Java架构。从java基础开始,学习大数据开发过程中必备的离线数据分析、实时数据分析和内存数据计算等,掌握大数据体系中几乎所有的核心…

java 大数据以及Hadoop相关概念介绍

一、大数据的基本概念 1.1、什么是大数据 大数据指的就是要处理的数据是TB级别以上的数据。大数据是以TB级别起步的。在计算机当中,存放到硬盘上面的文件都会占用一定的存储空间,例如: 文件占用的存储空间代表的就是该文件的大小&#xff0…

JAVA开发搞了一年多大数据的总结

2021年7月份加入了当前项目组,以一个原汁原味的Java开发工程师的身份进来的,来了没多久,项目组唯一一名大数据开发工程师要离职了,一时间一大堆的数据需求急需人来接手,此刻又招不来新的数据开发。没辙,我和…

Java和Java大数据有什么区别?

分别提起Java或者大数据,很多人对此都一目了然,但对于Java大数据这样一个新鲜名词,多少有些疑惑。那Java和Java大数据学习的内容是一样的吗?两者有什么区别呢?今天就从Java和Java大数据的以下方面谈谈两者的区别。 1.…

svn安装、配置及使用文档

SVN安装、配置及使用 SVN服务器安装 1) 下载地址:https://www.visualsvn.com/server/changes/ (此处以5.0.0版本为例) 2) 安装路径:D:\SVNserver 代码库路径:D:\SVNserver\Repositories 备份路…

小乌龟SVN安装和使用

TortoiseSVN的安装与应用 1、安装 1.1、下载TortoiseSVN 点击下载TortoiseSvn 1.2、下载汉化包。上面的页面中,找到Chinese, simplified汉化包,点击32位或者64位的Setup,下载汉化包。 1.3、安装TortoiseSVN。在选择安装路径页面时要记…

CICD详解(五)——SVN安装与配置

今天继续给大家介绍Linux运维相关知识,本文主要内容是SVN的安装与配置。 一、SVN安装与建库 SVN可以使用yum的方式进行安装,安装命令如下: yum install -y subversion安装完成后,我们建立一个SVN的文件目录,在该文件…

SVN安装不成功卸载不干净后如何重装SVN和右键显示SVN

SVN安装不成功卸载不干净后如何重装SVN和右键显示SVN CHECKOUT 十分好用!!! 1.我当时是下载了SVN最新版本然后在安装SVN时安装长期没有响应,显示安装失败; 2.再次安装显示还有残留的SVN,也就意味着我原来…

IDEA---SVN安装及配置

一.安装SVN SVN下载:提取码xcwx 所有步骤都下一步即可,注意两个步骤如果电脑上本身下过SVN会出现图1,如果本身第一次安装时如图2第二个已经选择了will be这个选项就可以跳过安装,没有的话选图1Modify把图2勾选上,进行…

关于SVN安装目录下,没有svn.exe程序的解决

关于SVN安装目录下,没有svn.exe程序的解决 原因: 产生这个问题的原因是由于我们在安装svn时,默认缺少一项导致的,我们只需要再重新安装一下即可(不需要卸载) 双击安装文件后,选择Modify 2.勾选command line client tools项,选择第一个(默认是最后一个) 3.选择完成后,我们直…

SVN安装和使用详细教程

一、SVN 服务器和客户端安装 1、安装服务器程序:VisualSVN-Server-1.6.4.msi。 2、安装客户端程序TortoiseSVN:TortoiseSVN-1.6.4.16808-win32-svn-1.6.4.msi,完成安装后,重新启动机器。 3、安装客户端语言包:Languag…

SVN安装与使用教程

为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本。 SVN的安装(可参考SVN服务器搭建(一) - Yanky …

【SVN】windows SVN安装使用教程(服务器4.3.4版本/客户端1.11.0版本)

介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力&a…

SVN安装步骤及在IDEA中配置

SVN安装步骤及在IDEA中配置 1、下载 首先进入官网:https://www.visualsvn.com/visualsvn/ 其次 找到Download 按钮 然后找到Prerequisite Software: TortoiseSVN,在右边找到对应的版本进行下载。 2、安装 svn的安装比较简单,可以直接一路next安装,但是也需要注…

linux之SVN安装

什么是SVN SVNSVN是subversion的缩写,,用于多个人共同开发同一个项目,实现共享资源,是全球应用最广泛的集中式管理工具。 1.通过yum命令安装svnserve yum -y install subversion 2.进入/var目录,创建SVN目录 mkdir…

SVN安装配置以及启动

SVN是一个开放源代码的版本控制系统,全称叫做Subversion windows下载链接地址 1.下载并安装 下载好之后直接双击,然后安装就没什么好说的了,这个软件安装极其简单。 2.验证 cmd中敲svn --version ,如果出现下面的结果,…

SVN安装以及使用教程

目录 使用说明 检出项目 导入项目 提交 更新 查看日志 版本回滚 版本控制 总结 如果命令行操作,勾选command line client tool为will be install on local hard driver,不用命令行跳过这一步。 一路next安装。安装完毕后,在任意地方右键查看快捷…

SVN安装使用教程

TortoiseSVN安装教程 1、首先我们先在本站下载TortoiseSVN6位软件包,下载完成后我们解压得到两个msi格式的文件,我们鼠标左键双击得到的TortoiseSVN-1.11.0.28416-x64-svn-1.11.0.msi文件,然后进入到下图中的TortoiseSVN安装界面&#xff0c…

SVN安装教程详解

SVN安装教程 软件包请移步到百度云网盘:链接:https://pan.baidu.com/s/1qHQSk-kl-fcebnFFJqQP1A 提取码:ix1q 1.1、TortoiseSVN 安装 先安装TortoiseSVN,然后安装汉化包安装成功之后,所有的操作都是“右键”安装成…

svn安装以及初步使用

前言 今天要分享的知识是svn管理工具 码字不易,转载请说明!!! 目录 一、团队项目具体步骤 二、svn服务端具体安装步骤 ①获取svn服务端资源,双击打开,点击Next ②勾选再Next ③按图所示就行&#xff…