百度智能云

All Product Document

          MapReduce

          InstanceGroup

          Query Instance Group Lists

          The following code is used to obtain instance group information based on cluster ID:

          public void listInstanceGroups(BmrClient client, String clusterId) {
              try {
                  // method 1. list of instance groups about the specified cluster ID
                  ListInstanceGroupsResponse response1 = client.listInstanceGroups(clusterId);
                  // method 2. query request with customization of ListInstanceGroupsRequest object 
                  ListInstanceGroupsResponse response2 = client.listInstanceGroups(new ListInstanceGroupsRequest().withClusterId(clusterId));
                  for (InstanceGroup instanceGroup: response2.getInstanceGroups()) {
                      System.out.println(instanceGroup.getId() + "," +  instanceGroup.getType()
                              + "," + instanceGroup.getInstanceType() + "," + instanceGroup.getRequestedInstanceCount()
                              + "," + instanceGroup.getRootDiskSizeInGB() + "," + instanceGroup.getRootDiskMediumType());
                      for (CdsItem cdsItem: instanceGroup.getCds()){
                          System.out.println("cdsItem " + cdsItem.getSizeInGB() + “,” + cdsItem.getMediumType());
                      }
                  }
              } catch (BceServiceException e){
                  System.out.println("List instance group failed: " + e.getErrorMessage());
              }
          }

          The ListInstanceGroupsResponse object returned under request contains the instance group object array List, and the instance group object array is obtained via response.getInstanceGroups(). The properties of instance group object (i.e., InstanceGroup) include instance group type, instance number, system disk capacity, and other configuration information, and every property has its getter accessor method. The system disk storage media have two types: ssd (SSD cloud disk) and premium_ssd (high-performance cloud disk).

          public class InstanceGroup {
              private String id;                                     //instance group ID
              private String instanceType;                           //instance group package type
              private String name;                                   //instance group name
              private String type;                                   //instance group type
              private int requestedInstanceCount;                    //number of requested instances
              private int rootDiskSizeInGB;                          //system disk capacity
              private String rootDiskMediumType;                     //system disk storage medium type 
              private List<CdsItem> cds;                             //list of cloud disk information
          }

          The properties of the cloud disk object (i.e., CdsItem) include cloud disk capacity and cloud disk storage media, and every property has its getter accessor method. The cloud storage media have two types: premium_ssd (SSD cloud disk), and ssd (high-performance cloud disk).

          public class CdsItem {
              private int sizeInGB;                                 //cloud disk capacity
              private String mediumType;                            //cloud disk storage media 
          }

          Modify Instance Group Configurations

          BMR can modify the configuration of CORE and TASK nodes, and the example code is as follows:

          public void modifyInstanceGroups(BmrClient bmrClient, String clusterId, String coreGroupId, String taskGroupId) {
              // instance groups needing no modification are omitted
              List<ModifyInstanceGroupConfig> instanceGroups = new ArrayList<ModifyInstanceGroupConfig>();
              // core group
              ModifyInstanceGroupConfig coreGroup = new ModifyInstanceGroupConfig();
              coreGroup.setId(coreGroupId);
              coreGroup.setInstanceCount(4);
              instanceGroups.add(coreGroup);
              // task group
              ModifyInstanceGroupConfig taskGroup = new ModifyInstanceGroupConfig();
              taskGroup.setId(taskGroupId);
              taskGroup.setInstanceCount(2);
              instanceGroups.add(taskGroup);
          
              String clientToken = UUID.randomUUID().toString();
              try {
                  bmrClient.modifyInstanceGroups(
                          new ModifyInstanceGroupRequest()
                                  .withClusterId(clusterId)
                                  .withInstanceGroups(instanceGroups)
                                  .withClientToken(clientToken)
                  );
              } catch (BceServiceException e) {
                  System.out.println("Modify instance groups failed: " + e.getErrorMessage());
              }
          }
          Previous
          Instance
          Next
          Cluster