org.apache.hadoop.ipc.RPC.call()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(1.5k)|赞(0)|评价(0)|浏览(81)

本文整理了Java中org.apache.hadoop.ipc.RPC.call方法的一些代码示例,展示了RPC.call的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RPC.call方法的具体详情如下:
包路径:org.apache.hadoop.ipc.RPC
类名称:RPC
方法名:call

RPC.call介绍

[英]Expert: Make multiple, parallel calls to a set of servers.
[中]专家:对一组服务器进行多个并行调用。

代码示例

代码示例来源:origin: com.facebook.hadoop/hadoop-core

/** Expert: Make multiple, parallel calls to a set of servers. */
public static Object[] call(Method method, Object[][] params,
              InetSocketAddress[] addrs,
              UserGroupInformation ticket, Configuration conf)
 throws IOException {
 Invocation[] invocations = new Invocation[params.length];
 for (int i = 0; i < params.length; i++)
  invocations[i] = new Invocation(method, params[i]);
 Client client = CLIENTS.getClient(conf);
 try {
 Writable[] wrappedValues =
  client.call(invocations, addrs, method.getDeclaringClass(), ticket);
 if (method.getReturnType() == Void.TYPE) {
  return null;
 }
 Object[] values =
  (Object[])Array.newInstance(method.getReturnType(), wrappedValues.length);
 for (int i = 0; i < values.length; i++)
  if (wrappedValues[i] != null)
   values[i] = ((ObjectWritable)wrappedValues[i]).get();
 
 return values;
 } finally {
  CLIENTS.stopClient(client);
 }
}

代码示例来源:origin: org.apache.hadoop/hadoop-common-test

String[] strings = (String[])RPC.call(echo, new String[][]{{"a"},{"b"}},
                   new InetSocketAddress[] {addr, addr}, conf);
assertTrue(Arrays.equals(strings, new String[]{"a","b"}));
Object[] voids = RPC.call(ping, new Object[][]{{},{}},
             new InetSocketAddress[] {addr, addr}, conf);
assertEquals(voids, null);

相关文章