13款开源Java大数据工具,从理论到实践的剖析

大数据几乎已成为所有商业领域共有的最新趋势,然而大数据究竟是什么?是噱头、泡沫,又或是真如传言一样的重要。

事实上,大数据是个非常简单的术语——就像它所说的一样,是非常大的数据集。那么究竟有大多?真实的答案就是“如你所想的那么大”!

那么为什么会产生如此之大的数据集?因为当今的数据已经无所不在并且存在着巨大的回报:收集通信数据的RFID传感器,收集天气信息的传感器,移动设备给社交网站发送的GPRS数据包,图片视频,在线购物产生的交易记录,应有尽有!大数据是一个巨大的数据集,包含了任何数据源产生的信息,当然前提是这些信息是我们感兴趣的。

然而大数据的含义绝不只与体积相关,因为大数据还可以用于寻找新的真知、形成新的数据和内容;我们可以使用从大数据中提取的真知、数据和内容去使商业更加灵活,以及回答那些之前被认为远超当前范畴的问题。这也是大数据被从以下4个方面定义的原因:Volume(体积)、Variety(多样)、Velocity(效率)以及Veracity(Value,价值),也就是大数据的4V。下面将简述每个特性以及所面临的挑战:

1. Volume

Volume说的是一个业务必须捕获、存储及访问的数据量,仅仅在过去两年内就生产了世界上所有数据的90%。现今的机构已完全被数据的体积所淹没,轻易的就会产生TB甚至是PB级不同类型的数据,并且其中有些数据需要被组织、防护(窃取)以及分析。

2. Variety

世界上产生的数据有80%都是半结构化的,传感器、智能设备和社交媒体都是通过Web页面、网络日志文件、社交媒体论坛、音频、视频、点击流、电子邮件、文档、传感系统等生成这些数据。传统的分析方案往往只适合结构化数据,举个例子:存储在关系型数据库中的数据就有完整的结构模型。数据类型的多样化同样意味着为支持当下的决策制定及真知处理,我们需要在数据储存和分析上面进行根本的改变。Variety代表了在传统关系数据库中无法轻易捕获和管理的数据类型,使用大数据技术却可以轻松的储存和分析。

3. Velocity

Velocity则需要对数据进行近实时的分析,亦称“sometimes 2 minutes is too late!”。获取竞争优势意味着你需要在几分钟,甚至是几秒内识别一个新的趋势或机遇,同样还需要尽可能的快于你竞争对手。另外一个例子是时间敏感性数据的处理,比如说捕捉罪犯,在这里数据必须被收集后就完成被分析,这样才能获取最大价值。对时间敏感的数据保质期往往都很短,这就需求组织或机构使用近实时的方式对其分析。

4. Veracity

通过分析数据我们得出如何的抓住机遇及收获价值,数据的重要性就在于对决策的支持;当你着眼于一个可能会对你企业产生重要影响的决策,你希望获得尽可能多的信息与用例相关。单单数据的体积并不能决定其是否对决策产生帮助,数据的真实性和质量才是获得真知和思路最重要的因素,因此这才是制定成功决策最坚实的基础。

然而当下现有的商业智能和数据仓库技术并不完全支持4V理论,大数据解决方案的开发正是针对这些挑战。

下面将介绍大数据领域支持Java的主流开源工具:

1. HDFS

HDFS是Hadoop应用程序中主要的分布式储存系统, HDFS集群包含了一个NameNode(主节点),这个节点负责管理所有文件系统的元数据及存储了真实数据的DataNode(数据节点,可以有很多)。HDFS针对海量数据所设计,所以相比传统文件系统在大批量小文件上的优化,HDFS优化的则是对小批量大型文件的访问和存储。

2. MapReduce

Hadoop MapReduce是一个软件框架,用以轻松编写处理海量(TB级)数据的并行应用程序,以可靠和容错的方式连接大型集群中上万个节点(商用硬件)。

3. HBase

Apache HBase是Hadoop数据库,一个分布式、可扩展的大数据存储。它提供了大数据集上随机和实时的读/写访问,并针对了商用服务器集群上的大型表格做出优化——上百亿行,上千万列。其核心是Google Bigtable论文的开源实现,分布式列式存储。就像Bigtable利用GFS(Google File System)提供的分布式数据存储一样,它是Apache Hadoop在HDFS基础上提供的一个类Bigatable。

4. Cassandra

Apache Cassandra是一个高性能、可线性扩展、高有效性数据库,可以运行在商用硬件或云基础设施上打造完美的任务关键性数据平台。在横跨数据中心的复制中,Cassandra同类最佳,为用户提供更低的延时以及更可靠的灾难备份。通过log-structured update、反规范化和物化视图的强支持以及强大的内置缓存,Cassandra的数据模型提供了方便的二级索引(column indexe)。

5. Hive

Apache Hive是Hadoop的一个数据仓库系统,促进了数据的综述(将结构化的数据文件映射为一张数据库表)、即席查询以及存储在Hadoop兼容系统中的大型数据集分析。Hive提供完整的SQL查询功能——HiveQL语言,同时当使用这个语言表达一个逻辑变得低效和繁琐时,HiveQL还允许传统的Map/Reduce程序员使用自己定制的Mapper和Reducer。

6. Pig

Apache Pig是一个用于大型数据集分析的平台,它包含了一个用于数据分析应用的高级语言以及评估这些应用的基础设施。Pig应用的闪光特性在于它们的结构经得起大量的并行,也就是说让它们支撑起非常大的数据集。Pig的基础设施层包含了产生Map-Reduce任务的编译器。Pig的语言层当前包含了一个原生语言——Pig Latin,开发的初衷是易于编程和保证可扩展性。

7. Chukwa

Apache Chukwa是个开源的数据收集系统,用以监视大型分布系统。建立于HDFS和Map/Reduce框架之上,继承了Hadoop的可扩展性和稳定性。Chukwa同样包含了一个灵活和强大的工具包,用以显示、监视和分析结果,以保证数据的使用达到最佳效果。

8. Ambari

Apache Ambari是一个基于web的工具,用于配置、管理和监视Apache Hadoop集群,支持Hadoop HDFS,、Hadoop MapReduce、Hive、HCatalog,、HBase、ZooKeeper、Oozie、Pig和Sqoop。Ambari同样还提供了集群状况仪表盘,比如heatmaps和查看MapReduce、Pig、Hive应用程序的能力,以友好的用户界面对它们的性能特性进行诊断。

9. ZooKeeper

Apache ZooKeeper是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、命名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

10. Sqoop

Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库中数据导入Hadoop的HDFS中,也可以将HDFS中数据导入关系型数据库中。

11. Oozie

Apache Oozie是一个可扩展、可靠及可扩充的工作流调度系统,用以管理Hadoop作业。Oozie Workflow作业是活动的Directed Acyclical Graphs(DAGs)。Oozie Coordinator作业是由周期性的Oozie Workflow作业触发,周期一般决定于时间(频率)和数据可用性。Oozie与余下的Hadoop堆栈结合使用,开箱即用的支持多种类型Hadoop作业(比如:Java map-reduce、Streaming map-reduce、Pig、 Hive、Sqoop和Distcp)以及其它系统作业(比如Java程序和Shell脚本)。

12. Mahout

Apache Mahout是个可扩展的机器学习和数据挖掘库,当前Mahout支持主要的4个用例:

推荐挖掘:搜集用户动作并以此给用户推荐可能喜欢的事物。
聚集:收集文件并进行相关文件分组。
分类:从现有的分类文档中学习,寻找文档中的相似特征,并为无标签的文档进行正确的归类。
频繁项集挖掘:将一组项分组,并识别哪些个别项会经常一起出现。

13. HCatalog

Apache HCatalog是Hadoop建立数据的映射表和存储管理服务,它包括:

提供一个共享模式和数据类型机制。
提供一个抽象表,这样用户就不需要关注数据存储的方式和地址。
为类似Pig、MapReduce及Hive这些数据处理工具提供互操作性。

时间: 2024-11-14 22:41:22

13款开源Java大数据工具,从理论到实践的剖析的相关文章

7 款开源 Java 反编译工具

今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程.尤其是像.NET.Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码.当然,也有一些商业软件,对其程序进行了混淆加密,这样我们就很难用工具反编译了. 1.Java反编译插件 —— Jadclipse JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到e

7款开源Java反编译工具

今天我们要来分享一些关于 Java 的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程.尤其是像 .NET.Java 这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码.当然,也有一些商业软件,对其程序进行了混淆加密,这样我们就很难用工具反编译了. 1.Java 反编译插件 -- Jadclipse JadClipse 是 Jad 的 Eclipse 插件,是一款非常实用而且方便地 Java 反编译插件,我们只

史上最全开源大数据工具汇总

摘要 史上最全的开源大数据工具,非常实用,请务必收藏! 史上最全的开源大数据工具,非常实用,请务必收藏! 查询引擎 Phoenix Salesforce公司出品,Apache HBase之上的一个SQL中间层,完全使用Java编写 Stinger 原叫Tez,下一代Hive, Hortonworks主导开发,运行在YARN上的DAG计算框架 Presto Facebook开源 Spark SQL Spark上的SQL执行引擎 Pig 基于Hadoop MapReduce的脚本语言 Clouder

Java程序员在用的大数据工具,MongoDB稳居第一!

据日前的一则大数据工具使用情况调查,我们知道了Java程序猿最喜欢用的大数据工具. 问题:他们最近一年最喜欢用什么工具或者是框架? 受访者可以选择列表中的选项或者列出自己的,本文主要关心的是大数据工具.上一篇Java调查包括下列内容: 开发语言 Web框架 应用服务器 数据库工具 SQL数据 大数据 开发工具 云供应商 现在,来看看维基百科上对大数据的定义: 大数据,广义上来说是一组量很大很复杂的数据集合,在这种情况下传统的数据处理方式将不再适用. 对于一般情况来说传统的SQL数据库足够用.再另

三款大数据工具比拼,谁才是真正的王者

业内有这样一种说法,SQL虽然在大数据分析领域久经考验,但是无奈长江后浪推前浪,和炙手可热的Hadoop相比,SQL已经过时了.这个说法有点言过其实,现在很多的项目都是将Hadoop作为数据存储,然后利用SQL进行前端查询.这说明Hadoop需要一种高级查询语言的支持. Hadoop MapReduce虽然能够进行数据分析,但是太复杂了.于是,开发人员开发出了类似SQL的Pig和Hive. 大数据时代,我们有很多的查询工具可以选择.虽然SQL占据着绝对优势,但是随着大数据的持续升温,也给了Apa

分享一下Java程序猿最喜欢用的大数据工具

据日前的一则大数据工具使用情况调查,我们知道了Java程序猿最喜欢用的大数据工具. 问题:他们最近一年最喜欢用什么工具或者是框架? 受访者可以选择列表中的选项或者列出自己的,本文主要关心的是大数据工具.上一篇Java调查包括下列内容: 开发语言 Web框架 应用服务器 数据库工具 SQL数据 大数据 开发工具 云供应商 现在,来看看维基百科上对大数据的定义: 大数据,广义上来说是一组量很大很复杂的数据集合,在这种情况下传统的数据处理方式将不再适用. 对于一般情况来说传统的SQL数据库足够用.再另

三款大数据工具比拼,真正的王者会是谁呢?

业内有这样一种说法,SQL虽然在大数据分析领域久经考验,但是无奈长江后浪推前浪,和炙手可热的Hadoop相比,SQL已经过时了.这个说法有点言过其实,现在很多的项目都是将Hadoop作为数据存储,然后利用SQL进行前端查询.这说明Hadoop需要一种高级查询语言的支持. Hadoop MapReduce虽然能够进行数据分析,但是太复杂了.于是,开发人员开发出了类似SQL的Pig和Hive. 大数据时代,我们有很多的查询工具可以选择.虽然SQL占据着绝对优势,但是随着大数据的持续升温,也给了Apa

Java转职大数据人群常使用的二十多个大数据工具

最近我问了很多Java开发人员关于最近12个月内他们使用的是什么大数据工具. 这是一个系列,主题为: 语言 web框架 应用服务器 SQL数据访问工具 SQL数据库 大数据 构建工具 云提供商 今天我们就要说说大数据.根据维基百科,大数据是数据集的一个广义的术语,并且该数据集是如此庞大和复杂,以致于传统的数据处理应用程序无法胜任. 在许多情况下,使用SQL数据库用于存储/检索数据就足够了.但在另一些情况下,要么SQL数据库规模不够,要么还有更好的工具.这一切都取决于使用情况. 现在让我们来讨论一

大数据工具千千万,到底谁才是最强王者?

外面有成千上万的大数据工具.它们都承诺可以为你节省时间和资金,并帮助发掘之前从来见过的业务洞察力.虽然确实如此,可是面对那么多的选择,想理清这么多的工具谈何容易. 哪一种工具适合你的技能组合?哪一种工具适合你的项目? 为了替你节省一点时间,并帮助你首次选对工具,我们列出了我们青睐的几款数据工具,涉及数据提取.存储.清理.挖掘.可视化.分析和整合等领域. 数据存储和管理 如果你准备处理大数据,就要考虑该如何存储大数据.大数据得到"大"这个名号,一方面在于,大数据太庞大了,传统系统处理不了