给Java开发者的10个大数据工具和框架

大数据

当今IT开发人员面对的最大挑战就是复杂性,硬件越来越复杂,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的缓存实现。

用户喜欢...

Java性能调优的11个实用技巧

下面有几个很容易遵循的建议和最佳实践能够帮你创建一个性能良好的应用程序。...


JavaScript 新手的踩坑日记

引语 在1995年5月,Eich 大神在10天内就写出了第一个脚本语言的版本,JavaScript 的第一个代号是 Mocha,Marc Andreesen 起的这个名字。由于商标问题以及很多产品已经使用了 Live 的前缀,网景市场部...


Java程序员必须知道的系列辅助开发工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已...


终于,期待已久的 Java 9 正式发布了!

经过4次跳票,历经曲折的 Java 9 正式版终于发布了! 你可以通过这里下载 Java 9 正式版。JDK9 提供超过 150 项新功能特性,包括备受期待的模块化系统、可交互的 REPL 工具 jshell,以及安全增强、...


技术牛逼也要懂点社交:数据科学家公司生存指南TOP30秘诀

作者:SeattleDataGuy 数据科学家老司机的30个经验之谈,教你如何在公司内获得认同,带你绕过他们曾经踩过的坑。 作...


20个数据可视化工具点评

第一部分:入门级工具 1.Excel Excel的图形化功能并不强大,但Excel是分析数据的理想工具,上图是Excel生成的热力地图...


商机 | 大数据/政务云采购清单 招标7起,最高招标价为2089.41万(9.2-9.5)

文 | 36大数据 奥兰多 一、政府、企事业单位大数据/政务云中标成交清单,一共8起,最高成交价为1388.89万 二、政府、...


华为轮值CEO郭平:将长期投入公有云 不靠用户数据变现

作者:郭晓峰 在今日举行的华为 2017 全联接大会上,华为轮值 CEO、副董事长郭平表示,华为承诺长期投入公有云建设...


大数据让人开始怀疑人生

《 大数据时代》,维克托·迈尔·舍恩伯格、肯尼思·库克耶著,盛杨燕、周涛译,浙江人民出版社 一年多前听说了...


在 Airbnb 使用机器学习预测房源的价格

作者:Robert Chang 位于希腊爱琴海伊莫洛维里的一个 Airbnb 民宿的美好风景 简介 数据产品一直是 Airbnb 服务的重要组成...


「数据爆炸」预示着网络舆情分析也正式步入大数据时代

随着计算机技术和人工智能的不断发展,大数据时代的网络舆情分析备受关注。目前,在网民数量直奔8亿的大环境下...


MongoDB数据库遭大规模勒索攻击,被劫持26000多台服务器

刚刚曝出的大新闻,MongoDB数据库叕被攻击了。就在上周末,三个黑客团伙劫持了MongoDB逾26000多台服务器,其中规模最...


大数据处理框架的类型、比较和选择

前言 说起大数据处理,一切都起源于Google公司的经典论文:《MapReduce:Simplied Data Processing on Large Clus...


七牛大数据平台的演进与大数据分析实践

图 1 大数据生态体系 看着图 1 大家可能会感到熟悉,又或者会觉得部分有些陌生,这是一张汇集了目前大数据生态下...


HiTSDB 时序数据库技术架构和产品解析

作者:场景研读 摘要: 8月24日阿里云数据库技术峰会上,来自阿里数据库事业部高级专家钟宇带来HiTSDB 时序数据库...


通过数据分析提高企业销售成功率,GetAccept获160万美元种子轮融资

GetAccept的联合创始人Mathias Thulin非常熟悉销售们面临的一个个常见问题:他们和潜在客户聊得非常好,也能马上用邮件...