我们正在用 C# 编写的 4 节点 HDInsight 群集上运行 M/R 作业。其中一个 Mapper 类使用 Azure 表存储来应用业务特定规则。
如果没有创建 CloudTable、CloudTableClient 和 CloudStorageAccount 对象,则 M/R 作业可以正常运行。
但是,在为其添加对象引用时,它会给出错误并且作业执行会停止。部分代码片段如下:
public class TopProgMapper : MapperBase
{
CloudTable table = null;
CloudStorageAccount storageAccount = null;
CloudTableClient tableClient = null;
//The above objects are instantiated and queried in the Mapper ctor
public TopProgMapper()
{
// instantiation code here, which currently has been commented
}
}
如上所述,即使没有创建对象引用,Mapper 的 ctor 中的代码也已被注释为执行错误。
从 MapReduceResult 对象 (Info.ExitCode) 收到的错误代码为 1,表示 M/R 代码存在问题。但是,其余代码运行得非常好,并且在没有创建上述引用对象时会产生正确的输出。
对此的任何帮助将不胜感激。如果需要,将提供更多详细信息。
谢谢和问候,苏霍