当前位置: 首页 > 科技观察

13款流行数据处理工具盘点

时间:2023-03-12 19:55:51 科技观察

本文转载自微信公众号《大数据DT》,作者Srivastava。转载本文请联系大数据DT公众号。数据分析是摄取、转换和可视化数据以发现对业务决策有用的见解的过程。在过去十年中,收集的数据越来越多,客户期望从数据中获得更有价值的见解。他们还希望在最短的时间内(甚至实时)获得这种洞察力。他们想要更多的临时查询来回答更多的业务问题。为了回答这些问题,客户需要更强大、更高效的系统。批处理通常涉及查询大量冷数据。在批处理中,可能需要数小时才能获得业务问题的答案。例如,您可以使用批处理在月底生成帐单报告。实时流处理通常涉及查询少量的热点数据,并且只需要很短的时间就可以得到答案。例如,Hadoop等基于MapReduce的系统是支持批处理作业类型的平台。数据仓库是一个支持查询引擎类型的平台。流数据处理需要摄取数据序列并增量更新每个数据记录。通常,它们会摄取连续生成的数据流,例如计量数据、监控数据、审计日志、调试日志、网站点击流以及设备、人员和货物的位置跟踪事件。图13-6显示了使用AWS云技术堆栈处理、转换和可视化数据的数据湖管道。▲图13-6使用数据湖ETL管道处理数据这里,ETL管道使用AmazonAthena对存储在AmazonS3中的数据执行临时查询。从各种数据源(例如Web应用程序服务器)提取的数据生成日志文件并保存在S3中。然后,这些文件由AmazonElasticMapReduce(EMR)转换和清理为生成见解所需的形式,并加载到AmazonS3中。这些转换后的文件使用COPY命令加载到AmazonRedshift中,并使用AmazonQuickSight进行可视化。借助AmazonAthena,您可以在存储数据时直接从AmazonS3进行查询,或者在数据转换后(从聚合数据集)进行查询。您可以在AmazonQuickSight中可视化数据并轻松查询这些文件,而无需更改现有数据流程。以下是一些最流行的数据处理技术,可以帮助您转换和处理海量数据:01ApacheHadoopApacheHadoop采用分布式处理架构,将任务分发到服务器集群进行处理。分配给集群服务器的每个任务都可以在任何服务器上运行或重新运行。集群服务器通常使用HDFS将数据存储在本地进行处理。在Hadoop框架中,Hadoop将大型作业划分为离散的任务并并行处理它们。它可以在大量的Hadoop集群中实现大规模的可扩展性。它还被设计成容错的,每个工作节点定期向主节点报告其状态,主节点可以将工作负载从没有积极响应的集群中重新分配。Hadoop最常用的框架是Hive、Presto、Pig和Spark。02ApacheSparkApacheSpark是一个内存处理框架。ApacheSpark是一个大规模并行处理系统,具有不同的执行器,可以拆分Spark作业并并行执行任务。为了提高作业的并行性,可以向集群中添加节点。Spark支持批处理、交互式和流式数据源。Spark在作业执行期间的所有阶段都使用有向无环图(DAG)。DAG可以在作业过程中跟踪数据的转换或数据沿袭,并将DataFrames存储在内存中,有效地减少I/O。Spark也是分区感知的,以避免网络密集型数据混洗。03Hadoop用户体验Hadoop用户体验(HUE)使您能够通过基于浏览器的用户界面而不是命令行在集群上查询和运行脚本。HUE在用户界面中提供最常见的Hadoop组件。它支持基于浏览器的Hadoop操作查看和跟踪。多个用户可以登录HUE的门户访问集群,管理员可以手动或通过LDAP、PAM、SPNEGO、OpenID、OAuth和SAML2身份验证管理访问。HUE允许您实时查看日志,并提供一个Metastore管理器来操作HiveMetastore内容。04PigPig通常用于处理大量原始数据,然后以结构化格式(SQL表)存储。Pig适用于ETL操作,例如数据验证、数据加载、数据转换以及组合来自多种格式的多种来源的数据。除了ETL,Pig还支持嵌套数据、连接和分组等关系操作。Pig脚本可以使用非结构化和半结构化数据(例如Web服务器日志或点击流日志)作为输入。相反,Hive总是需要输入数据来满足特定的模式。Pig的拉丁文脚本包含有关如何过滤、分组和连接数据的说明,但Pig并不是一种查询语言。Hive更适合查询数据。根据PigLatin语言的指令编译和运行Pig脚本以转换数据。05HiveHive是一个运行在Hadoop集群上的开源数据仓库和查询包。SQL是一项非常常见的技能,可以帮助团队轻松过渡到大数据世界。Hive使用一种类似SQL的语言,叫做蜂巢查询语言(HiveQueryLanguage,HQL),这使得在Hadoop系统中查询和处理数据变得非常容易。Hive抽象出使用Java等编码语言编写程序以执行分析工作的复杂性。06PrestoPresto是一个类似于Hive的查询引擎,但是速度更快。它支持ANSISQL标准,该标准易于学习且是最流行的技能集。Presto支持复杂的查询、连接和聚合功能。与Hive或MapReduce不同,Presto在内存中执行查询,减少延迟并提高查询性能。在为Presto选择服务器容量时需要小心,因为它需要有足够的内存。Presto作业将在内存不足时重新启动。07HBaseHBase是作为开源Hadoop项目的一部分开发的NoSQL数据库。HBase运行在HDFS上,为Hadoop生态系统提供非关系型数据库。HBase有助于以列格式压缩和存储大量数据。同时也提供了快速查找的功能,因为很大一部分数据缓存在内存中,同时也用到了集群实例存储。08ApacheZeppelinApacheZeppelin是一个基于Web的数据分析编辑器,建立在Hadoop系统之上,也被称为ZeppelinNotebook。它的后台语言使用解释器的概念,允许任何语言访问Zeppelin。ApacheZeppelin包含一些基本图表和透视图。它非常灵活,可以识别和可视化来自任何语言背景的任何输出。09GangliaGanglia是一款Hadoop集群监控工具。但是,您需要在启动时在集群上安装Ganglia。GangliaUI在主节点上运行,您可以通过SSH访问它。Ganglia是一个开源项目,旨在监控集群而不影响其性能。Ganglia可以帮助检查集群中单个服务器的性能以及整个集群的性能。10JupyterHubJupyterHub是一个多用户JupyterNotebook。JupyterNotebook是数据科学家最流行的数据工程和机器学习工具之一。JupyterHub服务器为每个用户提供基于Web的JupyterNotebookIDE。多个用户可以同时使用他们的Jupyter笔记本来编写和执行用于探索性数据分析的代码。11AmazonAthenaAmazonAthena是一种交互式查询服务,它使用标准ANSISQL语法在AmazonS3对象存储上运行查询。AmazonAthena构建于Presto之上,并通过作为托管服务的即席查询功能对其进行了扩展。AmazonAthena元数据存储的工作方式与Hive元数据存储相同,因此您可以在AmazonAthena中使用与Hive元数据存储相同的DDL语句。Athena是一种无服务器托管服务,这意味着所有基础设施和软件操作都由AWS处理,您可以直接在Athena基于Web的编辑器中执行查询。12AmazonElasticMapReduceAmazonElasticMapReduce(EMR)本质上是云上的Hadoop。您可以使用EMR来利用Hadoop框架和AWS云的强大功能。EMR支持所有最流行的开源框架,包括ApacheSpark、Hive、Pig、Presto、Impala、HBase等。EMR提供解耦的计算和存储,这意味着您可以执行数据转换并将结果加载到持久性AmazonS3存储中,然后关闭服务器,而不是让大型Hadoop集群持续运行。EMR提供自动扩展,这可以节省您在服务器上安装和更新各种软件的管理开销。13AWSGlueAWSGlue是一种托管ETL服务,可促进数据处理、注册和机器学习转换以查找重复记录。AWSGlue数据目录与Hive数据目录兼容,并提供跨各种数据源(包括关系数据库、NoSQL和文件)的集中式元数据存储库。AWSGlue建立在Spark集群之上,提供ETL作为托管服务。AWSGlue为常见用例生成PySpark和Scala代码,因此无需从头开始编写ETL代码。Glue作业授权功能处理作业中的任何错误并提供日志以了解底层权限或数据格式问题。Glue提供的工作流程可帮助您通过简单的拖放功能构建自动化数据管道。总结数据分析和操作是一个庞大的主题,值得单独写一本书。本文概述了流行的数据操作工具。还有更多专有和开源工具可供选择。关于作者:SaurabhShrivastava是一位技术领导者、作家、发明家和公众演说家,在IT行业拥有超过16年的经验。他目前在AmazonWebServices(AWS)担任解决方案架构师团队负责人,帮助全球咨询合作伙伴和企业客户开启他们的云计算之旅。他还领导了全球技术合作伙伴的合作,并拥有云平台自动化领域的专利。NeelanjaliSrivastav是一位技术领导者、敏捷教练和云从业者,在软件行业拥有超过14年的经验。她拥有昌迪加尔旁遮普大学生物信息学和信息技术专业的学士和硕士学位。本文节选自《解决方案架构师修炼之道》,经发布者授权发布。(ISBN:9787111694441)作者:SaurabhShrivastava,NeelanjaliSrivastav来源:大数据DT(ID:hzdashuju)