我有一个mapreduce作业,它将其输出写入HDFS中的文件。但是,我不希望将其写入HDFS,而是希望将输出直接写入网页。我在eclipse中创建了一个web项目,并在其中编写了驱动程序,映射器和reducer类。当我在tomcat服务器上运行它时,它不工作。
那么如何在网页上显示输出呢?
如果您使用的是map - r发行版,您可以将map reduce作业的输出写入文件系统(而不是HDFS),但要解决您的问题将需要更多信息
HDFS本身并不是为低延迟随机读/写而设计的。然而,你确实有一些选择是WebHDFS/HTTPfs。这向HDFS公开了一个REST API。http://archive.cloudera.com/cdh4/cdh/4/hadoop-2.0.0-cdh4.6.0/hadoop-project-dist/hadoop-hdfs/WebHDFS.html和http://hadoop.apache.org/docs/r2.4.1/hadoop-hdfs-httpfs/。你可以让网络服务器拉出任何你想要的文件并在网页上提供。然而,我不认为这是一个很好的解决方案。
一个更好的解决方案可能是让MapReduce输出到HBase (http://hbase.apache.org/),并让你的web服务器从HBase中提取。它更适合低延迟随机读/写。