是否可以使用.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")明确表示"目前Amazon Elastic 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作业的第一步安装在Mono上本地实例.这听起来有点低效,但也许它可以工作?
也许更好的选择是尝试放弃Elastic MapReduce的便利性,并在EC2上手动设置我自己的Hadoop集群.然后我假设我可以毫无困难地安装Mono.
有可能会是一个可能的方法使用Hadoop流以及与提前时间编译器为本地代码的编制你的C#代码(检查:http://www.mono-project.com/AOT).我猜这个二进制文件可以像C++程序一样从S3运行.
Reed Copsey的答案是不正确的.VB.NET库用于创建作业,启动和停止它们,但不是关于Hadoop作业中实际运行的代码.