我想我会尝试使用 c# 二进制文件作为 -mapper 和 -reducer 流出 hadoop。不幸的是,streaming jar 似乎不能使用 c# .exes。有什么方法可以让 hadoop 和 c# 代码一起玩?
最佳答案
基本上问题是 .exe 文件在 linux 上不可执行...您可以用 wine 进行试验,但是我不确定标准输入和标准输出流是否可以正常工作,而这正是流所使用的。
当您使用流式传输(以非常简化的方式)时,会发生以下情况:
cat inputfile > mapper > reducer > output
这里的 mapper 和 reducer 是必须由操作系统运行的程序。
所以安装 wine,并尝试 -mapper "wine your_program.exe"
而不是 -mapper your_program.exe
。
问题是 wine 应该安装在你所有的工作节点上,而且你可能需要解决与 wine 使用相关的问题......
我鼓励您首先使用更简单的东西来试验 hadoop 流式处理...例如 shell 脚本或 python 或在您的工作节点上开箱即用的东西。
关于c# - 在 linux/osx 机器上使用 c# 进行 hadoop 流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38020688/