Hadoop中的RPC

来源:互联网 发布:王牌特工2 知乎 编辑:程序博客网 时间:2024/06/09 13:47
在Hadoop的RPC调用中,用到了反射机制,但是这里我
   始终未能明白ReflectionUtils.newInstance()函数中如何构造参数类型的?
 try {
      Class<?> jobConfClass = 
        conf.getClassByName("org.apache.hadoop.mapred.JobConf");
      Class<?> jobConfigurableClass = 
        conf.getClassByName("org.apache.hadoop.mapred.JobConfigurable");
       if (jobConfClass.isAssignableFrom(conf.getClass()) &&
            jobConfigurableClass.isAssignableFrom(theObject.getClass())) {
        Method configureMethod = 
          jobConfigurableClass.getMethod("configure", jobConfClass);
        configureMethod.invoke(theObject, conf);

      }


 这里最让我困惑的是,Configuration做了什么工作,使得Method类的public Object invoke(Object obj, Object... args)方法通过conf参数构造RPC调用所需要的参数类型?  或者说,知道一个RPC方法,比如heartbeat, 
 当它被JT在本地执行的时候,它的参数构造是如何通过conf这个参数实现的?