Windows环境下Hadoop 2.7.x安装与配置指南

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:在Windows系统中安装和配置Hadoop 2.7.x集群是一项对于大数据分析至关重要的任务。本文将详细介绍如何使用CMD命令行工具在Windows操作系统上安装Hadoop 2.7.x,包括环境变量配置、编辑配置文件、格式化NameNode、启动Hadoop服务以及验证安装和运行示例程序的步骤。通过这些步骤,读者能够成功搭建一个本地的Hadoop测试集群,为未来的大数据处理学习和实践打下基础。
hadoop2.7.x windows下安装cmd文件

1. Hadoop 2.7.x在Windows下的安装

安装Hadoop 2.7.x在Windows环境下相对直接,但需要确保所有前置条件均得到满足,以便顺畅地进行后续操作。在开始安装之前,您需要在Windows系统上安装Java环境,这是因为Hadoop是用Java编写的,运行Hadoop服务需要Java运行时环境(JRE)或Java开发工具包(JDK)。安装完成后,您需要设置JAVA_HOME环境变量,该变量指示Hadoop在哪里找到Java。

请按照以下步骤操作:

  1. 从官方网站下载并安装Java(建议使用Java SE 8)。
  2. 配置JAVA_HOME环境变量,通常这个路径是在安装Java时自动设置的,但有时您可能需要手动进行设置。环境变量的值应该是JDK的安装目录。
  3. 接下来,下载适用于Windows的Hadoop 2.7.x预编译版本。可以从Apache镜像或官方仓库下载。
  4. 解压下载的Hadoop文件到您选择的目录。
  5. 在系统环境变量中,添加HADOOP_HOME变量,值为您解压Hadoop的目录路径。然后将 %HADOOP_HOME%\bin 添加到系统PATH变量中,确保可以全局访问Hadoop的可执行文件。

这些步骤的目的是确保Hadoop可以被系统识别并执行,而无需指定完整路径。安装完成后,可以通过在命令提示符中运行 hadoop version 命令来验证安装是否成功。如果看到Hadoop版本信息,则说明安装成功。

C:\Users\Administrator> hadoop version
Hadoop 2.7.2
Subversion https://github.com/apache/hadoop -r c3425211c801e854c41b5b2d54b077a9670d290c -r 1581446
Compiled by jenkins on 2015-02-27T23:14Z
Compiled with protoc 2.5.0
From source with checksum 2b71c6e596a8485a4457850646a2a3a
This command was run using C:\hadoop\hadoop-2.7.2\bin\hadoop.dll

注意,在Windows系统上,Hadoop需要额外的配置来支持Windows安全模型,您可能还需要使用winutils.exe和hadoop.dll,这些文件可以在Hadoop for Windows项目上找到。

在本章的结尾,您将成功地在Windows系统上安装了Hadoop 2.7.x版本,为后续的环境配置和使用打下了坚实的基础。

2. 环境变量的配置方法

2.1 理解环境变量的作用

2.1.1 环境变量对系统操作的影响

环境变量是操作系统用来指定系统运行环境的一些参数,它们对于操作系统及其运行的程序都非常重要。例如,环境变量PATH指定了系统查找可执行文件的路径,当用户在命令行输入一个命令时,操作系统会根据PATH环境变量定义的路径来查找相应的程序。

环境变量在操作系统中发挥着全局的影响力,可以影响到各种应用程序的行为。比如,当你在命令行中运行Java程序时,系统需要通过JAVA_HOME环境变量来找到Java的安装路径,然后执行相应的Java解释器。

2.1.2 环境变量在Hadoop安装中的重要性

Hadoop作为一个分布式系统框架,对环境变量有着特殊的要求。Hadoop的安装、配置以及运行都依赖于正确设置的环境变量。尤其是 HADOOP_HOME PATH 环境变量,它们帮助Hadoop的各个组件定位到其可执行文件,是确保Hadoop能够正确运行的关键。

具体到Hadoop, HADOOP_HOME 环境变量应该设置为Hadoop安装的根目录。而 PATH 环境变量需要包含 %HADOOP_HOME%\bin %HADOOP_HOME%\sbin ,以便系统能够找到Hadoop的命令行工具和管理工具。

2.2 配置系统环境变量

2.2.1 环境变量的设置流程

在Windows系统中,配置环境变量的步骤如下:

  1. 在桌面右击“此电脑”或“我的电脑”,选择“属性”。
  2. 在弹出的系统窗口中选择“高级系统设置”。
  3. 在系统属性窗口中,点击“环境变量”按钮。
  4. 在环境变量窗口中,可以在“系统变量”区域点击“新建”来创建新的环境变量,或者选中已有的环境变量后点击“编辑”。

具体的配置值取决于你的Hadoop安装位置。例如,如果你的Hadoop安装在 C:\Hadoop 目录下,则需要添加 HADOOP_HOME=C:\Hadoop 到系统变量中,并在 PATH 变量中添加 %HADOOP_HOME%\bin %HADOOP_HOME%\sbin

2.2.2 验证环境变量设置的正确性

设置完毕后,需要验证环境变量是否正确设置。可以在命令行界面(cmd)中输入以下命令来检查:

echo %HADOOP_HOME%

如果系统能够输出正确的Hadoop安装路径,那么 HADOOP_HOME 环境变量设置正确。同样,使用以下命令来检查 PATH

echo %PATH%

确保输出的路径中包含了 %HADOOP_HOME%\bin %HADOOP_HOME%\sbin 。这样,无论是直接输入Hadoop命令还是通过其他程序调用Hadoop组件,系统都能够正确地找到对应的执行文件。

2.3 配置Hadoop环境变量

2.3.1 Hadoop环境变量的特殊设置

在配置Hadoop环境变量时,需要注意以下几点:

  • HADOOP_HOME 需要指向Hadoop的安装目录,这一点对任何操作系统都是通用的。
  • PATH 变量中要添加的路径包括 %HADOOP_HOME%\bin %HADOOP_HOME%\sbin ,这两个目录包含了Hadoop的主要可执行文件。
  • 对于运行Hadoop集群,还需要配置一些其他的环境变量,比如 HADOOP_MAPRED_HOME HADOOP_YARN_HOME HADOOP(Common)_BASE 等。

2.3.2 配置Hadoop环境变量的注意事项

配置Hadoop环境变量时需要注意以下事项:

  • 确保Hadoop的各个组件路径正确无误,这样Hadoop才能正常运行。
  • 在Windows系统中,使用分号 ; 来分隔不同的路径,而在类Unix系统中,使用冒号 : 来分隔路径。
  • 如果在类Unix系统中配置环境变量,通常需要将配置添加到 ~/.bashrc ~/.bash_profile 文件中,并使用 source 命令使其生效。
  • 如果有多个Hadoop版本需要在同一个系统上运行,建议使用不同的Hadoop安装目录和环境变量名称,避免冲突。

通过以上步骤,Hadoop的环境变量配置就算完成。正确配置后,你可以在任何新的命令行窗口中直接运行Hadoop命令,这在进行Hadoop的后续操作和管理时非常关键。如果需要进一步验证配置,可以运行简单的Hadoop命令,比如 hadoop version 来查看版本信息,这样可以确保Hadoop已经正确识别和加载环境变量。

3. Hadoop配置文件的编辑过程

3.1 配置文件的概述

3.1.1 核心配置文件及其作用

Hadoop作为一个高度可配置的分布式存储和计算框架,其核心功能的开启与调整依赖于一套复杂的配置文件系统。Hadoop的配置文件主要位于 $HADOOP_HOME/etc/hadoop/ 目录下,这个目录包含了几乎所有需要用户定制的配置文件。核心的配置文件主要有以下几个:

  • core-site.xml : 此文件用于设置Hadoop的全局属性,例如I/O设置,文件系统和通信框架配置等。
  • hdfs-site.xml : 此文件主要针对HDFS进行配置,比如副本数、名称节点的配置等。
  • mapred-site.xml : 此文件用于配置MapReduce作业的执行参数。
  • yarn-site.xml : 此文件配置了YARN相关属性,包括资源管理器的地址、资源调度器类型等。

这些文件共同作用,确保了Hadoop集群能够根据用户的具体需求进行个性化配置。

3.1.2 配置文件的基本编辑原则

编辑Hadoop配置文件时,以下原则需遵循:

  1. 注释清晰 :对于每个更改,添加注释说明更改的目的和内容,方便未来查阅和问题追踪。
  2. 备份原文件 :在编辑之前,先备份原始文件,以防编辑后出现问题可以快速恢复。
  3. 遵循格式 :确保配置文件中的格式正确,比如XML文件的标签必须正确闭合。
  4. 逐个更改 :一次更改一个配置项,并进行测试验证,以定位问题到具体更改项。
  5. 同步更新 :如果集群环境需要更改配置,必须在所有相关节点上进行同步更新。

3.2 核心配置文件编辑

3.2.1 配置文件中的关键参数设置

Hadoop的配置文件中有很多关键参数,设置这些参数时需要根据实际情况慎重考虑,下面以 core-site.xml 中的部分关键参数为例进行说明:

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://namenode:8020</value>
  </property>
  <property>
    <name>io.file.buffersize</name>
    <value>131072</value>
  </property>
</configuration>
  • fs.defaultFS : 此参数指定了Hadoop文件系统的默认文件系统和地址,通常是HDFS的名称节点地址。
  • io.file.buffersize : 此参数设置了文件输入/输出的缓冲大小。

3.2.2 配置文件的详细编辑步骤

编辑Hadoop配置文件时,以下是具体的操作步骤:

  1. 打开配置文件 :使用文本编辑器打开相应的配置文件,例如 core-site.xml
  2. 修改参数 :按照需要更改特定的配置项。如需添加新的配置项,必须使用标准的XML格式。
  3. 添加注释 :对于更改的每一项配置,建议添加注释说明更改原因和预期效果。
  4. 保存更改 :完成编辑后保存文件,并关闭编辑器。
  5. 验证更改 :运行Hadoop命令检查配置是否生效,例如使用 hadoop fs -ls / 来验证 fs.defaultFS 是否设置成功。

3.3 其他配置文件的涉及

3.3.1 日志、内存等相关配置文件

Hadoop集群涉及性能优化和问题诊断时,经常需要调整与日志、内存相关的配置文件,如:

  • log4j.properties : 此文件配置了Hadoop日志相关的设置。
  • hadoop-env.sh : 此脚本配置了Hadoop运行时环境,特别是Java相关的参数,如堆内存大小。

对这些文件的编辑需要了解Java和日志框架的背景知识,以避免对Hadoop集群的性能造成负面影响。

3.3.2 配置文件之间的关联和影响

Hadoop配置文件之间是相互关联的,一个配置的更改可能会影响到其他配置文件。例如,更改 hdfs-site.xml 中的副本数会影响YARN和MapReduce作业的资源分配。因此,在进行配置更改后,必须全面考虑所有相关配置文件的影响,并进行必要的调整和测试,确保更改达到预期效果,避免配置冲突。

4. NameNode的格式化步骤

4.1 NameNode格式化的重要性

4.1.1 HDFS的工作原理简介

Hadoop分布式文件系统(HDFS)是Hadoop项目的核心组件之一,它专为在硬件故障频繁的环境中存储大量数据而设计。HDFS采用了主/从架构,其中主要由两类节点组成:NameNode和DataNode。

NameNode作为中心管理节点,负责维护文件系统的元数据(metadata),如文件系统树、文件和目录属性以及DataNode上数据块(block)的映射关系。它并不存储实际的数据,而是存储了数据如何分布在集群中的信息。

DataNode作为数据节点,实际存储了文件系统的数据块。每个DataNode节点上存储了部分数据块,并处理文件系统客户端的读写请求。DataNode之间可以相互通信,进行数据的复制和负载均衡。

4.1.2 NameNode格式化在HDFS中的角色

NameNode格式化(Format)是搭建Hadoop集群时的一个重要步骤。格式化是指为NameNode初始化文件系统元数据的目录结构,创建必要的文件和目录,并准备好存储元数据的状态。格式化过程还会生成一个唯一的文件系统ID(FsID),这个ID在集群中必须是唯一的,用以区分不同的HDFS实例。

格式化后的NameNode能够开始接收来自客户端的请求,提供文件系统的命名空间,进行文件的创建、删除、复制等操作。同时,格式化操作还将为后续的数据块复制和存储提供基础。

4.2 格式化前的准备工作

4.2.1 检查配置文件的完整性

在格式化NameNode之前,需要确保所有的配置文件都已正确设置并完整无误。最核心的配置文件包括 hdfs-site.xml , core-site.xml mapred-site.xml

配置文件中的参数设置需要遵循特定的逻辑,如 fs.defaultFS 指定了Hadoop文件系统默认的NameNode地址和端口, dfs.replication 指定了数据复制的副本数。所有这些参数的设置都应根据实际部署需求来调整。

4.2.2 确保Hadoop服务未在运行

在格式化NameNode之前,需要确认Hadoop集群中的所有服务都未在运行。如果Hadoop集群已经运行过,那么任何尝试重新格式化NameNode的操作都应该伴随着数据的清除和重新启动集群的步骤。

可以通过 jps 命令检查Java进程,确保没有 NameNode , DataNode , ResourceManager 等关键进程正在运行。

4.3 执行NameNode格式化的命令

4.3.1 格式化命令的使用方法

格式化NameNode的命令非常简单,仅需要在Hadoop的安装目录下,运行 hdfs namenode -format 命令。

hdfs namenode -format

该命令将初始化NameNode的元数据存储目录,创建必要的文件,并设置文件系统的初始状态。格式化完成后,NameNode将能够接受来自客户端的请求并开始处理。

4.3.2 格式化过程中的常见问题及解决方案

格式化过程中可能会遇到一些问题。一个常见的问题是如果之前已经格式化过NameNode,未清除旧的数据,那么再次执行格式化命令会报错。

解决方法是在格式化之前使用 hdfs namenode -upgrade 命令。如果要彻底重新开始,可能需要手动删除 dfs.name.dir 指定目录下的所有文件和目录。

hdfs namenode -upgrade

另一个问题是权限问题,特别是在使用高权限用户(如root)配置的Hadoop集群中,格式化NameNode时应确保Hadoop用户具有对相关目录的完全控制权。

# 以hadoop用户身份执行
sudo -u hadoop hdfs namenode -format

在执行格式化操作时,确保这些步骤正确无误,避免数据丢失或者不一致的情况发生。在生产环境中,建议先在测试环境中进行尝试,并确保所有操作均符合最佳实践和业务需求。

5. 启动Hadoop服务的具体操作

5.1 启动服务前的检查

5.1.1 检查Hadoop安装路径

在启动Hadoop服务之前,确保你的安装路径正确无误。Hadoop通常会安装在一个指定的目录下,例如 C:\hadoop-2.7.1 。你可以使用Windows的文件资源管理器来检查这个路径是否存在,或者使用命令行工具来确认这一点。如果路径不存在或有误,你可能需要重新安装Hadoop。

5.1.2 验证配置文件是否正确配置

Hadoop的启动依赖于一系列配置文件的正确设置。配置文件通常位于 C:\hadoop-2.7.1\etc\hadoop 目录下,主要包括 hadoop-env.cmd core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml 等文件。打开这些文件,并检查以下几点:

  • 确保所有环境变量设置正确,特别是 JAVA_HOME 的路径指向了正确的JDK安装目录。
  • 配置文件中的各个参数如 fs.defaultFS dfs.replication 等已经根据你的环境做了正确的修改。
  • 配置文件中没有语法错误,如XML文件的标签闭合是否正确。
<!-- 示例:core-site.xml -->
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
  <!-- 其他配置项 -->
</configuration>

5.2 启动Hadoop服务的步骤

5.2.1 使用cmd启动各个守护进程

Hadoop服务的启动需要通过命令行界面执行一系列命令。首先打开一个Windows命令提示符(cmd),然后导航到你的Hadoop安装目录的 bin 文件夹。

cd C:\hadoop-2.7.1\bin

接下来,按照以下顺序启动各个守护进程:

  • 格式化NameNode(仅第一次安装需要执行):
hdfs namenode -format
  • 启动NameNode和DataNode守护进程:
start-dfs.cmd
  • 启动YARN(包括ResourceManager和NodeManager)守护进程:
start-yarn.cmd

5.2.2 监控服务启动状态的方法

服务启动后,你需要检查这些守护进程是否正常运行。可以通过两种方式来监控Hadoop服务的启动状态:

  • 使用命令行工具查看进程:
jps

该命令会列出所有运行中的Java虚拟机进程,你应该可以看到 NameNode DataNode ResourceManager NodeManager 等Hadoop相关的进程。

  • 查看Hadoop的Web界面,通常在 http://localhost:50070/ 或者 http://localhost:8088/ 。这些页面会显示各个守护进程的状态信息,帮助你判断服务是否正常启动。

5.3 服务启动失败的排查方法

5.3.1 常见启动错误的原因分析

Hadoop服务启动失败可能由多种原因导致,常见问题包括:

  • 环境变量配置不正确。
  • 端口号冲突,导致守护进程启动失败。
  • 系统资源不足,如内存不足或CPU占用过高。
  • Java版本与Hadoop不兼容。

5.3.2 排查和解决启动问题的技巧

当你遇到服务启动失败时,可以采取以下步骤进行排查和解决问题:

  • 检查Hadoop日志文件,通常位于 C:\hadoop-2.7.1\logs 目录下。这些日志文件记录了详细的错误信息和异常堆栈信息。
  • 确保所有依赖的服务(如SSH服务)已经启动,并且配置正确。
  • 检查防火墙设置,确保所有必需的端口都未被阻塞。
  • 如果怀疑是Java版本问题,检查Hadoop官方文档,确认你的JDK版本是否符合要求。

通过上述步骤的细致检查和调整,通常可以解决大多数的启动问题。如果问题依然存在,建议深入研究相关日志信息,或寻求Hadoop社区的帮助。

6. 验证Hadoop安装的方法

在安装Hadoop并进行一系列配置之后,验证安装的正确性是至关重要的一步。这不仅仅是为了确认Hadoop已经正确安装,更是为了后续的操作和使用打下坚实的基础。验证安装的方法通常包括查看版本信息、检查服务状态以及执行简单的Hadoop命令测试。下面将详细介绍这三个方面。

6.1 验证Hadoop版本信息

6.1.1 查看Hadoop版本的命令

验证Hadoop版本最直接的方法是使用Hadoop自带的命令行工具。打开命令提示符或终端,输入以下命令并执行:

hadoop version

执行后,如果Hadoop已正确安装,将会输出Hadoop的版本信息,包括Hadoop版本号、构建日期以及编译信息等。

6.1.2 版本信息对后续操作的意义

查看版本信息不仅仅是为了确认安装的Hadoop是哪个版本,更多的是为了确保后续的操作与所安装的版本兼容。不同的Hadoop版本可能会有不同的配置要求和运行环境,通过查看版本信息,可以帮助用户了解当前Hadoop环境的具体情况,为后续的开发和维护工作提供帮助。

6.2 验证Hadoop服务状态

6.2.1 检查各个服务是否正常运行

确认Hadoop服务是否正常运行,需要检查Hadoop的核心守护进程:NameNode、DataNode、ResourceManager、NodeManager等。在命令行中输入:

jps

这个命令用于列出Java虚拟机中的进程。执行后,如果一切正常,应该会看到类似如下进程列表:

  • NameNode
  • DataNode
  • ResourceManager
  • NodeManager

如果某个守护进程没有出现,可能是服务没有启动,或者配置文件有误。

6.2.2 使用Web界面监控服务状态

除了命令行工具,Hadoop还提供了基于Web的用户界面来监控和管理Hadoop集群。默认情况下,这些界面通常可以在本地主机的如下端口上访问:

  • NameNode的Web界面:http://localhost:9870/
  • ResourceManager的Web界面:http://localhost:8088/

打开这些界面,可以直观地查看服务的状态以及执行一些基本的管理操作。如果这些服务没有运行,需要检查相应的配置文件,并确保所有服务都已经正确启动。

6.3 执行简单的Hadoop命令测试

6.3.1 测试HDFS的基本操作命令

为了进一步验证Hadoop的功能,可以尝试在HDFS上执行一些基本操作。比如列出HDFS根目录的文件:

hadoop fs -ls /

这个命令将显示HDFS根目录下的文件和目录列表。如果命令执行成功,将输出当前根目录下的内容;如果有错误,则可能是因为HDFS没有正确配置或启动。

6.3.2 测试MapReduce任务的基本操作

MapReduce是Hadoop的核心组件之一,执行简单的MapReduce任务是验证其安装是否成功的另一个重要步骤。可以通过运行一个简单的单词计数示例来测试MapReduce功能:

hadoop jar /path/to/hadoop-examples.jar wordcount /input /output

这个命令会将指定的输入目录 /input 中的文件作为输入,执行单词计数作业,并将结果输出到 /output 目录。命令执行完毕后,可以通过检查输出目录来验证作业是否成功完成。

以上步骤完成之后,如果一切正常,说明Hadoop已经成功安装并可以正常工作。如果在过程中遇到任何问题,需要根据错误信息进行相应的故障排除。

7. 运行Hadoop示例程序的流程

7.1 了解Hadoop自带的示例程序

Hadoop作为一个强大的大数据处理框架,为了帮助开发者快速上手,它提供了一系列的示例程序。这些示例程序是理解Hadoop工作原理和API使用的好工具。

7.1.1 示例程序的作用和意义

  • 教育目的 :示例程序是学习Hadoop各种功能的起点,它们演示了如何编写MapReduce作业,如何使用HDFS进行文件操作等。
  • 实践检验 :通过运行示例程序,用户可以对安装好的Hadoop环境进行实践检验,确保系统的稳定性和功能的完整性。

7.1.2 选择合适的示例程序进行测试

选择合适示例程序取决于用户想要测试的功能点:

  • MapReduce示例 :可以测试文本处理、排序、统计等常用功能。
  • HDFS操作 :可以测试文件的上传下载、权限设置、目录操作等。
flowchart LR
    A[开始运行示例程序]
    B[选择示例程序]
    C[配置必要的环境]
    D[运行示例程序]
    E[观察并分析结果]
    A --> B
    B --> C
    C --> D
    D --> E

7.2 准备运行示例程序的环境

确保Hadoop服务运行状态良好是执行示例程序的前提。

7.2.1 确保Hadoop服务运行状态良好

  • 服务检查 :使用命令 jps 查看NameNode、DataNode等是否正常运行。
  • 日志检查 :查看Hadoop日志文件,确保没有错误信息。

7.2.2 设置必要的权限和路径配置

  • 环境变量 :确保Hadoop环境变量设置正确,如 HADOOP_HOME PATH
  • 用户权限 :Hadoop服务启动时,可能需要适当的用户权限,如运行Hadoop的用户需要有权限访问HDFS的目录。

7.3 运行并观察示例程序

最终,运行选定的示例程序并观察其运行状态。

7.3.1 运行示例程序的具体命令

以运行Hadoop自带的 pi 示例程序为例:

hadoop jar /path/to/hadoop-examples.jar pi 10 1000

这里 10 1000 分别表示map任务数量和每个任务的样本数。

7.3.2 分析示例程序运行的结果和日志

查看程序运行结果:

Number of Maps  = 10
Samples per Map = 1000

以及估算的Pi值等信息。

除了终端输出的信息外,还应该检查日志文件:

tail -f /path/to/HadoopInstallation/logs/hadoop-log.log

这个日志文件记录了详细的运行信息,可以帮助开发者了解程序的内部运行机制。

综上所述,通过这些步骤和命令,你已经可以顺利地运行Hadoop的示例程序,并通过它们验证你的Hadoop安装是否成功。随着对示例程序的深入理解,你可以开始设计自己的大数据处理任务了。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:在Windows系统中安装和配置Hadoop 2.7.x集群是一项对于大数据分析至关重要的任务。本文将详细介绍如何使用CMD命令行工具在Windows操作系统上安装Hadoop 2.7.x,包括环境变量配置、编辑配置文件、格式化NameNode、启动Hadoop服务以及验证安装和运行示例程序的步骤。通过这些步骤,读者能够成功搭建一个本地的Hadoop测试集群,为未来的大数据处理学习和实践打下基础。


本文还有配套的精品资源,点击获取
menu-r.4af5f7ec.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值