是否可以使用 .NET 语言为 Amazon Elastic MapReduce ( http://aws.amazon.com/elasticmapreduce/ ) 编写 map/reduce 作业?特别是我想使用 C#。
初步研究表明不是。上述 URL 的营销文本建议您“选择 Java、Ruby、Perl、Python、PHP、R 或 C++”,但未提及 .NET 语言。这个亚马逊线程(http://developer.amazonwebservices.com/connect/thread.jspa?messageID=136051 --“支持 C#/F# map/reducers”)明确表示“目前亚马逊弹性 MapReduce 不支持 Mono 平台或C# 或 F# 等语言。”
以上说明是做不到的。不过,我想知道是否有任何解决方法。例如,我可以为我的帐户修改 Elastic MapReduce 机器映像,并在其中安装 Mono 吗?
亚马逊常见问题解答“使用您的 Jar 所需的其他软件”(http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?CHAP_AdvancedTopics.html)和“如何使用其他文件和库”建议的替代方案使用 Mapper 或 Reducer”(http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?addl_files.html),是使 Map/Reduce 工作的第一步是在本地实例。这听起来有点低效,但也许它可以工作?
也许更明智的选择是尝试放弃 Elastic MapReduce 的便利性,并在 EC2 上手动设置我自己的 Hadoop 集群。然后我假设我可以毫无困难地安装 Mono。