2

我正在尝试通过现有的 java 应用程序流式传输数据,并且作为测试刚刚创建了一个可运行的 jar 以打印到标准输出:

public class Myapp {
    public static void main(String[] args) {

        for (int i=0;i<100;i++){
            System.out.println(i);
        }
    }
}

创建罐子后,我可以这样做:

> 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" -输出“myout.txt”-mapper“java -jar myapp.jar”

作业成功,但 myout.txt/part-* 文件全部为空。从标准输入读取数据没有帮助,这适用于 Python 和 Perl,或者使用带有 map 函数的 java API。通过 jar 流式传输或使用 打印有什么特别之处System.out.println吗?

4

0 回答 0