2

私は Hadoop を初めて使用し、これが私の最初のマッパー プログラムであり、MR ユニットを使用して単体テストを行っています。

設定オブジェクトを介して設定したパラメータ(年)を渡しています

    Configuration config =new Configuration()           
    config.set("Year", "2012");
    Job job=new Job(config ,"Yearly");

マイマッパー:

public void map(ImmutableBytesWritable row, Result values, Context context)throws IOException, InterruptedException 
{   
  Configuration conf = context.getConfiguration();
  String Year= conf.get("Year");
}

MR単体テストでは、キー、値とともにコンテキストクラスをモックしています

@Test
public void testMapper() throws IOException, InterruptedException
{
  context = mock(Mapper.Context.class);

  Configuration conf=mock(Configuration.class);
  when(conf.get("Year")).thenReturn("2012");
  when(context.getConfiguration()).thenReturn(conf);
  mapper.map(row, result, context);
}

ただし、マッピングで値(年)を取得できず、null を受け取ります。私はこれを正しく行っていますか、またはマッピングをテストするためのより良い方法はありますか.

4

1 に答える 1

2

次のように、テスト コードで mapdriver から構成を取得する必要があります。

Configuration conf = mapdriver.getConfiguration();
conf.set("Year","2013");
于 2014-12-15T03:53:33.750 に答える