资源描述
盘点13种流行的数据处理工具导读:我们来看一些流行的数据处理工具。
数据分析是对数据进行摄取、转换和可视化的过程,用来开掘对业务决策有用的洞见。
在过去的十年中,越来越多的数据被收集,客户希望从数据中获得更有价值的洞见。他 们还希望能在最短的时间内(甚至实时地)获得这种洞见。他们希望有更多的临时查询 以便回答更多的业务问题。为了回答这些问题,客户需要更强大、更高效的系统。
批处理通常涉及查询大量的冷数据。在批处理中,可能需要几个小时才能获得业务问题 的答案。例如,你可能会使用批处理在月底生成账单报告。
实时的流处理通常涉及查询少量的热数据,只需要很短的时间就可以得到答案。例如, 基于MapReduce的系统(如Hadoop )就是支持批处理作业类型的平台。数据仓库 是支持查询引擎类型的平台。
流数据处理需要摄取数据序列,并根据每条数据记录进行增量更新。通常,它们摄取连 续产生的数据流,如计量数据、监控数据、审计日志、调试日志、网站点击流以及设备、 人员和商品的位置跟踪事件。
图1展示了使用AWS云技术栈处理、转换并可视化数据的数据湖流水线。
Amazon Athena
Amazon Athena是一个交互式查询服务,它使用标准ANSI SQL语法在Amazon S3 对象存储上运行杳询。Amazon Athena建立在Presto之上,并扩展了作为托管服务 的临时查询功能。Amazon Athena元数据存储与Hive元数据存储的工作方式相同, 因此你可以在Amazon Athena中使用与Hive元数据存储相同的DDL语句。
Athena是一个无服务器的托管服务,这意味着所有的基础设施和软件运维都由AWS 负责,你可以直接在Athena的基于Web的编辑器中执行查询。
12Amazon Elastic MapReduceAmazon Elastic MapReduce ( EMR )本质上是云上的Hadoopo你可以使用EMR来 发挥Hadoop框架与AWS云的强大功能。EMR支持所有最流行的开源框架,包括
Apache Sparks Hive、Pig、Prestos Impala、HBase 等。
EMR提供了解耦的计算和存储,这意味着不必让大型的Hadoop集群持续运转,你可以执行数据转换并将结果加载到持久化的Amazon S3存储中,然后关闭服务器。EMR
提供了自动伸缩功能,为你节省了安装和更新服务器的各种软件的管理开销。
13AWS GlueAWS Glue是一个托管的ETL服务,它有助于实现数据处理、登记和机器学习转换以查 找重复记录。AWS Glue数据目录与Hive数据目录兼容,并在各种数据源(包括关系 型数据库、NoSQL和文件)间提供集中的元数据存储库。
AWS Glue建立在Spark集群之上,并将ETL作为一项托管服务提供。AWS Glue可 为常见的用例生成PySpark和Scala代码,因此不需要从头开始编写ETL代码。
Glue作业授权功能可处理作业中的任何错误,并提供日志以了解底层权限或数据格式 问题。Glue提供了工作流,通过简单的拖放功能帮助你建立自动化的数据流水线。
小结数据分析和处理是一个庞大的主题,值得单独写一本书。本文概括地介绍了数据处理的 流行工具。还有更多的专有和开源工具可供选择。
X
数据源
Amazon S3
原始数据
Amazon EMR
啕
Amazon S 处理后数
Amazon
Athena
Amazon
Athena
▲图1使用数据湖ETL流水线处理数据
在这里,ETL流水线使用Amazon Athena对存储在Amazon S3中的数据进行临时查 询。从各种数据源(例如,Web应用服务器)摄取的数据会生成日志文件,并持久保 存在S30然后,这些文件将被Amazon Elastic MapReduce ( EMR )转换和清洗成产 生洞见所需的形式并加载到Amazon S3O用COPY命令将这些转换后的文件加载到Amazon Redshift ,并使用Amazon QuickSight进行可视化。使用Amazon Athena,你可以在数据存储时直接从Amazon
S3中查询,也可以在数据转换后查询(从聚合后的数据集)。你可以在Amazon
QuickSight中对数据进行可视化,也可以在不改变现有数据流程的情况下轻松查询这些文件。
以下是一些最流行的可以帮助你对海量数据进行转换和处理的数据处理技术:
OlApache Hadoop
Apache Hadoop使用分布式处理架构,将任务分发到服务器集群上进行处理。分发
到集群服务器上的每一项任务都可以在任意一台服务器上运行或重新运行。集群服务器 通常使用HDFS将数据存储到本地进行处理。
在Hadoop框架中,Hadoop将大的作业分割成离散的任务,并行处理。它能在数量 庞大的Hadoop集群中实现大规模的伸缩性。它还设计了容错功能,每个工作节点都 会定期向主节点报告自己的状态,主节点可以将工作负载从没有积极响应的集群重新分 配出去。
Hadoop 最常用的框架有 Hive、Presto. Pig 和 Spark。
02Apache Spark
Apache Spark
是一个大规模并行处理系统’它
Apache Spark
何以将Spark作业拆分
,并行执行任务
o为了提高作业的并行度何
、交互式和流式数据源。
以在集群中增加节点。
Spark
dag)
收坏图(Directed Acyclic Graph ,
在作业皿呈中的w或数据沿袭情况,……存
DAG可以跟踪作业过程中数
Io 0储在内存中,有效地最小化I/O。Spark还具有分区感知功能,以防止网络密集型的数 据改组。
(BHadoop用户体验Hadoop用户体验(Hadoop User Experience , HUE )使你能够通过基于浏览器的用 户界面而不是命令行在集群上进行查询并运行脚本。
HUE在用户界面中提供了最常见的Hadoop组件。它可以基于浏览器查看和跟踪 Hadoop操作。多个用户可以登录HU E的门户访问集群管理员可以手动或通过LDAP、 PAM、SPNEGO. OpenIDs OAuth和SAML2认证管理访问。HUE允许你实时查看 日志,并提供一个元存储管理器来操作Hive元存储内容。
04Apache Pig
Pig通常用于处理大量的原始数据,然后再以结构化格式(SQL表)存储。Pig适用于
ETL操作,如数据验证、数据加载、数据转换,以及以多种格式组合来自多个来源的数 据。除了 ETL , Pig还支持关系操作,如嵌套数据、连接和分组。
Pig脚本可以使用非结构化和半结构化数据(如Web服务器日志或点击流日志)作为 输入。相比之下,Hive总是要求输入数据满足一定模式。Pig的Latin脚本包含关于如 何过滤、分组和连接数据的指令,但Pig并不打算成为一种查询语言。Hive更适合查 询数据。Pig脚本根据Pig Latin语言的指令,编译并运行以转换数据。
OSHive
Hive是一个开源的数据仓库和查询包,运行在Hadoop集群之上。SQL是一项非常常 见的技能,它可以帮助团队轻松过渡到大数据世界。
Hive使用了一种类似于SQL的语言,叫作Hive Query语言Hive Query Language , HQL),这使得在Hadoop系统中查询和处理数据变得非常容易。Hive抽象了用Java 等编码语言编写程序来执行分析作业的复杂性。
06PrestoPresto是一个类似Hive的查询引擎,但它的速度更快。它支持ANSI SQL标准,该标
准很容易学习,也是最流行的技能集。Presto支持复杂的查询、连接和聚合功能。
与Hive或M叩Reduce不同,Presto在内存中执行查询,减少了延迟,提高了查询性 能。在选择Presto的服务器容量时需要小心,因为它需要有足够的内存。内存溢出时, Presto作业将重新启动。
07HBaseR P R C H E
HBRSE
R P R C H E
HBRSE
H Base是作为开源Hadoop工程的一局部开发的NoSQL数据库。H Base运行在HDFS 上,为Hadoop生态系统提供非关系型数据库。HBase有助于将大量数据压缩并以列 式格式存储。同时,它还提供了快速查找功能,因为其中很大一局部数据被缓存在内存 中,集群实例存储也同时在使用。
08Apache ZeppelinApache Zeppelin是一个建立在Hadoop系统之上的用于数据分析的基于Web的编
辑器,又被称为Zeppelin Notebooko它的后台语言使用了解释器的概念,允许任何 语言接入Zeppelin。Apache Zeppelin包括一些基本的图表和透视图。它非常灵活, 任何语言后台的任何输出结果都可以被识别和可视化。
09GangliaGanglia是一个Hadoop集群监控工具。但是你需要在启动时在集群上安装Ganglia。
Ganglia UI运行在主节点上,你可以通过SSH访问主节点。Ganglia是一个开源工程, 旨在监控集群而不影响其性能。Ganglia可以帮助检查集群中各个服务器的性能以及集 群整体的性能。
lOJupyterHubJupyterHub 是一个多用户的 Jupyter Notebooko Jupyter Notebook 是数据科学家 进行数据工程和ML的最流行的工具之一。JupyterHub服务器为每个用户提供基于 Web的Jupyter Notebook IDEO多个用户可以同时使用他们的Jupyter Notebook 来编写和执行代码,从而进行探索性数据分析。
llAmazon Athena
展开阅读全文