草庐IT

hadoop - 如何从 pyspark rdd 或分区确定原始 s3 输入文件名

我正在使用pyspark流式处理来自S3的ETL输入文件。我需要能够建立所有原始输入文件的审计线索在s3://上,我的Parquet输出在hdfs://上结束。给定一个dstream、rdd,甚至是一个特定的rdd分区,是否有可能确定s3中输入数据的原始文件名?目前我知道的唯一方法是采取rdd.toDebugString()并尝试解析它。然而,这感觉真的很hacky并且不在某些情况下工作。例如,解析调试输出对我的批处理模式导入不起作用我也在做(使用sc.TextFile("s3://...foo/*")样式的glob)。有没有人有确定原始文件名的明智方法?似乎其他一些spark用户过去

java - "Unable to execute HTTP Request: Broken Pipe"与 Amazon EMR 上的 Hadoop/s3

我开发了一个自定义JAR,我用它来处理ElasticMapReduce中的数据。数据是来自AmazonS3的数十万个文件。JAR没有做任何非常时髦的事情来读取数据-它只是使用CombineFileInputFormat。当我针对少量测试数据运行作业时,一切都完美无缺。然而,当我针对我的完整数据集运行它时,在我的工作中花费了一段(随机)时间,我会遇到某种似乎没有得到正确处理的HTTP或套接字错误。在一项工作中,我在SYSLOG中得到以下信息:2015-11-1621:47:17,504INFOcom.amazon.ws.emr.hadoop.fs.s3n.S3NativeFileSyst

hadoop - AWS EMR S3DistCp : The auxService:mapreduce_shuffle does not exist

我通过SSH连接到AWSEMRv5.4.0实例,我想调用s3distcp。Thislink演示了如何设置一个emr步骤来调用它,但是当我运行它时出现以下错误:Containerlaunchfailedforcontainer_1492469375740_0001_01_000002:org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException:TheauxService:mapreduce_shuffledoesnotexistatsun.reflect.NativeConstructorAccessorImpl.newIns

amazon-web-services - Spark/Hadoop 不支持 AWS S3 上的 SSE-KMS 加密

我正在尝试使用KMSkey(SSE-KMS)通过服务器端加密在S3上保存一个rdd,但出现以下异常:Exceptioninthread"main"com.amazonaws.services.s3.model.AmazonS3Exception:StatusCode:400,AWSService:AmazonS3,AWSRequestID:695E32175EBA568A,AWSErrorCode:InvalidArgument,AWSErrorMessage:Theencryptionmethodspecifiedisnotsupported,S3ExtendedRequestID:

hadoop - 让 Amazon EMR 使用 S3 进行输入和输出

如何让AmazonEMR(0.20.205MapR)将S3存储桶用于输入和输出?我尝试将以下内容添加到核心配置xml文件(通过引导操作):fs.default.names3n://dfs.name.defaults3n://但我总是得到类似的东西:Causedby:java.io.IOException:Couldnotresolvepath:s3n://some_out_bucket/outatcom.mapr.fs.MapRFileSystem.lookupClient(MapRFileSystem.java:219)atcom.mapr.fs.MapRFileSystem.del

hadoop - s3 上的 Spark Dataset Parquet 分区创建临时文件夹

Spark(version=2.2.0)没有DirectParquetOutputCommitter。作为替代方案,我可以使用dataset.option("mapreduce.fileoutputcommitter.algorithm.version","2")//magichere.parquet("s3a://...")避免在S3上创建_temporary文件夹。一切正常,直到我将partitionBy设置为我的数据集dataset.partitionBy("a","b").option("mapreduce.fileoutputcommitter.algorithm.versi

scala - 如何在 spark-scala 中将 Iterable[String] 保存到 hdfs

valordersRDD=sc.textFile("/user/cloudera/sqoop_import/orders");valordersRDDStatus=ordersRDD.map(rec=>(rec.split(",")(3),1));valcountOrdersStatus=ordersRDDStatus.countByKey();valoutput=countOrdersStatus.map(input=>input._1+"\t"+input._2);如何将Iterable[String]的输出保存到spark-scala中的hdfs。可迭代[字符串]注意:ouput

amazon-web-services - EMR 上 Hadoop 作业的 S3 文件的最佳文件大小?

我正在尝试确定存储在S3中的文件的理想大小,该文件将用于EMR上的Hadoop作业。目前我有大约5-10gb的大文本文件。我担心将这些大文件复制到HDFS以运行MapReduce作业会延迟。我可以选择缩小这些文件。我知道在MapReduce作业中使用S3作为输入目录时,S3文件会被并行复制到HDFS。但是,是使用单线程将单个大文件复制到HDFS,还是将该文件作为多个部分并行复制?另外,Gzip压缩是否影响将单个文件分成多个部分复制? 最佳答案 有两个因素需要考虑:压缩文件不能在任务之间拆分。例如,如果您有一个大型压缩输入文件,则只有

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 - 将数据作为 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从