Hadoop远程csharp代码执行

时间:2015-12-17 09:53:05

标签: c# hadoop

我没有在Hadoop上做过任何开发,但我正在考虑为我正在研究的神经网络爱好项目进行调查。

据我所知,hadoop允许在多台机器上存储,管理和处理数据。

我想要执行代码,在每台机器上创建神经网络,训练然后将最好的网络返回给服务器。

我想知道的是,我是否可以使用Hadoop在所有机器上执行csharp或c ++代码?如果是这样,怎么办呢?

我很感激所提供的任何帮助和建议。

1 个答案:

答案 0 :(得分:1)

绝对。看看" Hadoop MapReduce Streaming"。

这允许您的任何可执行文件用作映射器或减速器。

它的工作原理如下:

  • 您提供一个控制台应用程序(C ++,C#或其他任何东西),它接受来自Stdin的输入,处理它,并将其结果写入Stdout。
  • 您将此可执行文件和输入数据作为参数传递给hadoop-streaming.jar。
  • Hadoop将您的可执行文件部署到您的节点,将每个输入数据块传递给每个节点,然后让它们写出输出。
  • 如果您愿意,可以用同样的方式提供自己的减速机。

有关详细信息,请参阅本教程:https://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-develop-deploy-streaming-jobs/

或官方Apache文档:https://hadoop.apache.org/docs/r2.7.2/hadoop-streaming/HadoopStreaming.html

顺便说一下 - 请关闭微软的Mapreduce.SDK。这看起来很有希望,但似乎是一个死的项目。

在您的情况下,您可能希望将ANN的培训和测试实施为映射器,将评估结果写为输出。您可以手动下载和检查所有这些结果,也可以提供一个减速器,它可以选择最佳网络,并只将一个结果写入最终结果数据。