0

C# で記述された 4 ノードの HDInsight クラスターで M/R ジョブを実行しています。Mapper クラスの 1 つは、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
    }
}

上記のように、マッパーの ctor 内のコードは、オブジェクト参照が作成されていない場合でも、実行エラーとしてコメントされています。

MapReduceResult オブジェクト (Info.ExitCode) から受け取ったエラー コードは 1 で、M/R コードの問題を示しています。ただし、残りのコードは問題なく実行され、上記の参照オブジェクトが作成されていない場合でも正しい出力が生成されます。

これに関するヘルプは大歓迎です。必要に応じて、追加の詳細を提供します。

よろしくお願いします、 Subho

4

1 に答える 1

1

マッパーが実行されているクラスターでは、CoudTable、CloudStorageAccount、および CloudTableClient を含むアセンブリを使用できないようです。これは、使用している API のバージョンに応じて、Microsoft.WindowsAzure.Storage.dll または Microsoft.WindowsAzure.StorageClient.dll になります。

config.FilesToInclude.Add("Microsoft.WindowsAzure.Storage.dll");Configure メソッドに追加してみてください。

これで問題が解決しない場合は、ジョブを起動しようとしたときのコマンド ラインと出力、またはコードと例外の詳細を共有してください。

于 2014-03-25T19:12:19.360 に答える