jjzjj

Bossies 2016:最佳开源大数据工具

分享IT资源 2024-06-01 原文
导读在今年的 Bossie开源大数据工具中,你会发现最新最好的方法是利用大型集群进行索引、搜索、图形处理、流处理、结构化查询、分布式OLAP和机器学习,因为众多处理器和RAM可降低工作量级。

处理大数据可能会遇到各种各样的问题,目前没有任何工具可以完美地处理这一切——即便是Spark。

Bossie奖是英文IT网站InfoWorld针对开源软件颁发的年度奖项,根据这些软件对开源界的贡献,以及在业界的影响力评判获奖对象。本次InfoWorld评选出了13款最佳开源大数据工具,Spark、Beam都名列榜单之上。

Spark

Spark是写在Scala中的内存分布式处理框架,在Apache的大数据项目中非常火爆。随着Spark 2.0版本的发布,它的优势似乎在延续。除了SQL语句实现等基础功能,新版本的Spark在性能上也大幅提升。Spark 2.0在DataFrames的基础上进一步完善,比如新的Structured Streaming API 等。这一切改变使Spark程序员的操作更清楚简单,但Structured Streaming 可能会有较大改变。

从RDD的批处理进程转变为无边界的DataFrame概念,Structured Streaming将使某些特定场景的流处理(比如捕获数据变更和位置更新)更容易实现,允许DataFrame本身的窗口时间序列,而不是进入流管道的新事件,这是Spark流式处理长期以来的痛点,尤其是与Apache Flink和Apache Beam相比,Saprk 2.0终于弥补了这块空白。如果你至今没有学会Spark,你就OUT了。

Beam

Google Beam是Apache的孵化器项目,提供了一种不需要每次改变引擎都重写代码的方式。目前看来,Spark可能是未来的编程模型,但如果不是呢?此外,如果你对一些扩展功能和Google DataFlow性能感兴趣,你可以自己在Beam平台编写代码并在DataFlow,Spark甚至是Flink上运行。我们很喜欢即写即运行的想法,但Beam不支持类似REPL的开发者功能,但未来它将是一款不错的分析工具。

TensorFlow

TensorFlow是Google针对机器学习提出的开源软件,无论是字符识别,图像识别,自然语言处理还是其他复杂的机器学习应用,TensorFlow可能都是你的首选。

TensorFlow是用C++写的,但支持Python。此外,它最终会呈现出一个十分方便的方式运行分布式代码,优化GPS和CPU的并行代码。这将是下一个大数据工具,未来将会持续进行讨论。

Solr

作为Hadoop重量级厂商Hortonworks,Cloudera以及MapR等的选择,Apache Solr为企业带来可信任的、成熟的搜索引擎技术。Solr基于Apache Lucene引擎,这两个项目共享于许多社区。你可以在类似Instagram,Zappos,Comcast和DuckDuckGO等企业场景背后发现 Solr的身影。

Solr中的SolrCloud,是利用Apache ZooKeeper创建可伸缩、分布式的搜索和索引解决方案,并且高度抵御分布式系统类似脑裂等常见问题。伴随着可靠性,SolrCloud的规模可按需变化,并且它足够成熟可以处理数十亿文档之间的大量查询请求。

Elasticsearch

Elasticsearch同样基于Apache Lucene引擎,是针对现在的REST API 和JSON文档概念的开源分布式搜索引擎。Elasticsearch集群数据从GB向PB级扩展十分容易,只需要很低的处理开销。

作为ELK堆栈的一部分(Elasticsearch,Logastash和Kibana都是由Elasticsearch创造者Elastic创造的),Elasticsearch已经发现了它作为开源Splunk替代日志分析的杀手级应用。类似于 Nteflix,Facebook,Microsoft以及Linkedln公司在日志基础架构上会选择运行大型Elasticsearch集群。此外,ELK堆栈正在寻找其他方向,比如欺诈检测和特定领域的业务分析,这将使Elasticsearch在更多企业得到使用。

SlamData

未来对SlamData来说是一场长途旅行。为什么会选择使用MongoDB作为分析解决方案呢?可能因为这是一个可操作数据库。然而,正如 SlamData的Jeff Carr所言,它并不疯狂。有很多MongoDB方向新的公司和年轻的开发者产生,如果你使用MongoDB数据存储,并且需要运行基础的分析,你要创建整个Hadoop集群或者其他设施报告吗?SlamData允许用熟悉的SQL语法来进行JSON数据的嵌套查询,不需要转换或语法改造。

该技术的主要特点之一是它的连接器。从MongoDB,HBase,Cassandra和Apache的Spark,SlamData同大多数业界标准的外部数据源可以方便的进行整合,并进行数据转换和分析数据。SlamData有基于SQL的引擎,本质上说和MongoDB类似,但不像MongoDB 有自己的解决方案,SlamData并没有吸纳PostgreSQL的所有数据,并称之为BI连接。既然核心技术是开源的,我认为可以期待未来有更多公司采用其技术不断完善该领域产品。

Impala

Apache Impala是针对Hadoop上SQL处理的Cloudera引擎。如果你正在使用Hive,Impala是一种不需要你重复考虑任何事情就可以达到查询性能的简单方法。基于行的分布式大规模并行处理系统,Impala相比于在Spark上组合Hive更加成熟和彻底。即便没有太多的调优,Impala 还是可以提高性能,并且一定比你付出同样努力使用Tez的效果要好。如果你在HDFS的文件之上需要使用SQL,Impala可能是最好的选择。

Kylin

如果你正在做N维立方体分析和现代大数据框架,Kylin很对你的口。如果你从没听说过OLAP多维数据集,没关系。如果你正在考虑RDBMS中存在一对多关系表,但有一部分需要计算字段,你可以选择在SQL里进行查询和计算,但是这太缓慢了。当我们的关系和计算量更多更复杂时,又该怎么办呢?不是平面的表,把它们想象成立方体组成的若干块,每一块事先预计价值。你可能有N维或多维数据。Kylin当然不是第一个实现分布式OLAP的,但它是最先进的技术之一,并且目前可以下载并安装在云端。

Kafka

Kafka是非常标准的分布式发布和订阅标准,现在已经用于世界上一些比较大的系统,Kafka的消息传递更加可靠,尽管与之前的系统不同,通过分布式提交日志保持耐久性。然而,Kafka的分区流处理支持高速数据加载和大量用户。比较讽刺的是,尽管所有这些功能已经足够让人惊讶了,但Kafka十分容易安装部署,这在大数据和消息传递规则里是个例外。

StreamSets

你可能有一些数据需要处理,这些数据可能在文件夹里(比如网络日志)或者正在Kafka上传递,虽然有很多方法可以实现,但使用StreamSets可以在最短的时间内做你想做的任何事情,它比其他解决方案更加完整。也有越来越多的强壮的连接器 (HDFS,Hive,Kafka,Kinesis),REST API,和GUI来监控数据流动,这也正是他们一直在努力做的事情。

Titan

直到人们意识到使用图表进行存储非常有用,图形数据库才开始火了起来。一个携带所有附件可插拔式存储的复杂数据库,本质上是指高度可分配的数据库列族。与其他图形数据库相比,Titan可以扩展。与严格的图形分析框架相比,Titan可以提供更好的性能,相比于Giraph,不需要使用内存资源或者时间重构图形,相当于GiraphX,更不用说潜在的优秀的数据完整性特征。

Zeppelin

无论你是一个只想要美观图形的开发者,还是想成为数据科学家,Zeppelin可能都适合你,它使用似曾相识的类似于IPython的笔记本概念,允许通过写标记,嵌入式代码,执行代码,它存在于Spark或其他引擎中,通过生成文本,表格或者图表形式输出。Zeppelin仍然缺乏一些特性和多功能DataBrick,但它正在稳步前进。如果你使用Spark,Zeppelin就存在于工具包中。更多Linux资讯请查看:https://www.linuxprobe.com/  ·

 

有关Bossies 2016:最佳开源大数据工具的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. ruby - Ruby 有 `Pair` 数据类型吗? - 2

    有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳

  4. ruby - 我如何添加二进制数据来遏制 POST - 2

    我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_

  5. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  6. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  7. 使用canal同步MySQL数据到ES - 2

    文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co

  8. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  9. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  10. ruby-on-rails - 创建 ruby​​ 数据库时惰性符号绑定(bind)失败 - 2

    我正在尝试在Rails上安装ruby​​,到目前为止一切都已安装,但是当我尝试使用rakedb:create创建数据库时,我收到一个奇怪的错误:dyld:lazysymbolbindingfailed:Symbolnotfound:_mysql_get_client_infoReferencedfrom:/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundleExpectedin:flatnamespacedyld:Symbolnotfound:_mysql_get_client_infoReferencedf

随机推荐