你好,游客 登录
背景:
阅读新闻

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

[日期:2014-04-16] 来源:科学博客  作者:张兴旺 [字体: ]

  什么是大数据?你可能会问; 更重要的是为什么它是在几乎所有业务领域的最新趋势?由于事实上“大数据”是一个非常简单的术语 - 它正是它说 - 一个非常大的数据集。有多大?确切的答案是“一样大,你能想象”!这个数据集怎么能这么大规模大吗?因为数据可能来自任何地方: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的主流开源工具:

 


Java大数据处理工具

  1.HDFS

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


Java大数据处理工具

  2.MapReduce

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

Java大数据处理工具

  3.HBase

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

Java大数据处理工具

  4.Cassandra

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

Java大数据处理工具

  5.Hive

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

 

Java大数据处理工具

  6.Pig

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

Java大数据处理工具

  7.Chukwa

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

 

Java大数据处理工具

  8.Ambari

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

 

Java大数据处理工具

  9.ZooKeeper

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

 

Java大数据处理工具

  10.Sqoop

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

Java大数据处理工具

  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脚本)。

Java大数据处理工具

  12.Mahout

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

  推荐挖掘:搜集用户动作并以此给用户推荐可能喜欢的事物。

  聚集:收集文件并进行相关文件分组。

  分类:从现有的分类文档中学习,寻找文档中的相似特征,并为无标签的文档进行正确的归类。

  频繁项集挖掘:将一组项分组,并识别哪些个别项会经常一起出现。

  13.HCatalog

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

  提供一个共享模式和数据类型机制。

  提供一个抽象表,这样用户就不需要关注数据存储的方式和地址。

  为类似Pig、MapReduce及Hive这些数据处理工具提供互操作性。

 

您可能还喜欢:

  1.【免费下载】基于Hadoop的海量大数据处理模型研究和应用

  2.优酷引入Spark深化大数据处理

  3.【干货】用R进行大数据处理集





收藏 推荐 打印 | 录入: | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款