我可以使用 Hadoop Streaming 在 .NET 中使用 thrift 在 HBase 上运行 MapReduce 作业吗?或者有没有其他方法可以从.NET 在 HBase 上运行 MapReduce 作业?
问问题
1820 次
2 回答
0
您还可以使用 REST API ( stargate )。然而,thrift 或 stargate 服务器都不是运行 MapReduce 作业的好方法。两者都需要一个单独的守护进程,这将是一个单一的争用点,并且不会提供数据局部性。java mapreduce api识别输入拆分的数据本地区域。所以关键是将java api与.Net一起使用。这个问题为 hbase 的流 api 提供了第三方增强,这将允许您通过 stdin/stdout 使用 .Net 应用程序。
于 2011-02-07T04:09:33.117 回答
-5
我已经成功地做到了这一点。所以,答案是可以的。
编辑
我不知道为什么投反对票,这个问题有答案,但以下是我如何做到的:
Thrift 比 REST API 更轻量级,并且在某些情况下提供比 java api 更高的性能,我使用了 Hadoop Streaming API 并为其提供了我自己的 Mapper 实现,它使用 Thrift 与 hbase 通信,例如
bin/hadoop jar contrib/streaming/hadoop-*-streaming.jar -input input/sample.txt -output output -mapper input/StdInOut.exe -reducer NONE
于 2012-01-23T09:21:28.703 回答