Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 在AWS EMR上使用pyspark_Amazon S3_Pyspark_Amazon Emr - Fatal编程技术网

Amazon s3 在AWS EMR上使用pyspark

Amazon s3 在AWS EMR上使用pyspark,amazon-s3,pyspark,amazon-emr,Amazon S3,Pyspark,Amazon Emr,我对PySpark和AWS EMR都是新手。我得到了一个小项目,我需要每小时清理大量数据文件,并基于它们构建聚合数据集。这些数据文件存储在S3上,我可以利用Spark中的一些基本函数(如filter和map)来导出聚合数据。为了节省出口成本,在执行了一些CBA分析之后,我决定创建一个EMR集群并拨打pypark电话。使用由S3 bucket中创建的文件触发的Lambda函数,这个概念运行良好。我正在将输出文件写回S3 但我无法理解我创建的3节点EMR集群的必要性及其对我的使用。如何利用Hadoo

我对PySpark和AWS EMR都是新手。我得到了一个小项目,我需要每小时清理大量数据文件,并基于它们构建聚合数据集。这些数据文件存储在S3上,我可以利用Spark中的一些基本函数(如filter和map)来导出聚合数据。为了节省出口成本,在执行了一些CBA分析之后,我决定创建一个EMR集群并拨打pypark电话。使用由S3 bucket中创建的文件触发的Lambda函数,这个概念运行良好。我正在将输出文件写回S3

  • 但我无法理解我创建的3节点EMR集群的必要性及其对我的使用。如何利用Hadoop文件系统以及节点上提供的所有存储来发挥我的优势
  • 如何查看(如果可能)集群中从属/核心节点的利用率?我如何知道它们被使用、使用频率等?我正在主节点上执行pyspark代码
  • 我可以在pyspark中使用EMR的替代方案吗
  • 是否有任何好的文档可用于更好地理解

    谢谢

  • Spark是一个分布式计算框架。它可以处理比内存大的数据集,并将工作负载分块并行分配给多个工作线程。默认情况下,EMR创建1个主节点和2个工作节点。spark节点上的磁盘空间通常不直接使用。Spark可以使用该空间缓存临时结果。
    要使用Hadoop文件系统,需要在aws中启动hdfs服务。 然而,s3也是分布式存储。Hadoop库支持它。Spark EMR附带Hadoop驱动程序,支持S3开箱即用。将spark与S3结合使用是非常有效的存储解决方案,对于许多基本数据处理任务来说已经足够好了

  • 是AWS EMR中的spark manager用户界面。您可以看到每个正在运行的spark应用程序会话和当前作业。通过单击作业,您可以看到使用了多少执行器。这些执行器是否在所有节点上运行取决于spark内存和cpu配置。调整这些是一个非常重要的话题。这里有很多这样的人。 还有一个硬件监控选项卡,显示每个节点的cpu和内存使用情况。 spark代码始终在主节点上执行。但它只是在该节点上创建一个DAG计划,并根据该计划将实际工时转移到工作节点。因此,指南提到提交spark应用程序而不是执行

  • 对。您可以在普通ec2实例上启动自己的spark群集。甚至还有一个,只允许在一台机器上启动火花。这是相当多的足迹,这是当时安装。您仍然需要调整内存、cpu和执行器设置。因此,与仅在python中实现一些多处理或使用dask相比,这是相当复杂的。然而,有充分的理由这样做。它允许在一台机器上使用所有内核。它允许您使用一个众所周知的、有良好文档记录的api。同样的一个,可以用来处理数PB的数据。上面的链接文章解释了动机

    另一种可能性是使用AWS胶水。这是无服务器的火花。这个 服务将向AWS上的一些按需spark节点提交作业, 你无法控制的地方。类似于lambda函数的运行方式 在随机AWS EC2实例上。然而,胶水有一些局限性。具有 在glue上,您不能安装带有c扩展的python库 e、 g numpy,熊猫,大多数ml LIB。此外,胶水还强制您创建 雅典娜目录中数据的模式映射。但是独立的火花 可以在飞行中处理这些

    Databricks还提供了AWS之外的一个单独的功能。我认为它更复杂。它还允许自定义c扩展

    官方文档的很大一部分关注于不同的数据处理API,而不是ApacheSpark的内部。上有一些关于spark内部构件的好注释。我想每一本好书都会涉及到spark的一些内部工作原理。AWS EMR只是一个带有纱线编排器的自动火花簇。(不幸的是,从未读过有关spark的好书,到处都有一些信息,因此无法推荐)

  • Spark是一个分布式计算框架。它可以处理比内存大的数据集,并将工作负载分块并行分配给多个工作线程。默认情况下,EMR创建1个主节点和2个工作节点。spark节点上的磁盘空间通常不直接使用。Spark可以使用该空间缓存临时结果。
    要使用Hadoop文件系统,需要在aws中启动hdfs服务。 然而,s3也是分布式存储。Hadoop库支持它。Spark EMR附带Hadoop驱动程序,支持S3开箱即用。将spark与S3结合使用是非常有效的存储解决方案,对于许多基本数据处理任务来说已经足够好了

  • 是AWS EMR中的spark manager用户界面。您可以看到每个正在运行的spark应用程序会话和当前作业。通过单击作业,您可以看到使用了多少执行器。这些执行器是否在所有节点上运行取决于spark内存和cpu配置。调整这些是一个非常重要的话题。这里有很多这样的人。 还有一个硬件监控选项卡,显示每个节点的cpu和内存使用情况。 spark代码始终在主节点上执行。但它只是在该节点上创建一个DAG计划,并根据该计划将实际工时转移到工作节点。因此,指南提到提交spark应用程序而不是执行

  • 对。您可以在普通ec2实例上启动自己的spark群集。甚至还有一个,只允许在一台机器上启动火花。这是相当多的足迹,这是当时安装。您仍然需要调整内存、cpu和执行器设置。因此,与仅在python中实现一些多处理或使用dask相比,这是相当复杂的。然而,也有合理的理由