我试图通过一个现有的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-文件“myapp.jar”-numreducetasks 0-输入“input.txt”-输出“myout.txt”-Map器“java-jar myapp.jar”
作业成功,但是myout.txt/part-*文件都是空的。从stdin读取数据没有任何帮助,这在python和perl中都可以工作,或者使用带有map函数的javaapi。在jar里流淌或打印有什么特别的地方吗 System.out.println
?
暂无答案!
目前还没有任何答案,快来回答吧!