hadoop rpc引擎使用协议缓冲区对来自线路的字节进行编码/解码。
我正在尝试使用hadooprpcrequestproto在hadoop服务器上调用一个方法
HadoopRpcRequestProto rpcReHadoopRpcRequestProtoquest;
HadoopRpcRequestProto.Builder builder = HadoopRpcRequestProto.newBuilder();
builder.setMethodName("foo");
如果我的“foo”方法有两个参数,foo(字符串名,int num);
如何对参数进行编码并将其设置为hadooprpcrequestproto的请求字段?
短暂性脑缺血发作
1条答案
按热度按时间frebpwbc1#
你应该可以这样做:
对于
Message
我们谈论的班级com.google.protobuf.Message
. 我认为你需要写一个.proto文件并用protoc
之后生成java绑定,然后可以在java代码中使用它。例如,一个.proto文件可以如下所示:如果你这么做了
protoc myperson.proto
然后将生成一个名为MyPerson.java
会有一个内部类Person
像这样:这个
GeneratedMessage
类扩展自AbstractMessage
它实现了Message
我上面提到的接口。所以基本上你可以创建你的Person
对象,然后您应该能够使用builder.setRequest(person.toByteString())
.