我们能否将 AWS Glue 视为 EMR 的替代品?
Can we consider AWS Glue as a replacement for EMR?
Masters 需要澄清一个简短的问题,因为 AWS Glue 作为一种 ETL 工具,可以为公司带来好处,例如,服务器维护最少或无需维护,通过避免过度配置或配置不足的资源来节省成本,此外运行 关于 spark,我正在寻找一些说明,如果 AWS Glue 可以取代 EMR?
如果两者可以共存,EMR 如何与 AWS Glue 一起发挥作用?
感谢和问候
尤瓦
据我了解,胶水不能替代 EMR。这实际上取决于您的用例。
胶水 ETL 有一些限制;
- 不支持 --packages.
- 您没有用于存储临时数据的内部存储器。
使用 glue catalog 您可以在 Athena 中查看数据,但它也有一些限制,例如无法将 table 创建为 select,无法创建视图等。您可以在 EMR 中使用 Glue 数据目录来克服雅典娜的局限性。
因此,目前胶水可以替代持久元数据存储。
到目前为止,与 EMR 相比,我对 Glue 的体验并没有提供任何显着的优势。此外,我还看到了 Glue 中的几个限制,例如库、临时存储等。此外,尽管 Glue 位于 Spark 上,但它的行为与核心 Spark 不同;例如读取 1 行 CSV 文件,如果缺少 header 则忽略整个文件,等等
有一件事我仍在调查 Glue 是否会根据查询负载动态调整集群。如果找不到好的东西,我想我会推荐我的公司更灵活地转移EMR。
AWS Glue 不允许我们配置很多东西,例如执行程序内存或驱动程序内存。它是一项完全托管的服务,5Gb 作为默认驱动程序内存,5Gb 作为默认执行程序内存。
另一方面,AWS EMR 不是完全托管的服务,需要我们进行配置。更适合有经验的工程师。
顺便说一句,您还可以通过将参数传递给 Glue Job 来配置所有内置配置:
前任。
--conf value: spark.yarn.executor.memoryOverhead=1024
--conf value: spark.driver.memory=10g
这有助于使 Glue Job 更加灵活。
您实际上可以在 AWS Glue 上 运行 常规 Spark 作业 "serverless"。我们使用 AWS Glue 作为自动扩展 "serverless Spark" 解决方案:作业自动从托管 AWS Spark 集群池中分配一个集群。可以忽略 AWS Glue SDK 和 Glue Catalog,自动生成的脚本可以替换为常规 Spark 代码。依赖可以打包推送到S3。
但是,配置选项是有限的。缩放参数仅限于 WorkerType
和 NumberOfWorkers
,或者神奇的 MaxCapacity
。群集大小不会随着在 Glue SDK 外部打开的文件自动缩放。
示例 CloudFormation 配置片段:
MyJob:
Type: "AWS::Glue::Job"
Properties:
Command:
Name: "glueetl"
ScriptLocation: "SOME_S3_MAIN_CLASS_LOCATION"
AllocatedCapacity: 3
DefaultArguments:
"--job-language": scala
"--class": some.class.path.inside.jar.MyJob
"--enable-metrics": true
"--extra-jars": "SOME_S3_JAR_LOCATION"
可以在 Glue CloudFormation 文档中找到更多配置选项:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-defaultarguments
EMR 可以充当“交互式”和“批处理”数据处理框架(EMR 是 hadoop 框架)。 Glue 只是具有以下附加功能的“批处理”模式数据处理 (ETL) 框架 (Spark ETL)。
Glue has many capabilities, some of them are
1.Glue Metadata catalog (Data Catalog - Database and tables)
2.Glue Crawler - Parse the data and create table definitions
3.Glue Jobs - ETL
4.Glue Workflows - Combined multiple ETL flow
5.Glue ML transforms - ML related transforms
6. Glue devendpoints - for developing Glue jobs in Notebooks
Glue 是无服务器 AWS 服务,这意味着您无需花时间设置底层服务器和节点。 (尽管如此,Glue 在幕后使用了 EMR)。不过,您可以使用 Glue 高级配置选择集群大小(通过选择 DPU 1.X 或 2.X 以及 DPU 的数量 DPU- 数据处理单元)请参阅此 link Configuring DPUs
要用具体答案回答您的问题:
Glue cannot replace EMR, EMR has more functional capabilities than Glue.
您可以将 EMR 视为“具有生态系统(包括 spark)的 Hadoop 框架”,并且
仅粘贴为“具有 Hive 元存储功能的 Spark ETL”
yes, they both can co-exist. If they co-exist, Glue can act as ETL
framework to source the data, transform and store in S3 and maintain
table definition of that data set in "Glue Catalog". EMR can
use/access that dataset from S3 using "EMRFS" and Glue Catalog. Using
EMR ecosystems, you can analyze the data (with table definitions)
Masters 需要澄清一个简短的问题,因为 AWS Glue 作为一种 ETL 工具,可以为公司带来好处,例如,服务器维护最少或无需维护,通过避免过度配置或配置不足的资源来节省成本,此外运行 关于 spark,我正在寻找一些说明,如果 AWS Glue 可以取代 EMR?
如果两者可以共存,EMR 如何与 AWS Glue 一起发挥作用?
感谢和问候
尤瓦
据我了解,胶水不能替代 EMR。这实际上取决于您的用例。 胶水 ETL 有一些限制;
- 不支持 --packages.
- 您没有用于存储临时数据的内部存储器。
使用 glue catalog 您可以在 Athena 中查看数据,但它也有一些限制,例如无法将 table 创建为 select,无法创建视图等。您可以在 EMR 中使用 Glue 数据目录来克服雅典娜的局限性。
因此,目前胶水可以替代持久元数据存储。
到目前为止,与 EMR 相比,我对 Glue 的体验并没有提供任何显着的优势。此外,我还看到了 Glue 中的几个限制,例如库、临时存储等。此外,尽管 Glue 位于 Spark 上,但它的行为与核心 Spark 不同;例如读取 1 行 CSV 文件,如果缺少 header 则忽略整个文件,等等
有一件事我仍在调查 Glue 是否会根据查询负载动态调整集群。如果找不到好的东西,我想我会推荐我的公司更灵活地转移EMR。
AWS Glue 不允许我们配置很多东西,例如执行程序内存或驱动程序内存。它是一项完全托管的服务,5Gb 作为默认驱动程序内存,5Gb 作为默认执行程序内存。 另一方面,AWS EMR 不是完全托管的服务,需要我们进行配置。更适合有经验的工程师。
顺便说一句,您还可以通过将参数传递给 Glue Job 来配置所有内置配置:
前任。
--conf value: spark.yarn.executor.memoryOverhead=1024
--conf value: spark.driver.memory=10g
这有助于使 Glue Job 更加灵活。
您实际上可以在 AWS Glue 上 运行 常规 Spark 作业 "serverless"。我们使用 AWS Glue 作为自动扩展 "serverless Spark" 解决方案:作业自动从托管 AWS Spark 集群池中分配一个集群。可以忽略 AWS Glue SDK 和 Glue Catalog,自动生成的脚本可以替换为常规 Spark 代码。依赖可以打包推送到S3。
但是,配置选项是有限的。缩放参数仅限于 WorkerType
和 NumberOfWorkers
,或者神奇的 MaxCapacity
。群集大小不会随着在 Glue SDK 外部打开的文件自动缩放。
示例 CloudFormation 配置片段:
MyJob:
Type: "AWS::Glue::Job"
Properties:
Command:
Name: "glueetl"
ScriptLocation: "SOME_S3_MAIN_CLASS_LOCATION"
AllocatedCapacity: 3
DefaultArguments:
"--job-language": scala
"--class": some.class.path.inside.jar.MyJob
"--enable-metrics": true
"--extra-jars": "SOME_S3_JAR_LOCATION"
可以在 Glue CloudFormation 文档中找到更多配置选项:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-defaultarguments
EMR 可以充当“交互式”和“批处理”数据处理框架(EMR 是 hadoop 框架)。 Glue 只是具有以下附加功能的“批处理”模式数据处理 (ETL) 框架 (Spark ETL)。
Glue has many capabilities, some of them are
1.Glue Metadata catalog (Data Catalog - Database and tables)
2.Glue Crawler - Parse the data and create table definitions
3.Glue Jobs - ETL
4.Glue Workflows - Combined multiple ETL flow
5.Glue ML transforms - ML related transforms
6. Glue devendpoints - for developing Glue jobs in Notebooks
Glue 是无服务器 AWS 服务,这意味着您无需花时间设置底层服务器和节点。 (尽管如此,Glue 在幕后使用了 EMR)。不过,您可以使用 Glue 高级配置选择集群大小(通过选择 DPU 1.X 或 2.X 以及 DPU 的数量 DPU- 数据处理单元)请参阅此 link Configuring DPUs
要用具体答案回答您的问题:
Glue cannot replace EMR, EMR has more functional capabilities than Glue.
您可以将 EMR 视为“具有生态系统(包括 spark)的 Hadoop 框架”,并且 仅粘贴为“具有 Hive 元存储功能的 Spark ETL”
yes, they both can co-exist. If they co-exist, Glue can act as ETL framework to source the data, transform and store in S3 and maintain table definition of that data set in "Glue Catalog". EMR can use/access that dataset from S3 using "EMRFS" and Glue Catalog. Using EMR ecosystems, you can analyze the data (with table definitions)