1

我想要jun一个定制的jar,其主要类是一系列map减少作业,第一个作业的输出作为第二个jar的输入,依此类推。亚马逊EMR的输出文件夹

我在FileOutputFormat.setOutputPath(“什么路径应该在这里?”)中设置什么?

如果我在参数中指定-outputdir,则会出现FileAlraedy存在的错误。如果我没有说明,那么我不知道输出的地方在哪里。我希望能够看到链式映射减少作业的每个作业的输出。

谢谢你。请帮忙!

回答

0

您可能会收到“FileAlraedy exists”错误,因为该输出目录存在于您正在运行的作业之前。确保删除您为Hadoop作业指定的输出目录;否则你将无法运行这些工作。

0

好的做法是从命令行取得输出,因为它会增加代码的灵活性如果更改与路径相关,您将只编译一次jar。 EMR如果您启动您的群集并编译您的罐子

例如,

dfs_ip_folder=HDFS_IP_DIR 
dfs_op_folder=HDFS_OP_DIR 
hadoop jar hadoop-examples-*.jar wordcount ${dfs_ip_folder} ${dfs_op_folder} 

注意:您必须创建dfs_ip_folder并将输入数据存储在其中。 将在HDFS上自动创建dfs_op_folder而不是在本地文件系统上 要访问HDFS操作系统文件夹,您可以将其复制到本地文件系统,也可以做猫。 例如。

hadoop fs -cat ${dfs_op_folder}/<file_name> 
hadoop fs -copyToLocal ${dfs_op_folder} ${your_local_input_dir_path}