我正在尝试通过现有的Java应用程序传输数据,并且作为测试只是创建了一个可运行的jar来打印到stdout:
public class Myapp {
public static void main(String[] args) {
for (int i=0;i<100;i++){
System.out.println(i);
}
}
}
创建jar后我可以这样做:
> java -jar myapp.jar a b < input.txt > myout1.txt
和myout1.txt充满了数据。当我使用
在hadoop中运行它时hadoop jar /usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-2.0.0-mr1-cdh4.0.1.jar -file'myapp.jar'-numReduceTasks 0 -input“input。 txt“-output”myout.txt“-mapper”java -jar myapp.jar“
作业成功,但myout.txt / part- *文件都是空的。从stdin读取数据没有帮助,这适用于Python和Perl,或者使用带有map函数的java API。关于通过jar传输或使用System.out.println
打印有什么特别之处吗?