在Amazon EMR上使用Hadoop流处理整个文件

在Amazon EMR上使用Hadoop流处理整个文件,hadoop,amazon-web-services,amazon-s3,hadoop-streaming,elastic-map-reduce,Hadoop,Amazon Web Services,Amazon S3,Hadoop Streaming,Elastic Map Reduce,我在AmazonS3上有一个满是gzip文本文件的目录,我正在尝试使用AmazonElasticMapReduce上的Hadoop streaming对每个文件分别应用一个函数(具体地说,解析多行标题)。默认的Hadoop流“每行都是记录”格式在这里不起作用 我的尝试是将-input设置为列出每个gzip文件的S3路径的文本文件,然后在映射器中使用“Hadoop fs-get”或“Hadoop fs-copyToLocal”将文件复制到工作节点,然后在整个文件上运行函数。但是,这样做会导致该步骤

我在AmazonS3上有一个满是gzip文本文件的目录,我正在尝试使用AmazonElasticMapReduce上的Hadoop streaming对每个文件分别应用一个函数(具体地说,解析多行标题)。默认的Hadoop流“每行都是记录”格式在这里不起作用

我的尝试是将-input设置为列出每个gzip文件的S3路径的文本文件,然后在映射器中使用“Hadoop fs-get”或“Hadoop fs-copyToLocal”将文件复制到工作节点,然后在整个文件上运行函数。但是,这样做会导致该步骤失败,并出现“权限被拒绝”错误

我猜这与dfs.permissions.enabled变量有关,但我没有任何机会通过Hadoop安装引导接口传递这些变量


有人知道是什么导致了错误以及如何修复它吗?或者,如果有其他方法使用EMR(或其他Amazon工具)将函数应用于整个文件,我也对这些内容持开放态度。谢谢!

这可能是由于您复制文件的工作节点上的文件夹权限有限。请检查权限


此外,如果您共享完整日志也会有所帮助。

您能详细说明一下吗?我可以在哪里检查权限?如何配置权限?(我可以明天发布日志。)localdst(本地目标文件夹/文件)的权限。