Browse Source

HDFS-12611. Ozone: SCM Cli: Use the hostname of SCM server instead of the bind address. Contributed by Elek, Marton.

Chen Liang 7 years ago
parent
commit
776db5aed5

+ 4 - 10
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/SCMCLI.java

@@ -29,6 +29,7 @@ import org.apache.hadoop.ipc.RPC;
 import org.apache.hadoop.net.NetUtils;
 import org.apache.hadoop.net.NetUtils;
 import org.apache.hadoop.conf.OzoneConfiguration;
 import org.apache.hadoop.conf.OzoneConfiguration;
 import org.apache.hadoop.ozone.OzoneConsts;
 import org.apache.hadoop.ozone.OzoneConsts;
+import org.apache.hadoop.ozone.client.OzoneClientUtils;
 import org.apache.hadoop.ozone.scm.cli.container.ContainerCommandHandler;
 import org.apache.hadoop.ozone.scm.cli.container.ContainerCommandHandler;
 import org.apache.hadoop.ozone.web.exceptions.OzoneException;
 import org.apache.hadoop.ozone.web.exceptions.OzoneException;
 import org.apache.hadoop.scm.XceiverClientManager;
 import org.apache.hadoop.scm.XceiverClientManager;
@@ -49,10 +50,6 @@ import static org.apache.hadoop.ozone.scm.cli.ResultCode.EXECUTION_ERROR;
 import static org.apache.hadoop.ozone.scm.cli.ResultCode.SUCCESS;
 import static org.apache.hadoop.ozone.scm.cli.ResultCode.SUCCESS;
 import static org.apache.hadoop.ozone.scm.cli.ResultCode.UNRECOGNIZED_CMD;
 import static org.apache.hadoop.ozone.scm.cli.ResultCode.UNRECOGNIZED_CMD;
 import static org.apache.hadoop.ozone.scm.cli.container.ContainerCommandHandler.CONTAINER_CMD;
 import static org.apache.hadoop.ozone.scm.cli.container.ContainerCommandHandler.CONTAINER_CMD;
-import static org.apache.hadoop.scm.ScmConfigKeys.OZONE_SCM_CLIENT_BIND_HOST_DEFAULT;
-import static org.apache.hadoop.scm.ScmConfigKeys.OZONE_SCM_CLIENT_BIND_HOST_KEY;
-import static org.apache.hadoop.scm.ScmConfigKeys.OZONE_SCM_CLIENT_PORT_DEFAULT;
-import static org.apache.hadoop.scm.ScmConfigKeys.OZONE_SCM_CLIENT_PORT_KEY;
 import static org.apache.hadoop.scm.ScmConfigKeys.OZONE_SCM_CONTAINER_SIZE_DEFAULT;
 import static org.apache.hadoop.scm.ScmConfigKeys.OZONE_SCM_CONTAINER_SIZE_DEFAULT;
 import static org.apache.hadoop.scm.ScmConfigKeys.OZONE_SCM_CONTAINER_SIZE_GB;
 import static org.apache.hadoop.scm.ScmConfigKeys.OZONE_SCM_CONTAINER_SIZE_GB;
 
 
@@ -106,21 +103,18 @@ public class SCMCLI extends OzoneBaseCLI {
       throws IOException {
       throws IOException {
     long version = RPC.getProtocolVersion(
     long version = RPC.getProtocolVersion(
         StorageContainerLocationProtocolPB.class);
         StorageContainerLocationProtocolPB.class);
-    String scmAddress = ozoneConf.get(OZONE_SCM_CLIENT_BIND_HOST_KEY,
-        OZONE_SCM_CLIENT_BIND_HOST_DEFAULT);
-    int scmPort = ozoneConf.getInt(OZONE_SCM_CLIENT_PORT_KEY,
-        OZONE_SCM_CLIENT_PORT_DEFAULT);
+    InetSocketAddress scmAddress =
+        OzoneClientUtils.getScmAddressForClients(ozoneConf);
     int containerSizeGB = ozoneConf.getInt(OZONE_SCM_CONTAINER_SIZE_GB,
     int containerSizeGB = ozoneConf.getInt(OZONE_SCM_CONTAINER_SIZE_GB,
         OZONE_SCM_CONTAINER_SIZE_DEFAULT);
         OZONE_SCM_CONTAINER_SIZE_DEFAULT);
     ContainerOperationClient.setContainerSizeB(containerSizeGB*OzoneConsts.GB);
     ContainerOperationClient.setContainerSizeB(containerSizeGB*OzoneConsts.GB);
-    InetSocketAddress address = new InetSocketAddress(scmAddress, scmPort);
 
 
     RPC.setProtocolEngine(ozoneConf, StorageContainerLocationProtocolPB.class,
     RPC.setProtocolEngine(ozoneConf, StorageContainerLocationProtocolPB.class,
         ProtobufRpcEngine.class);
         ProtobufRpcEngine.class);
     StorageContainerLocationProtocolClientSideTranslatorPB client =
     StorageContainerLocationProtocolClientSideTranslatorPB client =
         new StorageContainerLocationProtocolClientSideTranslatorPB(
         new StorageContainerLocationProtocolClientSideTranslatorPB(
             RPC.getProxy(StorageContainerLocationProtocolPB.class, version,
             RPC.getProxy(StorageContainerLocationProtocolPB.class, version,
-                address, UserGroupInformation.getCurrentUser(), ozoneConf,
+                scmAddress, UserGroupInformation.getCurrentUser(), ozoneConf,
                 NetUtils.getDefaultSocketFactory(ozoneConf),
                 NetUtils.getDefaultSocketFactory(ozoneConf),
                 Client.getRpcTimeout(ozoneConf)));
                 Client.getRpcTimeout(ozoneConf)));
     ScmClient storageClient = new ContainerOperationClient(
     ScmClient storageClient = new ContainerOperationClient(