草庐IT

hadoop - Spark EMR S3 处理大量文件

我在S3中有大约15000个文件(ORC),其中每个文件包含几分钟的数据,每个文件的大小在300-700MB之间变化。由于递归循环YYYY/MM/DD/HH24/MIN格式的目录非常昂贵,我正在创建一个文件,其中包含给定日期的所有S3文件列表(objects_list.txt)并将此文件作为输入到sparkreadAPIvalfile_list=scala.io.Source.fromInputStream(getClass.getResourceAsStream("/objects_list.txt"))valpaths:mutable.Set[String]=mutable.Set

hadoop - 在每个 EMR/Yarn 节点上运行 Unix shell 命令

我想在AmazonEMR集群中的每个节点上安装一个Python模块。看起来最明显的方法是通过ssh连接到每个节点并在命令行安装它。我将YARN视为在集群中的每个节点上运行相同JAR文件的一种方式,但YARN的“jar”命令似乎在本地系统上运行。 最佳答案 您可以使用bootstrap在启动集群时在每个EMR节点上安装第3方软件。如果您使用命令行,您可以传递保存在s3中的shell脚本作为引导操作的一部分。awsemrcreate-cluster--name"Testcluster"--ami-version3.3\--use-def

hadoop - 将数据作为 Parquet 从 SQL Server 加载到 S3 - AWS EMR

我们目前在SQLServer中有我们的数据,我们正在尝试将它们作为Parquet文件移动到我们的s3存储桶中。目的是在AWSEMR(主要是Spark、Hive和Presto)中分析这个s3数据。我们不想将数据存储在HDFS中。这里有哪些选择?据我们所知,似乎我们可以使用spark或sqoop进行此导入。虽然在这种情况下sqoop由于并行性(并行数据库连接)比Spark快,但似乎无法将parquet文件从sqoop写入s3-Sqoop+S3+ParquetresultsinWrongFSerror.解决方法是移动到hdfs,然后移动到s3。但是,这似乎效率不高。如何使用SparkSQL从

hadoop - 亚马逊 EMR 和 Hive : Getting a "java.io.IOException: Not a file" exception when loading subdirectories to an external table

我正在使用AmazonEMR。我在s3中有一些日志数据,都在同一个桶中,但在不同的子目录下喜欢:"s3://bucketname/2014/08/01/abc/file1.bz""s3://bucketname/2014/08/01/abc/file2.bz""s3://bucketname/2014/08/01/xyz/file1.bz""s3://bucketname/2014/08/01/xyz/file3.bz"我正在使用:Sethive.mapred.supports.subdirectories=true;Setmapred.input.dir.recursive=true

java - 在 AWS EMR 上运行 Java 1.8 时不支持 major.minor 版本 52.0

这个问题在这里已经有了答案:Howtofixjava.lang.UnsupportedClassVersionError:Unsupportedmajor.minorversion(50个答案)关闭6年前。我正在尝试通过AWSEMR运行Java1.8MapReduce作业。我已将编译合规性和JRE版本设置为1.8。但在运行时仍然出现以下错误。因为我使用的是一个stanfordAPI,所以我无法切换到较低的Java版本。有人可以在这里帮助我吗?Exceptioninthread"main"java.lang.UnsupportedClassVersionError:org/neu/mr/

hadoop - 从 AWS 上 EMR 上的 jar 写入 S3 中的文件

有什么方法可以将我的Javajar中的文件写入将写入我的reduce文件的S3文件夹?我试过类似的东西:FileSystemfs=FileSystem.get(conf);FSDataOutputStreamFS=fs.create(newPath("S3folderoutputpath"+"//Result.txt"));PrintWriterwriter=newPrintWriter(FS);writer.write(averageDelay.toString());writer.close();FS.close();这里的Result.txt是我要写入的新文件。

java - EMR 上的 Oozie - 任务永远卡在 PREP 状态

我使用3.0.4AMI(Hadoop2.2.0)在ElasticMapreduce上运行Oozie4.0.1。我已经从源代码构建了Oozie,一切都已安装并且似乎正常工作,直到安排Hive作业为止。也就是说,我可以连接到Web控制台,使用“oozie”命令等提交和终止作业。但是......我发现任务(到目前为止我已经尝试过“Hive”和“Shell”)进入PREP状态(根据OozieWeb控制台)但从未真正开始。我已经尝试了协调器(cron)作业和基本工作流作业,并且在这两种情况下都得到了相同的行为。它到达hive任​​务节点,或shell任务节点,然后挂起。对于基本的工作流任务,jo

python - 使用 AWS EMR 处理文件

对于我正在处理的这个问题,我需要架构建议。我在gzip文件夹中每15分钟就有一次日志文件。其中每一个都有大约100,000个进一步的文件需要处理。我有一个python代码,它对每个文件进行相同的处理。没有map减少代码。只是我们正在重新排列该文件夹中的数据。我想利用Hadoop的并行处理能力来更快地处理这些文件。所以,我的问题是,我是否总是必须编写map/reduce代码才能使用hadoop的并行处理能力,或者有一种方法可以像在EMR实例上一样运行我当前的Python代码并并行处理这些文件?谢谢你的帮助,艾米 最佳答案 我可以运行我

hadoop - Amazon Emr - 当我们拥有核心节点时,任务节点的需求是什么?

我最近在学习AmazonEMR,据我所知,EMR集群让我们选择3个节点。Master,运行NameNode、JobTracker和Resourcemanager等主要Hadoop守护进程。运行Datanode和Tasktracker守护进程的核心。只运行TaskTracker的任务。我想问你们为什么EMR提供任务节点?hadoop建议我们应该在同一个节点上安装Datanode守护进程和Tasktracker守护进程。亚马逊这样做背后的逻辑是什么?您可以将S3中的数据流式传输到核心节点上的HDFS,在HDFS上进行处理,而不是将数据从HDFS共享到任务节点,这在这种情况下会增加IO开销。

python - 如何将 EMR 流作业的输出写入 HDFS?

我看到examples的人将EMR输出写入HDFS,但我无法找到它是如何完成的示例。最重要的是,thisdocumentation似乎是说EMR流作业的--output参数必须是S3存储桶。当我实际尝试运行脚本时(在本例中,使用python流和mrJob),它会抛出“无效的S3URI”错误。命令如下:pythonmy_script.py-remr\--emr-job-flow-id=j-JOBID--conf-path=./mrjob.conf--no-output\--outputhdfs:///my-output\hdfs:///my-input-directory/my-file