Repository: hadoop Updated Branches: refs/heads/HDFS-7240 0f5231374 -> 3408fdf91
HDFS-12901. Ozone: SCM: Expose StorageContainerManager#getScmId through container protocol. Contributed by Nanda kumar. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/3408fdf9 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/3408fdf9 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/3408fdf9 Branch: refs/heads/HDFS-7240 Commit: 3408fdf91d8c5e0e9ed61e8b77516dd054248cad Parents: 0f52313 Author: Anu Engineer <[email protected]> Authored: Wed Dec 6 13:59:29 2017 -0800 Committer: Anu Engineer <[email protected]> Committed: Wed Dec 6 13:59:29 2017 -0800 ---------------------------------------------------------------------- .../StorageContainerLocationProtocol.java | 9 +++++++++ ...ockLocationProtocolClientSideTranslatorPB.java | 8 +++----- ...nerLocationProtocolClientSideTranslatorPB.java | 18 ++++++++++++++++++ .../hadoop-hdfs-client/src/main/proto/Ozone.proto | 9 +++++++++ .../src/main/proto/ScmBlockLocationProtocol.proto | 18 ++---------------- .../proto/StorageContainerLocationProtocol.proto | 6 ++++++ ...ockLocationProtocolServerSideTranslatorPB.java | 12 +++++------- ...nerLocationProtocolServerSideTranslatorPB.java | 17 +++++++++++++++++ 8 files changed, 69 insertions(+), 28 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/3408fdf9/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocol/StorageContainerLocationProtocol.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocol/StorageContainerLocationProtocol.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocol/StorageContainerLocationProtocol.java index 90023bc..07d3f0d 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocol/StorageContainerLocationProtocol.java +++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocol/StorageContainerLocationProtocol.java @@ -22,6 +22,7 @@ import java.util.EnumSet; import java.util.List; import org.apache.hadoop.ozone.protocol.proto.StorageContainerLocationProtocolProtos.NotifyObjectCreationStageRequestProto; +import org.apache.hadoop.scm.ScmInfo; import org.apache.hadoop.scm.container.common.helpers.ContainerInfo; import org.apache.hadoop.scm.container.common.helpers.Pipeline; import org.apache.hadoop.ozone.protocol.proto.OzoneProtos; @@ -117,4 +118,12 @@ public interface StorageContainerLocationProtocol { * @throws IOException */ void closeContainer(String containerName) throws IOException; + + /** + * Returns information about SCM. + * + * @return {@link ScmInfo} + * @throws IOException + */ + ScmInfo getScmInfo() throws IOException; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/3408fdf9/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/ScmBlockLocationProtocolClientSideTranslatorPB.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/ScmBlockLocationProtocolClientSideTranslatorPB.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/ScmBlockLocationProtocolClientSideTranslatorPB.java index c47abd4..061f0fe 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/ScmBlockLocationProtocolClientSideTranslatorPB.java +++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/ScmBlockLocationProtocolClientSideTranslatorPB.java @@ -33,8 +33,6 @@ import org.apache.hadoop.ozone.protocol.proto.ScmBlockLocationProtocolProtos.Del import org.apache.hadoop.ozone.protocol.proto.ScmBlockLocationProtocolProtos.GetScmBlockLocationsRequestProto; import org.apache.hadoop.ozone.protocol.proto.ScmBlockLocationProtocolProtos.GetScmBlockLocationsResponseProto; import org.apache.hadoop.ozone.protocol.proto.ScmBlockLocationProtocolProtos.ScmLocatedBlockProto; -import org.apache.hadoop.ozone.protocol.proto.ScmBlockLocationProtocolProtos.GetScmInfoRequestProto; -import org.apache.hadoop.ozone.protocol.proto.ScmBlockLocationProtocolProtos.GetScmInfoRespsonseProto; import org.apache.hadoop.ozone.protocol.proto.ScmBlockLocationProtocolProtos.KeyBlocks; import org.apache.hadoop.scm.container.common.helpers.AllocatedBlock; import org.apache.hadoop.scm.ScmInfo; @@ -185,9 +183,9 @@ public final class ScmBlockLocationProtocolClientSideTranslatorPB */ @Override public ScmInfo getScmInfo() throws IOException { - GetScmInfoRequestProto request = - GetScmInfoRequestProto.getDefaultInstance(); - GetScmInfoRespsonseProto resp; + OzoneProtos.GetScmInfoRequestProto request = + OzoneProtos.GetScmInfoRequestProto.getDefaultInstance(); + OzoneProtos.GetScmInfoRespsonseProto resp; try { resp = rpcProxy.getScmInfo(NULL_RPC_CONTROLLER, request); } catch (ServiceException e) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/3408fdf9/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java index 53fd202..0ac322d 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java +++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java @@ -25,6 +25,7 @@ import org.apache.hadoop.ipc.ProtobufHelper; import org.apache.hadoop.ipc.ProtocolTranslator; import org.apache.hadoop.ipc.RPC; import org.apache.hadoop.ozone.protocol.proto.OzoneProtos; +import org.apache.hadoop.scm.ScmInfo; import org.apache.hadoop.scm.container.common.helpers.ContainerInfo; import org.apache.hadoop.scm.protocol.StorageContainerLocationProtocol; import org.apache.hadoop.ozone.protocol.proto.StorageContainerLocationProtocolProtos.CloseContainerRequestProto; @@ -288,6 +289,23 @@ public final class StorageContainerLocationProtocolClientSideTranslatorPB } @Override + public ScmInfo getScmInfo() throws IOException { + OzoneProtos.GetScmInfoRequestProto request = + OzoneProtos.GetScmInfoRequestProto.getDefaultInstance(); + try { + OzoneProtos.GetScmInfoRespsonseProto resp = rpcProxy.getScmInfo( + NULL_RPC_CONTROLLER, request); + ScmInfo.Builder builder = new ScmInfo.Builder() + .setClusterId(resp.getClusterId()) + .setScmId(resp.getScmId()); + return builder.build(); + } catch (ServiceException e) { + throw ProtobufHelper.getRemoteException(e); + } + + } + + @Override public Object getUnderlyingProxyObject() { return rpcProxy; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/3408fdf9/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/Ozone.proto ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/Ozone.proto b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/Ozone.proto index 29bc284..cf5a1e9 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/Ozone.proto +++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/Ozone.proto @@ -133,6 +133,15 @@ message SCMContainerInfo { optional Owner owner = 8 [default = OZONE]; } +message GetScmInfoRequestProto { +} + +message GetScmInfoRespsonseProto { + required string clusterId = 1; + required string scmId = 2; +} + + enum ReplicationType { RATIS = 1; STAND_ALONE = 2; http://git-wip-us.apache.org/repos/asf/hadoop/blob/3408fdf9/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/ScmBlockLocationProtocol.proto ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/ScmBlockLocationProtocol.proto b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/ScmBlockLocationProtocol.proto index b6fd1bd..8a6359b 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/ScmBlockLocationProtocol.proto +++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/ScmBlockLocationProtocol.proto @@ -132,20 +132,6 @@ message AllocateScmBlockResponseProto { } /** - * Request for cluster Id and SCM Id from SCM. - */ -message GetScmInfoRequestProto { -} - -/** - * Response from SCM for cluster Id and SCM ID. - */ -message GetScmInfoRespsonseProto { - required string clusterId = 1; - required string scmId = 2; -} - -/** * Protocol used from KeySpaceManager to StorageContainerManager. * See request and response messages for details of the RPC calls. */ @@ -174,6 +160,6 @@ service ScmBlockLocationProtocolService { /** * Gets the scmInfo from SCM. */ - rpc getScmInfo(GetScmInfoRequestProto) - returns (GetScmInfoRespsonseProto); + rpc getScmInfo(hadoop.hdfs.ozone.GetScmInfoRequestProto) + returns (hadoop.hdfs.ozone.GetScmInfoRespsonseProto); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/3408fdf9/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/StorageContainerLocationProtocol.proto ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/StorageContainerLocationProtocol.proto b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/StorageContainerLocationProtocol.proto index 735d5bc..e65f51b 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/StorageContainerLocationProtocol.proto +++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/proto/StorageContainerLocationProtocol.proto @@ -211,4 +211,10 @@ service StorageContainerLocationProtocolService { */ rpc allocatePipeline(PipelineRequestProto) returns (PipelineResponseProto); + + /** + * Returns information about SCM. + */ + rpc getScmInfo(hadoop.hdfs.ozone.GetScmInfoRequestProto) + returns (hadoop.hdfs.ozone.GetScmInfoRespsonseProto); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/3408fdf9/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/ScmBlockLocationProtocolServerSideTranslatorPB.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/ScmBlockLocationProtocolServerSideTranslatorPB.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/ScmBlockLocationProtocolServerSideTranslatorPB.java index 9bf1e8d..9bdfe98 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/ScmBlockLocationProtocolServerSideTranslatorPB.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/ScmBlockLocationProtocolServerSideTranslatorPB.java @@ -22,6 +22,7 @@ import com.google.protobuf.RpcController; import com.google.protobuf.ServiceException; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.ozone.common.BlockGroup; +import org.apache.hadoop.ozone.protocol.proto.OzoneProtos; import org.apache.hadoop.ozone.protocol.proto.ScmBlockLocationProtocolProtos.DeleteKeyBlocksResultProto; import org.apache.hadoop.scm.container.common.helpers.AllocatedBlock; import org.apache.hadoop.ozone.common.DeleteBlockGroupResult; @@ -44,10 +45,6 @@ import org.apache.hadoop.ozone.protocol.proto .ScmBlockLocationProtocolProtos.GetScmBlockLocationsResponseProto; import org.apache.hadoop.ozone.protocol.proto .ScmBlockLocationProtocolProtos.ScmLocatedBlockProto; -import org.apache.hadoop.ozone.protocol.proto - .ScmBlockLocationProtocolProtos.GetScmInfoRequestProto; -import org.apache.hadoop.ozone.protocol.proto - .ScmBlockLocationProtocolProtos.GetScmInfoRespsonseProto; import java.io.IOException; import java.util.List; @@ -155,15 +152,16 @@ public final class ScmBlockLocationProtocolServerSideTranslatorPB } @Override - public GetScmInfoRespsonseProto getScmInfo(RpcController controller, - GetScmInfoRequestProto req) throws ServiceException { + public OzoneProtos.GetScmInfoRespsonseProto getScmInfo( + RpcController controller, OzoneProtos.GetScmInfoRequestProto req) + throws ServiceException { ScmInfo scmInfo; try { scmInfo = impl.getScmInfo(); } catch (IOException ex) { throw new ServiceException(ex); } - return GetScmInfoRespsonseProto.newBuilder() + return OzoneProtos.GetScmInfoRespsonseProto.newBuilder() .setClusterId(scmInfo.getClusterId()) .setScmId(scmInfo.getScmId()) .build(); http://git-wip-us.apache.org/repos/asf/hadoop/blob/3408fdf9/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/StorageContainerLocationProtocolServerSideTranslatorPB.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/StorageContainerLocationProtocolServerSideTranslatorPB.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/StorageContainerLocationProtocolServerSideTranslatorPB.java index f73bf22..df1fa40 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/StorageContainerLocationProtocolServerSideTranslatorPB.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/protocolPB/StorageContainerLocationProtocolServerSideTranslatorPB.java @@ -29,6 +29,7 @@ import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.ozone.protocol.proto.OzoneProtos; import org.apache.hadoop.ozone.protocol.proto .StorageContainerLocationProtocolProtos; +import org.apache.hadoop.scm.ScmInfo; import org.apache.hadoop.scm.container.common.helpers.ContainerInfo; import org.apache.hadoop.scm.protocol.StorageContainerLocationProtocol; @@ -195,4 +196,20 @@ public final class StorageContainerLocationProtocolServerSideTranslatorPB // TODO : Wiring this up requires one more patch. return null; } + + @Override + public OzoneProtos.GetScmInfoRespsonseProto getScmInfo( + RpcController controller, OzoneProtos.GetScmInfoRequestProto req) + throws ServiceException { + try { + ScmInfo scmInfo = impl.getScmInfo(); + return OzoneProtos.GetScmInfoRespsonseProto.newBuilder() + .setClusterId(scmInfo.getClusterId()) + .setScmId(scmInfo.getScmId()) + .build(); + } catch (IOException ex) { + throw new ServiceException(ex); + } + + } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
