app engine map reduce java无法编译mapreducespecification.of

wz3gfoph  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(348)

我无法编译mapreducespecification.of。当我选择//new datastoreoutput(1))时,它确实可以工作,但在使用new googlecloudstoragefileoutput(“images.sb.a-cti.com/staging/test”,“result.txt”,“text/plain”,1))时,它可以工作。这个显示编译错误不确定我是否遗漏了什么。
我试过用不同的封送员替换,但结果是一样的。
有人能帮我照一下吗。

@RequestMapping("/accountJDOCounter")
 public void accountJDOCounter(HttpServletRequest request, HttpServletResponse   response){

  try{
    String entityClassName = request.getParameter("entityClassName");

    String entityKind = request.getParameter("entityKind");

   if(entityKind == null){

       response.getWriter().write("Error");

       return;

     }

    MapReduceSettings settings = new       MapReduceSettings().setWorkerQueueName("default").setControllerQueueName("default").setBuck        etName("images.sb.a-cti.com/staging/test");

   logger.info("Creating job15");

   String jobId = MapReduceJob.start(

   MapReduceSpecification.of(

     "AccountJDO",

  new DatastoreInput(entityKind, 10),

  new AccountCounterMapper(),

  Marshallers.getStringMarshaller(),

  Marshallers.getLongMarshaller(),

  new AccountCounterReducer(),

 //new InMemoryOutput<KeyValue<String, Long>>(2)),

  new GoogleCloudStorageFileOutput("images.sb.a-cti.com/staging/test", "result.txt", "text/plain", 1)),

   //new DatastoreOutput(1)),

  settings);

 // jobId is used to monitor, see step 5) below

 response.getWriter().write("jobId " + jobId);

 logger.info("JobId " + jobId);

 }catch(Exception e){

 StringWriter sw = new StringWriter();

 PrintWriter pw = new PrintWriter(sw);

e.printStackTrace(pw);

 logger.info("Error " + sw.toString());

  }

 }

错误详细信息:此行有多个标记
类型mapreducespecification中的方法(string、input、mapper、marshaller、marshaller、reducer、output)无效
适用于参数(string、datastoreinput、accountcountermapper、marshaller、marshaller、accountcounterreducer、,
inmemoryoutput>)
类型mapreducespecification中的方法(string、input、mapper、marshaller、marshaller、reducer、output)无效
适用于参数(string、datastoreinput、accountcountermapper、marshaller、marshaller、accountcounterreducer、,
googlecloudstoragefileoutput)
提前谢谢。

kmb7vmvb

kmb7vmvb1#

签名中的泛型需要匹配。googlecloudstoragefileoutput采用bytebuffer,datastoreoutput采用实体。因此,根据accountcounterreducer发出的类型,您需要选择与该类型匹配的输出。

相关问题