Java程序员在用大数据工具有哪些?
懒人大天才
2024-04-23 22:48
大数据是一个含义广泛的术语,是指数据集,如此庞大而复杂的,他们需要专门设计的硬件和软件工具进行处理。该数据集通常是万亿或EB的大小。这些数据集收集自各种各样的来源:传感器,气候信息,公开的信息,如杂志,报纸,文章。大数据产生的其他例子包括购买交易记录,网络日志,病历,军事监控,视频和图像档案,及大型电子商务。
在大数据和大数据分析,他们对企业的影响有一个兴趣高涨。大数据分析是研究大量的数据的过程中寻找模式,相关性和其他有用的信息,可以帮助企业更好地适应变化,并做出更明智的决策。
有人问java开发人员关于最近12个月内他们使用的是什么大数据工具。这是一个系列,主题为:
1.语言
2.web框架
3.应用服务器
4.SQL数据访问工具
5.SQL数据库
6.大数据
7.构建工具
8.云提供商
在许多情况下,使用SQL数据库用于存储/检索数据就足够了。但在另一些情况下,要么SQL数据库规模不够,要么还有更好的工具。这一切都取决于使用情况。
现在让我们来讨论一下存储/处理数据用的不同的非SQL工具——NoSQL数据库,内存缓存,全文搜索引擎,实时流,图形数据库,等等。
MongoDB——一种流行的,跨平台的面向文档的数据库。
Elasticsearch——专为云而构建的分布式REST风格搜索引擎。
Cassandra——一个开源的分布式数据库管理系统,最初由Facebook开发,被设计用来处理横跨多个商用服务器的大量数据,提供了无单点故障的高度可用性。
Redis——一个开源的(BSD许可),内存数据结构存储,作为数据库、缓存和消息代理使用。
Hazelcast——基于Java的开源内存数据网格。
EHCache——一种被广泛使用的开源Java分布式缓存,用于通用缓存、JavaEE和轻量级容器。Ehcache相关介绍
Hadoop——用Java编写的一个开源软件框架,用于分布式存储和对在计算机集群上的超大型数据集的分布式处理。
Solr——一个开源的企业搜索平台,用Java编写的,来自于ApacheLucene项目。
Spark——ApacheSoftwareFoundation中最活跃的项目,一个开源的集群计算框架。
Memcached——一个通用的分布式内存缓存系统。
ApacheHive——提供了Hadoop之上类似于SQL的层。
ApacheKafka——一个高通量、分布式的发布-订阅式消息系统,最初开发在LinkedIn上。Windows上脱离Cygwin运行ApacheKafka
Akka——一个工具包和运行时,用于在JVM上构建高度并行的、分布式的、有弹性的消息驱动的应用程序。
HBase——一个开源的,非关系型的,分布式数据库,在谷歌的BigTable后建模,用Java编写,并运行在HDFS上。
Neo4j——用Java实现的开源图形数据库。
CouchBase——一个开源的、面向文档的分布式NoSQL数据库,特别为了交互式应用而优化。
ApacheStorm——开源的分布式实时计算系统。
CouchDB——使用JSON来存储数据的面向文档的开源NoSQL数据库。
OracleCoherence——一个内存的数据网格解决方案,通过提供快速访问常用数据的渠道,使得企业可预测地扩展关键任务应用程序。
Titan——一个可扩展的图形数据库,优化的目的在于存储和查询包含数千亿顶点和边的图形,分布在多机集群。
AmazonDynamoDB——一个快速、灵活、完全管理的NoSQL数据库服务,用于在任何规模需要一致的、个位数毫秒延迟的所有应用程序。
AmazonKinesis——用于在AWS上的流数据的实时平台。
Datomic——一个用Clojure写的完全事务式的,支持云的,分布式数据库。
除了以上类型,小编在这里还要为大家安利6个用于大数据分析的最好工具!
一、Hadoop
Hadoop是一个能够对大量数据进行分布式处理的软件框架。但是Hadoop是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop还是可伸缩的,能够处理PB级数据。此外,Hadoop依赖于社区服务器,因此它的成本比较低,任何人都可以使用。
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:
⒈高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
⒉高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
⒊高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
⒋高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
Hadoop带有用Java语言编写的框架,因此运行在Linux生产平台上是非常理想的。Hadoop上的应用程序也可以使用其他语言编写,比如C++。
二、HPCC
HPCC,HighPerformanceComputingandCommunications(高性能计算与通信)的缩写。1993年,由美国科学、工程、技术联邦协调理事会向国会提交了“重大挑战项目:高性能计算与通信”的报告,也就是被称为HPCC计划的报告,即美国总统科学战略项目,其目的是通过加强研究与开发解决一批重要的科学与技术挑战问题。HPCC是美国实施信息高速公路而上实施的计划,该计划的实施将耗资百亿美元,其主要目标要达到:开发可扩展的计算系统及相关软件,以支持太位级网络传输性能,开发千兆比特网络技术,扩展研究和教育机构及网络连接能力。
该项目主要由五部分组成:
1、高性能计算机系统(HPCS),内容包括今后几代计算机系统的研究、系统设计工具、先进的典型系统及原有系统的评价等;
2、先进软件技术与算法(ASTA),内容有巨大挑战问题的软件支撑、新算法设计、软件分支与工具、计算计算及高性能计算研究中心等;
3、国家科研与教育网格(NREN),内容有中接站及10亿位级传输的研究与开发;
4、基本研究与人类资源(BRHR),内容有基础研究、培训、教育及课程教材,被设计通过奖励调查者-开始的,长期的调查在可升级的高性能计算中来增加创新意识流,通过提高教育和高性能的计算训练和通信来加大熟练的和训练有素的人员的联营,和来提供必需的基础架构来支持这些调查和研究活动;
5、信息基础结构技术和应用(IITA),目的在于保证美国在先进信息技术开发方面的领先地位。
三、Storm
Storm是自由的开源软件,一个分布式的、容错的实时计算系统。Storm可以非常可靠的处理庞大的数据流,用于处理Hadoop的批量数据。Storm很简单,支持许多种编程语言,使用起来非常有趣。Storm由Twitter开源而来,其它知名的应用企业包括Groupon、淘宝、支付宝、阿里巴巴、乐元素、Admaster等等。
Storm有许多应用领域:实时分析、在线机器学习、不停顿的计算、分布式RPC(远过程调用协议,一种通过网络从远程计算机程序上请求服务)、ETL(Extraction-Transformation-Loading的缩写,即数据抽取、转换和加载)等等。Storm的处理速度惊人:经测试,每个节点每秒钟可以处理100万个数据元组。Storm是可扩展、容错,很容易设置和操作。
四、ApacheDrill
为了帮助企业用户寻找更为有效、加快Hadoop数据查询的方法,Apache软件基金会近日发起了一项名为“Drill”的开源项目。ApacheDrill实现了Google’sDremel.
据Hadoop厂商MapRTechnologies公司产品经理TomerShiran介绍,“Drill”已经作为Apache孵化器项目来运作,将面向全球软件工程师持续推广。
该项目将会创建出开源版本的谷歌DremelHadoop工具(谷歌使用该工具来为Hadoop数据分析工具的互联网应用提速)。而“Drill”将有助于Hadoop用户实现更快查询海量数据集的目的。
“Drill”项目其实也是从谷歌的Dremel项目中获得灵感:该项目帮助谷歌实现海量数据集的分析处理,包括分析抓取Web文档、跟踪安装在AndroidMarket上的应用程序数据、分析垃圾邮件、分析谷歌分布式构建系统上的测试结果等等。
通过开发“Drill”Apache开源项目,组织机构将有望建立Drill所属的API接口和灵活强大的体系架构,从而帮助支持广泛的数据源、数据格式和查询语言。
五、RapidMiner
RapidMiner是世界领先的数据挖掘解决方案,在一个非常大的程度上有着先进技术。它数据挖掘任务涉及范围广泛,包括各种数据艺术,能简化数据挖掘过程的设计和评价。
功能和特点
1.免费提供数据挖掘技术和库
2.100%用Java代码(可运行在操作系统)
3.数据挖掘过程简单,强大和直观
4.内部XML保证了标准化的格式来表示交换数据挖掘过程
5.可以用简单脚本语言自动进行大规模进程
6.多层次的数据视图,确保有效和透明的数据
7.图形用户界面的互动原型
8.命令行(批处理模式)自动大规模应用
9.JavaAPI(应用编程接口)
10.简单的插件和推广机制
11.强大的可视化引擎,许多尖端的高维数据的可视化建模
12.400多个数据挖掘运营商支持
耶鲁大学已成功地应用在许多不同的应用领域,包括文本挖掘,多媒体挖掘,功能设计,数据流挖掘,集成开发的方法和分布式数据挖掘。
六、PentahoBI
PentahoBI平台不同于传统的BI产品,它是一个以流程为中心的,面向解决方案(Solution)的框架。其目的在于将一系列企业级BI产品、开源软件、API等等组件集成起来,方便商务智能应用的开发。它的出现,使得一系列的面向商务智能的独立产品如Jfree、Quartz等等,能够集成在一起,构成一项项复杂的、完整的商务智能解决方案。
PentahoBI平台,PentahoOpenBI套件的核心架构和基础,是以流程为中心的,因为其中枢控制器是一个工作流引擎。工作流引擎使用流程定义来定义在BI平台上执行的商业智能流程。流程可以很容易的被定制,也可以添加新的流程。BI平台包含组件和报表,用以分析这些流程的性能。目前,Pentaho的主要组成元素包括报表生成、分析、数据挖掘和工作流管理等等。这些组件通过J2EE、WebService、SOAP、HTTP、Java、Javascript、Portals等技术集成到Pentaho平台中来。Pentaho的发行,主要以PentahoSDK的形式进行。
PentahoSDK共包含五个部分:Pentaho平台、Pentaho示例数据库、可独立运行的Pentaho平台、Pentaho解决方案示例和一个预先配制好的Pentaho网络服务器。其中Pentaho平台是Pentaho平台最主要的部分,囊括了Pentaho平台源代码的主体;Pentaho数据库为Pentaho平台的正常运行提供的数据服务,包括配置信息、Solution相关的信息等等,对于Pentaho平台来说它不是必须的,通过配置是可以用其它数据库服务取代的;可独立运行的Pentaho平台是Pentaho平台的独立运行模式的示例,它演示了如何使Pentaho平台在没有应用服务器支持的情况下独立运行;
Pentaho解决方案示例是一个Eclipse工程,用来演示如何为Pentaho平台开发相关的商业智能解决方案。
PentahoBI平台构建于服务器,引擎和组件的基础之上。这些提供了系统的J2EE服务器,安全,portal,工作流,规则引擎,图表,协作,内容管理,数据集成,分析和建模功能。这些组件的大部分是基于标准的,可使用其他产品替换之。
小编结语:
更多内容尽在编程学习网教育!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341