【问题标题】:hadoop - Hadoop jar input path issuehadoop - Hadoop jar 输入路径问题
【发布时间】:2013-10-07 21:23:42
【问题描述】:
我遇到的问题是 hadoop jar 命令需要输入路径,但我的 MapReduce 作业从数据库获取输入,因此不需要/没有输入目录。我已将 JobConf 输入格式设置为 DBInputFormat,但在影响我的工作时如何表示?
//Here is the command
hadoop jar <my-jar> <hdfs input> <hdfs output>
我有一个输出文件夹,但不需要输入文件夹。有没有办法绕过这个?我是否需要编写第二个程序将数据库数据提取到一个文件夹中,然后在 MapReduce 作业中使用它?
【问题讨论】:
标签:
java
postgresql
hadoop
mapreduce
【解决方案1】:
hadoop jar 命令不需要命令行参数,可能除了主类。 map/reduce 作业的命令行参数将由程序本身决定。因此,如果它不再需要 HDFS 输入路径,那么您需要将代码更改为不需要。
public class MyJob extends Configured implements Tool
{
public void run(String[] args) throws Exception {
// ...
TextInputFormat.setInputPaths(job, new Path(args[0])); // or some other file input format
TextOutputFormat.setOutputPath(job, new Path(args[1]));
}
}
因此您将删除输入路径语句。 JAR 完成这项工作并没有什么神奇之处,只需更改 InputFormat(您说您做了),您就应该设置好。