Package org.apache.hadoop.hbase.ipc

Examples of org.apache.hadoop.hbase.ipc.ServerRpcController


  @Override
  public ClientProtos.CoprocessorServiceResponse execMasterService(final RpcController controller,
      final ClientProtos.CoprocessorServiceRequest request) throws ServiceException {
    try {
      ServerRpcController execController = new ServerRpcController();

      ClientProtos.CoprocessorServiceCall call = request.getCall();
      String serviceName = call.getServiceName();
      String methodName = call.getMethodName();
      if (!coprocessorServiceHandlers.containsKey(serviceName)) {
        throw new UnknownProtocolException(null,
            "No registered master coprocessor service found for name "+serviceName);
      }

      Service service = coprocessorServiceHandlers.get(serviceName);
      Descriptors.ServiceDescriptor serviceDesc = service.getDescriptorForType();
      Descriptors.MethodDescriptor methodDesc = serviceDesc.findMethodByName(methodName);
      if (methodDesc == null) {
        throw new UnknownProtocolException(service.getClass(),
            "Unknown method "+methodName+" called on master service "+serviceName);
      }

      //invoke the method
      Message execRequest = service.getRequestPrototype(methodDesc).newBuilderForType()
          .mergeFrom(call.getRequest()).build();
      final Message.Builder responseBuilder =
          service.getResponsePrototype(methodDesc).newBuilderForType();
      service.callMethod(methodDesc, execController, execRequest, new RpcCallback<Message>() {
        @Override
        public void run(Message message) {
          if (message != null) {
            responseBuilder.mergeFrom(message);
          }
        }
      });
      Message execResult = responseBuilder.build();

      if (execController.getFailedOn() != null) {
        throw execController.getFailedOn();
      }
      ClientProtos.CoprocessorServiceResponse.Builder builder =
          ClientProtos.CoprocessorServiceResponse.newBuilder();
      builder.setRegion(RequestConverter.buildRegionSpecifier(
          RegionSpecifierType.REGION_NAME, HConstants.EMPTY_BYTE_ARRAY));
View Full Code Here


  }

  private Message execServiceOnRegion(HRegion region,
      final ClientProtos.CoprocessorServiceCall serviceCall) throws IOException {
    // ignore the passed in controller (from the serialized call)
    ServerRpcController execController = new ServerRpcController();
    Message result = region.execService(execController, serviceCall);
    if (execController.getFailedOn() != null) {
      throw execController.getFailedOn();
    }
    return result;
  }
View Full Code Here

      final CoprocessorServiceRequest request) throws ServiceException {
    try {
      requestCount.increment();
      HRegion region = getRegion(request.getRegion());
      // ignore the passed in controller (from the serialized call)
      ServerRpcController execController = new ServerRpcController();
      Message result = region.execService(execController, request.getCall());
      if (execController.getFailedOn() != null) {
        throw execController.getFailedOn();
      }
      CoprocessorServiceResponse.Builder builder =
          CoprocessorServiceResponse.newBuilder();
      builder.setRegion(RequestConverter.buildRegionSpecifier(
          RegionSpecifierType.REGION_NAME, region.getRegionName()));
View Full Code Here

      table = new HTable(conf, tableName);
      table.coprocessorService(AggregateService.class, scan.getStartRow(),
          scan.getStopRow(), new Batch.Call<AggregateService, R>() {
            @Override
            public R call(AggregateService instance) throws IOException {
              ServerRpcController controller = new ServerRpcController();
              BlockingRpcCallback<AggregateResponse> rpcCallback =
                  new BlockingRpcCallback<AggregateResponse>();
              instance.getMax(controller, requestArg, rpcCallback);
              AggregateResponse response = rpcCallback.get();
              if (controller.failedOnException()) {
                throw controller.getFailedOn();
              }
              if (response.getFirstPartCount() > 0) {
                ByteString b = response.getFirstPart(0);
                Q q = ProtobufUtil.getParsedGenericInstance(ci.getClass(), 3, b);
                return ci.getCellValueFromProto(q);
View Full Code Here

      table.coprocessorService(AggregateService.class, scan.getStartRow(),
          scan.getStopRow(), new Batch.Call<AggregateService, R>() {

            @Override
            public R call(AggregateService instance) throws IOException {
              ServerRpcController controller = new ServerRpcController();
              BlockingRpcCallback<AggregateResponse> rpcCallback =
                  new BlockingRpcCallback<AggregateResponse>();
              instance.getMin(controller, requestArg, rpcCallback);
              AggregateResponse response = rpcCallback.get();
              if (controller.failedOnException()) {
                throw controller.getFailedOn();
              }
              if (response.getFirstPartCount() > 0) {
                ByteString b = response.getFirstPart(0);
                Q q = ProtobufUtil.getParsedGenericInstance(ci.getClass(), 3, b);
                return ci.getCellValueFromProto(q);
View Full Code Here

      table = new HTable(conf, tableName);
      table.coprocessorService(AggregateService.class, scan.getStartRow(),
          scan.getStopRow(), new Batch.Call<AggregateService, Long>() {
            @Override
            public Long call(AggregateService instance) throws IOException {
              ServerRpcController controller = new ServerRpcController();
              BlockingRpcCallback<AggregateResponse> rpcCallback =
                  new BlockingRpcCallback<AggregateResponse>();
              instance.getRowNum(controller, requestArg, rpcCallback);
              AggregateResponse response = rpcCallback.get();
              if (controller.failedOnException()) {
                throw controller.getFailedOn();
              }
              byte[] bytes = getBytesFromResponse(response.getFirstPart(0));
              ByteBuffer bb = ByteBuffer.allocate(8).put(bytes);
              bb.rewind();
              return bb.getLong();
View Full Code Here

      table = new HTable(conf, tableName);
      table.coprocessorService(AggregateService.class, scan.getStartRow(),
          scan.getStopRow(), new Batch.Call<AggregateService, S>() {
            @Override
            public S call(AggregateService instance) throws IOException {
              ServerRpcController controller = new ServerRpcController();
              BlockingRpcCallback<AggregateResponse> rpcCallback =
                  new BlockingRpcCallback<AggregateResponse>();
              instance.getSum(controller, requestArg, rpcCallback);
              AggregateResponse response = rpcCallback.get();
              if (controller.failedOnException()) {
                throw controller.getFailedOn();
              }
              if (response.getFirstPartCount() == 0) {
                return null;
              }
              ByteString b = response.getFirstPart(0);
View Full Code Here

          scan.getStopRow(),
          new Batch.Call<AggregateService, Pair<S, Long>>() {
            @Override
            public Pair<S, Long> call(AggregateService instance)
                throws IOException {
              ServerRpcController controller = new ServerRpcController();
              BlockingRpcCallback<AggregateResponse> rpcCallback =
                  new BlockingRpcCallback<AggregateResponse>();
              instance.getAvg(controller, requestArg, rpcCallback);
              AggregateResponse response = rpcCallback.get();
              if (controller.failedOnException()) {
                throw controller.getFailedOn();
              }
              Pair<S,Long> pair = new Pair<S, Long>(null, 0L);
              if (response.getFirstPartCount() == 0) {
                return pair;
              }
View Full Code Here

          scan.getStopRow(),
          new Batch.Call<AggregateService, Pair<List<S>, Long>>() {
            @Override
            public Pair<List<S>, Long> call(AggregateService instance)
                throws IOException {
              ServerRpcController controller = new ServerRpcController();
              BlockingRpcCallback<AggregateResponse> rpcCallback =
                  new BlockingRpcCallback<AggregateResponse>();
              instance.getStd(controller, requestArg, rpcCallback);
              AggregateResponse response = rpcCallback.get();
              if (controller.failedOnException()) {
                throw controller.getFailedOn();
              }
              Pair<List<S>,Long> pair =
                  new Pair<List<S>, Long>(new ArrayList<S>(), 0L);
              if (response.getFirstPartCount() == 0) {
                return pair;
View Full Code Here

      table = new HTable(conf, tableName);
      table.coprocessorService(AggregateService.class, scan.getStartRow(),
          scan.getStopRow(), new Batch.Call<AggregateService, List<S>>() {
            @Override
            public List<S> call(AggregateService instance) throws IOException {
              ServerRpcController controller = new ServerRpcController();
              BlockingRpcCallback<AggregateResponse> rpcCallback =
                  new BlockingRpcCallback<AggregateResponse>();
              instance.getMedian(controller, requestArg, rpcCallback);
              AggregateResponse response = rpcCallback.get();
              if (controller.failedOnException()) {
                throw controller.getFailedOn();
              }

              List<S> list = new ArrayList<S>();
              for (int i = 0; i < response.getFirstPartCount(); i++) {
                ByteString b = response.getFirstPart(i);
View Full Code Here

TOP

Related Classes of org.apache.hadoop.hbase.ipc.ServerRpcController

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.