hadoop2.*能力调度器capacity-scheduler

本文介绍如何在Hadoop集群中配置Capacity Scheduler,通过创建用户组dwgroup并调整yarn-site.xml及capacity-scheduler.xml来实现资源分配。具体包括设置默认队列与dwgroup队列的容量、最大容量、状态等参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

capacity-scheduler能力调度器


1.  添加用户组dwgroup(集群中的namenode主备机器都要做以下操作)

groupadd dwgroup           //添加用户组

useradd -G  dwgroup 用户//将用户加到dwgroup用户组里

 

2.  yarn-site.xml

新增配置

<property>

<name>yarn.resourcemanager.scheduler.class</name>

<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>

</property>

 

去掉的配置

<!--llama set -->

<property>

<name>yarn.scheduler.minimum-allocation-mb</name>

<value>0</value>

</property>

<property>

<name>yarn.scheduler.minimum-allocation-vcores</name>

<value>0</value>

</property>

 

 

3.  capacity-scheduler.xml

更改的配置文件

<property>

   <name>yarn.scheduler.capacity.root.queues</name>

    <value>default,dwgroup</value>

    <description>

      The queues at the this level (root is theroot queue).

    </description>

  </property>

 

更改的配置

#--------------------default-----------------------------

<property>

   <name>yarn.scheduler.capacity.root.default.capacity</name>

    <value>30</value>

    <description>Defaultqueue target capacity.</description>

  </property>

 

  <property>

   <name>yarn.scheduler.capacity.root.default.user-limit-factor</name>

    <value>1</value>

    <description>

      Default queue user limita percentage from 0.0 to 1.0.

    </description>

  </property>

 

  <property>

 

  <name>yarn.scheduler.capacity.root.default.maximum-capacity</name>

   <value>100</value>

    <description>

      The maximum capacity ofthe default queue.

    </description>

  </property>

 

  <property>

   <name>yarn.scheduler.capacity.root.default.state</name>

   <value>RUNNING</value>

    <description>

      The state of the defaultqueue. State can be one of RUNNING or STOPPED.

    </description>

  </property>

 

  <property>

   <name>yarn.scheduler.capacity.root.default.acl_submit_applications</name>

   <value>*</value>

    <description>

      The ACL of who can submitjobs to the default queue.

    </description>

  </property>

 

  <property>

   <name>yarn.scheduler.capacity.root.default.acl_administer_queue</name>

   <value>*</value>

    <description>

      The ACL of who canadminister jobs on the default queue.

    </description>

  </property>

 

#------------------------dwgroup -----------------------------------

  <property>

 <name>yarn.scheduler.capacity.root.dwgroup.capacity</name>

  <value>70</value>

  <description>Defaultqueue target capacity.</description>

  </property>

 

  <property>

  <name>yarn.scheduler.capacity.root.dwgroup.user-limit-factor</name>

  <value>1</value>

  <description>

  Default queue user limit apercentage from 0.0 to 1.0.

  </description>

  </property>

 

  <property>

  <name>yarn.scheduler.capacity.root.dwgroup.maximum-capacity</name>

 <value>100</value>

  <description>

  The maximum capacity of thedefault queue.

  </description>

  </property>

 

  <property>

  <name>yarn.scheduler.capacity.root.dwgroup.state</name>

 <value>RUNNING</value>

  <description>

  The state of the defaultqueue. State can be one of RUNNING or STOPPED.

  </description>

  </property>

 

  <property>

 <name>yarn.scheduler.capacity.root.dwgroup.acl_submit_applications</name>

  <value>*</value>

  <description>

  The ACL of who can submitjobs to the default queue.

  </description>

  </property>

 

  <property>

 <name>yarn.scheduler.capacity.root.dwgroup.acl_administer_queue</name>

  <value>* </value>

  <description>

  The ACL of who canadminister jobs on the default queue.

  </description>

  </property>

 

更改的配置

<property>

   <name>yarn.scheduler.capacity.queue-mappings</name>

    <value>g:dwgroup:dwgroup,g:%:default</value>

    <description>

      A list of mappings that will be used toassign jobs to queues

      The syntax for this list is[u|g]:[name]:[queue_name][,next mapping]*

      Typically this list will be used to mapusers to queues,

      for example, u:%user:%user maps all usersto queues with the same name

      as the user.

    </description>

  </property>

 

更改完以上3个配置文件让配置文件生效

/data/hadoop/bin下执行以下命令

 

yarnrmadmin –refreshQueues

 

或者重启yarn执行以下命令

/data/hadoop/sbin/stop-yarn.sh

/data/hadoop/sbin/start-yarn.sh

 

 

 

 

注意:后续有新增用户,集群中的每台机器都要创建该用户,并且指定对应的dwgroup用户组

 

STARTUP_MSG: build = git@github.com:apache/hadoop.git -r bd8b77f398f626bb7791783192ee7a5dfaeec760; compiled by 'root' on 2024-03-04T06:35Z STARTUP_MSG: java = 1.8.0_171 ************************************************************/ 2025-06-14 20:19:00,042 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: registered UNIX signal handlers for [TERM, HUP, INT] 2025-06-14 20:19:00,799 INFO org.apache.hadoop.yarn.server.resourcemanager.RMNMInfo: Registered RMInfo MBean 2025-06-14 20:19:00,819 INFO org.apache.hadoop.conf.Configuration: found resource core-site.xml at file:/export/servers/hadoop-3.4.0/etc/hadoop/core-site.xml 2025-06-14 20:19:00,924 INFO org.apache.hadoop.conf.Configuration: found resource resource-types.xml at file:/export/servers/hadoop-3.4.0/etc/hadoop/resource-types.xml 2025-06-14 20:19:00,925 INFO org.apache.hadoop.yarn.util.resource.ResourceUtils: Adding resource type - name = resource1, units = G, type = COUNTABLE 2025-06-14 20:19:00,926 INFO org.apache.hadoop.yarn.util.resource.ResourceUtils: Adding resource type - name = resource2, units = , type = COUNTABLE 2025-06-14 20:19:00,999 INFO org.apache.hadoop.conf.Configuration: found resource yarn-site.xml at file:/export/servers/hadoop-3.4.0/etc/hadoop/yarn-site.xml 2025-06-14 20:19:01,008 INFO org.apache.hadoop.yarn.metrics.GenericEventTypeMetrics: Registering GenericEventTypeMetrics 2025-06-14 20:19:01,012 INFO org.apache.hadoop.yarn.metrics.GenericEventTypeMetrics: Registering GenericEventTypeMetrics 2025-06-14 20:19:01,014 INFO org.apache.hadoop.yarn.metrics.GenericEventTypeMetrics: Registering GenericEventTypeMetrics 2025-06-14 20:19:01,015 INFO org.apache.hadoop.yarn.metrics.GenericEventTypeMetrics: Registering GenericEventTypeMetrics 2025-06-14 20:19:01,017 INFO org.apache.hadoop.yarn.event.AsyncDispatcher: Registering class org.apache.hadoop.yarn.server.resourcemanager.RMFatalEventType for class org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$RMFatalEventDispatcher 2025-06-14 20:19:01,410 INFO org.apache.hadoop.yarn.server.resourcemanager.security.NMTokenSecretManagerInRM: NMTokenKeyRollingInterval: 86400000ms and NMTokenKeyActivationDelay: 900000ms 2025-06-14 20:19:01,420 INFO org.apache.hadoop.yarn.server.resourcemanager.security.RMContainerTokenSecretManager: ContainerTokenKeyRollingInterval: 86400000ms and ContainerTokenKeyActivationDelay: 900000ms 2025-06-14 20:19:01,435 INFO org.apache.hadoop.yarn.server.resourcemanager.security.AMRMTokenSecretManager: AMRMTokenKeyRollingInterval: 86400000 ms and AMRMTokenKeyActivationDelay: 1350000 ms 2025-06-14 20:19:01,582 INFO org.apache.hadoop.yarn.event.AsyncDispatcher: Registering class org.apache.hadoop.yarn.server.resourcemanager.recovery.RMStateStoreEventType for class org.apache.hadoop.yarn.server.resourcemanager.recovery.RMStateStore$ForwardingEventHandler 2025-06-14 20:19:01,587 INFO org.apache.hadoop.yarn.event.AsyncDispatcher: Registering class org.apache.hadoop.yarn.server.resourcemanager.NodesListManagerEventType for class org.apache.hadoop.yarn.server.resourcemanager.NodesListManager 2025-06-14 20:19:01,587 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Using Scheduler: org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler 2025-06-14 20:19:01,697 INFO org.apache.hadoop.yarn.metrics.GenericEventTypeMetrics: Registering GenericEventTypeMetrics 2025-06-14 20:19:01,699 INFO org.apache.hadoop.yarn.event.AsyncDispatcher: Registering class org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.SchedulerEventType for class org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$SchedulerEventDispatcher 2025-06-14 20:19:01,700 INFO org.apache.hadoop.yarn.event.AsyncDispatcher: Registering class org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppEventType for class org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationEventDispatcher 2025-06-14 20:19:01,701 INFO org.apache.hadoop.yarn.event.AsyncDispatcher: Registering class org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptEventType for class org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationAttemptEventDispatcher 2025-06-14 20:19:01,702 INFO org.apache.hadoop.yarn.event.AsyncDispatcher: Registering class org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNodeEventType for class org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$NodeEventDispatcher 2025-06-14 20:19:01,898 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: Loaded properties from hadoop-metrics2.properties 2025-06-14 20:19:01,926 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled Metric snapshot period at 10 second(s). 2025-06-14 20:19:01,926 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: ResourceManager metrics system started 2025-06-14 20:19:01,991 INFO org.apache.hadoop.yarn.security.YarnAuthorizationProvider: org.apache.hadoop.yarn.security.ConfiguredYarnAuthorizer is instantiated. 2025-06-14 20:19:02,000 INFO org.apache.hadoop.yarn.event.AsyncDispatcher: Registering class org.apache.hadoop.yarn.server.resourcemanager.RMAppManagerEventType for class org.apache.hadoop.yarn.server.resourcemanager.RMAppManager 2025-06-14 20:19:02,019 INFO org.apache.hadoop.yarn.event.AsyncDispatcher: Registering class org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncherEventType for class org.apache.hadoop.yarn.server.resourcemanager.amlauncher.ApplicationMasterLauncher 2025-06-14 20:19:02,637 INFO org.apache.hadoop.yarn.server.resourcemanager.RMNMInfo: Registered RMNMInfo MBean 2025-06-14 20:19:02,640 INFO org.apache.hadoop.yarn.server.resourcemanager.rmapp.monitor.RMAppLifetimeMonitor: Application lifelime monitor interval set to 3000 ms. 2025-06-14 20:19:02,653 INFO org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement.MultiNodeSortingManager: Initializing NodeSortingService=MultiNodeSortingManager 2025-06-14 20:19:02,659 INFO org.apache.hadoop.util.HostsFileReader: Refreshing hosts (include/exclude) list 2025-06-14 20:19:02,672 INFO org.apache.hadoop.conf.Configuration: found resource capacity-scheduler.xml at file:/export/servers/hadoop-3.4.0/etc/hadoop/capacity-scheduler.xml 2025-06-14 20:19:02,690 INFO org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler: Minimum allocation = <memory:1024, vCores:1> 2025-06-14 20:19:02,691 INFO org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler: Maximum allocation = <memory:8192, vCores:4, resource2: 9223372036854775807, resource1: 9223372036854775807G> 2025-06-14 20:19:02,694 INFO org.apache.hadoop.service.AbstractService: Service org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler failed in state INITED org.apache.hadoop.yarn.exceptions.YarnRuntimeException: RM uses DefaultResourceCalculator which used only memory as resource-type but invalid resource-types specified {resource2=name: resource2, units: , type: COUNTABLE, value: 0, minimum allocation: 0, maximum allocation: 9223372036854775807, tags: [], attributes {}, memory-mb=name: memory-mb, units: Mi, type: COUNTABLE, value: 0, minimum allocation: 1024, maximum allocation: 8192, tags: [], attributes {}, vcores=name: vcores, units: , type: COUNTABLE, value: 0, minimum allocation: 1, maximum allocation: 4, tags: [], attributes {}, resource1=name: resource1, units: G, type: COUNTABLE, value: 0, minimum allocation: 0, maximum allocation: 9223372036854775807, tags: [], attributes {}}. Use DominantResourceCalculator instead to make effective use of these resource-types at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.initResourceCalculator(CapacityScheduler.java:359) at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.initScheduler(CapacityScheduler.java:306) at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.serviceInit(CapacityScheduler.java:412) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:165) at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:110) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$RMActiveServices.serviceInit(ResourceManager.java:996) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:165) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.createAndInitActiveServices(ResourceManager.java:1511) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceInit(ResourceManager.java:351) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:165) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:1800) 2025-06-14 20:19:02,703 WARN org.apache.hadoop.service.AbstractService: When stopping the service org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler java.lang.NullPointerException at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.serviceStop(CapacityScheduler.java:427) at org.apache.hadoop.service.AbstractService.stop(AbstractService.java:221) at org.apache.hadoop.service.ServiceOperations.stop(ServiceOperations.java:53) at org.apache.hadoop.service.ServiceOperations.stopQuietly(ServiceOperations.java:102) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:173) at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:110) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$RMActiveServices.serviceInit(ResourceManager.java:996) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:165) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.createAndInitActiveServices(ResourceManager.java:1511) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceInit(ResourceManager.java:351) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:165) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:1800) 2025-06-14 20:19:02,703 INFO org.apache.hadoop.service.AbstractService: Service RMActiveServices failed in state INITED org.apache.hadoop.yarn.exceptions.YarnRuntimeException: RM uses DefaultResourceCalculator which used only memory as resource-type but invalid resource-types specified {resource2=name: resource2, units: , type: COUNTABLE, value: 0, minimum allocation: 0, maximum allocation: 9223372036854775807, tags: [], attributes {}, memory-mb=name: memory-mb, units: Mi, type: COUNTABLE, value: 0, minimum allocation: 1024, maximum allocation: 8192, tags: [], attributes {}, vcores=name: vcores, units: , type: COUNTABLE, value: 0, minimum allocation: 1, maximum allocation: 4, tags: [], attributes {}, resource1=name: resource1, units: G, type: COUNTABLE, value: 0, minimum allocation: 0, maximum allocation: 9223372036854775807, tags: [], attributes {}}. Use DominantResourceCalculator instead to make effective use of these resource-types at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.initResourceCalculator(CapacityScheduler.java:359) at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.initScheduler(CapacityScheduler.java:306) at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.serviceInit(CapacityScheduler.java:412) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:165) at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:110) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$RMActiveServices.serviceInit(ResourceManager.java:996) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:165) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.createAndInitActiveServices(ResourceManager.java:1511) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceInit(ResourceManager.java:351) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:165) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:1800) 2025-06-14 20:19:02,705 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Stopping ResourceManager metrics system... 2025-06-14 20:19:02,706 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: ResourceManager metrics system stopped. 2025-06-14 20:19:02,706 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: ResourceManager metrics system shutdown complete. 2025-06-14 20:19:02,707 INFO org.apache.hadoop.yarn.event.AsyncDispatcher: AsyncDispatcher is draining to stop, ignoring any new events. 2025-06-14 20:19:02,707 INFO org.apache.hadoop.service.AbstractService: Service ResourceManager failed in state INITED org.apache.hadoop.yarn.exceptions.YarnRuntimeException: RM uses DefaultResourceCalculator which used only memory as resource-type but invalid resource-types specified {resource2=name: resource2, units: , type: COUNTABLE, value: 0, minimum allocation: 0, maximum allocation: 9223372036854775807, tags: [], attributes {}, memory-mb=name: memory-mb, units: Mi, type: COUNTABLE, value: 0, minimum allocation: 1024, maximum allocation: 8192, tags: [], attributes {}, vcores=name: vcores, units: , type: COUNTABLE, value: 0, minimum allocation: 1, maximum allocation: 4, tags: [], attributes {}, resource1=name: resource1, units: G, type: COUNTABLE, value: 0, minimum allocation: 0, maximum allocation: 9223372036854775807, tags: [], attributes {}}. Use DominantResourceCalculator instead to make effective use of these resource-types at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.initResourceCalculator(CapacityScheduler.java:359) at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.initScheduler(CapacityScheduler.java:306) at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.serviceInit(CapacityScheduler.java:412) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:165) at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:110) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$RMActiveServices.serviceInit(ResourceManager.java:996) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:165) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.createAndInitActiveServices(ResourceManager.java:1511) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceInit(ResourceManager.java:351) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:165) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:1800) 2025-06-14 20:19:02,708 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Transitioning to standby state 2025-06-14 20:19:02,708 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Transitioned to standby state 2025-06-14 20:19:02,708 ERROR org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error starting ResourceManager org.apache.hadoop.yarn.exceptions.YarnRuntimeException: RM uses DefaultResourceCalculator which used only memory as resource-type but invalid resource-types specified {resource2=name: resource2, units: , type: COUNTABLE, value: 0, minimum allocation: 0, maximum allocation: 9223372036854775807, tags: [], attributes {}, memory-mb=name: memory-mb, units: Mi, type: COUNTABLE, value: 0, minimum allocation: 1024, maximum allocation: 8192, tags: [], attributes {}, vcores=name: vcores, units: , type: COUNTABLE, value: 0, minimum allocation: 1, maximum allocation: 4, tags: [], attributes {}, resource1=name: resource1, units: G, type: COUNTABLE, value: 0, minimum allocation: 0, maximum allocation: 9223372036854775807, tags: [], attributes {}}. Use DominantResourceCalculator instead to make effective use of these resource-types at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.initResourceCalculator(CapacityScheduler.java:359) at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.initScheduler(CapacityScheduler.java:306) at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.serviceInit(CapacityScheduler.java:412) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:165) at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:110) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$RMActiveServices.serviceInit(ResourceManager.java:996) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:165) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.createAndInitActiveServices(ResourceManager.java:1511) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceInit(ResourceManager.java:351) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:165) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:1800) 2025-06-14 20:19:02,717 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down ResourceManager at hadoop01/192.168.121.134 ************************************************************/
最新发布
06-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值