我们的日志文件存储在s3上的年/月/日/小时存储桶中。结构见下文。
如何将day=20上的所有日志作为输入传递给map reduce程序?
如:
bucket=logs/年=2014/月=8/日=20/小时=1/log1\u 1.txt
bucket=logs/年=2014/月=8/天=20/小时=2/log2\u 1.txt
bucket=logs/年=2014/月=8/日=20/小时=2/log2\u 2.txt
bucket=logs/年=2014/月=8/日=20/小时=2/log2\u 3.txt
bucket=logs/年=2014/月=8/天=20/小时=3/log3\u 1.txt
bucket=logs/年=2014/月=8/日=20/小时=4/log4\u 1.txt
1条答案
按热度按时间vmjh9lq91#
当你说“bucket”时,你实际上是指不同的s3 bucket,还是指bucket中的文件夹/目录?创建这么多的bucket最终会达到s3帐户对您可以创建的bucket数量的限制。
假设您的意思是bucket中的文件夹/目录,那么使用s3distcp作为emr集群中的一个步骤,将要复制到hdfs的日志,然后使用hdfs目录作为mr程序的输入
s3distcp使用src目录和srcpattern来过滤在src中找到的项。在您的示例中,您可以:
路径中包含day=20的所有日志文件将被复制到具有jobflowid的emr集群的hdfs上的输入目录。