HDFS 相关

hdfs实验相关操作 (一)通过shell命令访问HDFS 【实验原理】 HDFS是hadoop平台的核心组成之一。熟悉使用hadoop平台需要熟练访问HDFS。HDFS的访问方式有多种。可通过web访问,也可通过shell方式或者API方式访问。基本操作有对文件的读、写、追加、删除等。新建文件夹、删除文件夹等。还可显示文件及文件夹的属性。 【实验环境】 操作系统:Linux  Hadoop版本:2.6.5或以上... 阅读详情

HDFS

  • 什么是HDFS

HDFS是Hadoop中的分布式文件系统,用于存储超大数据文件,为Hadoop提供基础存储服务

  • HDFS有什么特点
  1. HDFS可存储超大文件
  2. 一次写入,多次读取
    一个文件经过创建,写入和关闭之后就不需要改变,这个假设简化了数据一致性的问题,提高了数据访问的吞吐量
  3. 物理机设备硬件要求低
    HDFS设计中充分考虑了数据的可靠性、安全性和高可用性
  • HDFS的是否有块的概念?这样设计有什么优点

HDFS有Block的概念,其大小Hadoop1.0默认为64M(Hadoop2.0 为128M),相比于磁盘的文件系统大很多;设计的如此之大是为了
1.最小化寻址开销,因为大的块可以减少寻道时间
2.减少管理块的数据开销,因为每个Block在namenode上都有记录

  • 为什么说HDFS可以存储超大的文件

HDFS的文件可以大于任何一个磁盘的容量,因为文件的所有块并不需要存储在一个磁盘上,因此可以通过集群中的任意磁盘进行存储,正式因为这种分布式的逻辑使得HDFS存储的数据可以达到G、T、P等级别

  • 哪些场景不适合用HDFS

1.低延迟,实时查询
2.大量小文件,由于每个文件都会产生各自的Metadata元数据,而Hadoop通过namenode存储这些数据,若小文件过多,会导致Namenode存储出现瓶颈
3.多用户更新
4.结构化数据
5.数据量并不大

HDFS相关面试问题整理 1. HDFS的写流程 a) hdfs客户端向namenode发送rpc请求. b) namenode检查文件是否已经存在, 创建者是否有权进行操作, 成功则会为文件创建记录, 反之客户端抛出异常. c) 客户端将文件切分成多个packets, 并在内部以数据队列形式管理packets. 然后客户端向namenode申请blocks, 通过选择合适的datanode列表来存放副本. d) 以pi... 阅读详情

相关推荐

Hadoop HDFS的一些相关代码code

类似于Google的GFS,Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来

GarfieldEr007的专栏 1965

HDFS-FSDirectory类

我们需要先了解与FSDirectory类相关的比较重要的类:INodesInPath INodesInPath有两个重要的数据结构,分别是:INode[] inodes byte[][] path 我们可以从FSDirectory.resolvePath(FSPermissionChecker pc, String src, boolean resolveLink)观察 INodesInPath中这两个数据结构分别代表什么。该方法

qq_41634872的博客 434

Synopsys工具filter命令:从数据筛选到高效IC设计的实战指南

在数字集成电路设计流程中,数据筛选与查询是工程师处理海量网表、时序报告和设计约束的核心需求。其原理在于通过声明式查询语言,直接对设计对象(如单元、网络、路径)的属性进行逻辑判断与模式匹配,从而精准定位目标。这种技术价值在于将工程师从繁琐的过程式脚本循环中解放出来,大幅提升代码可读性与运行效率,直接调用工具内置的高性能查询引擎。在实际应用场景中,它广泛用于物理与时序联合分析、层次化模块操作、动态约束生成以及自动化报告生成。本文聚焦于Synopsys工具链中filter命令的高阶用法,深入解析其表达式语法、正则

weixin_28007513的博客 577

hadoop Java接口 文件操作类

前几天看到篇文章,是用java的API操作HDFS的文件系统。那篇文章是单独介绍,为了以后方便使用,我写成了一个类方便使用。文件操作类:比较简单,大家也可以自己完善。import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.BlockLocation;

jackydai987的专栏 7603

一文读懂GPU通信互联技术:GPUDirect、NVLink与RDMA

GPUDirect是NVIDIA开发的一项技术,旨在实现GPU与其他设备(如网络接口卡NIC和存储设备)之间的直接通信和数据传输,而无需CPU的参与。传统上,数据在GPU和另一个设备之间传输时,必须通过CPU,这导致潜在的性能瓶颈和延迟增加。GPUDirect技术则通过绕过CPU,直接访问和传输数据,显著提高系统性能。NVLink是NVIDIA开发的一种高速、高带宽的互连技术,用于连接多个GPU之间或GPU与其他设备(如CPU、内存等)之间的通信。

异构算力老群群(在读985计算机博士生)的技术博客 7770

异常数据处理——3σ原则、箱线图

异常数据处理——3σ原则、箱线图 用不包括异常值的剩余数据的均值替换、删除DataFrame中某列有异常值的整行等方法

杨老师的小跟班(*∩_∩*) 9032

hdfs中块池与命名空间相关类的对应关系

datanode如何与namenode进行通信,在datanode端一个BPServiceActor对应一个namenode,它 持有一个bpNameNode,实际上就是rpc的一个proxy,与namenode进行通信,一个HDFS集群可以定义多 个命名空间,每一个命名空间在Datanode上都有一个对应的块池存储这个命名空间的数据块,这个块池 是由一个BPOfferService实例管理的。由于一个命名空间可以定义多个NameNode,所以BPOfferService类 需要与多个Namenode通信并

qq_41634872的博客 708

触摸屏蓝牙控制

使用杰理芯片通过蓝牙实现触摸屏功能,需要结合触摸屏数据采集、蓝牙数据传输以及移动端应用的实现。

m0_46145044的博客 1109

【HDFS篇】HDFS相关概念总结

简介: 存储模型为:字节, 以文件切割成块, 单一文件大小一致,文件与文件间可以不一致。 其可以设置副本数,副本数不可超过节点数量。 只支持一次写入多次读取,可追加数据。 架构模型: NameNode节点保存文件的元数据:单节点 DataNode节点保存文件Block数据:多节点 DataNode与NameNode保持心跳,提交Block列表。 HdfsClient与NameN

chenshi_2753的博客 571

ComfyUI节点流实战:用Wan2.1制作电商短视频全流程(附人物/商品模板)

本文提供了一份详尽的ComfyUI实战教程,指导用户如何利用通义万相Wan2.1图生视频模型,高效制作适用于抖音等平台的电商短视频。内容涵盖从环境部署、核心工作流搭建,到针对服装、3C数码等品类的高级提示词模板与参数调优,旨在帮助电商从业者快速生成高质量、高保真商品展示视频,显著提升内容生产效率。

potato的博客 1279

SpringBoot 整合Jasypt 实现配置文件加密读取操作详解

SpringBoot 整合Jasypt 实现配置文件加密读取操作详解

congge 4099

HDFS相关知识

HDFS(hadoop distribute file system)是一个文件系统,用于存储文件,通过目标书来定位文件;其次,他是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。HDFS使用场景:适合一次写入,多次读出的场景,且不支持文件的修改。适合用来做数据分析。

2301_80169572的博客 1596

基于STM32XX的LCD液晶显示屏(HS280S010B、驱动芯片:ST7789V)驱动C程序设计

/ 16位/pixel (RGB565)#define LCD_WIDTH 240 // 屏幕宽度。#define LCD_HEIGHT 280 // 屏幕高度。LCD_ROTATION_180, // 180度旋转。LCD_ROTATION_270 // 270度旋转。LCD_ROTATION_90, // 90度旋转。LCD_ROTATION_0 = 0, // 0度旋转。

myron6688的博客 369

HDFS的相关面试题总结

1、hadoop与云计算之间的关系?解析:云计算由位于网络上的一组服务器把其计算、存储、数据等资源以服务的形式提供给请求者以完成信息处理任务的方法和过程。针对海量文本数据处理,为实现快速文本处理响应,缩短海量数据为辅助决策提供服务的时间,基于Hadoop云计算平台,建立HDFS分布式文件系统存储海量文本数据集,通过文本词频利用MapReduce原理建立分布式索引,以分布式数据库HBase存储关键词索

JimGray的博客 2802

Unity中语法糖带来的GC问题 ——那些看起来优雅、实际上在背后偷偷生垃圾的代码

*语法糖(Syntactic Sugar)**指的是编程语言中为了让代码更简洁、易读而提供的简便写法。比如C#中的foreachlambda表达式LINQ自动属性等。语法糖本身不是坏事,但在Unity等对GC敏感的环境下,要警惕语法糖带来的隐式内存分配。合理使用语法糖,关键场合用更“丑陋”但高效的写法,才能保证游戏流畅运行。下面我将更深入地分析Unity中语法糖导致GC的原理、具体场景、检测与优化技巧,并补充一些容易忽视的细节。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 517

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

HDFS相关的面试题

评估HDFS的数据一致性和可靠性可以通过以下指标和方法:数据块的丢失率和恢复时间,统计在一定时间内数据块的丢失数量和恢复所需的时间;同时,优化数据的存储格式和分区策略,使用高效的特征工程和数据预处理方法,也可以提高数据挖掘和机器学习的效率。在数据使用阶段,监控数据的访问频率和使用情况,优化数据的存储和访问性能;- 在多存储系统环境下,进行统一的数据管理和访问可以通过以下技术和工具:使用数据虚拟化技术,如Apache Drill、Kinetica等,提供统一的数据访问接口,屏蔽底层存储系统的差异;

坚持写博客,大家的关注是我前进的动力! 886

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

HDFS相关源码剖析

DFSClient | Namenode | Datanode 源码分析顺序图: DFSClient |-------ClientProtocol |-------DFSInputStream |-------LocatedBlocks |-------BlockReader |-------DFSInputStream ...

laughing1997的博客 402

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

HDFS相关概念

第二名称结点是HDFS架构中的一个组成部分,它是用来保存名称节点中对HDFS 元数据信息的备份,并减少名称节点重启的时间。(1)数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并且向名称节点定期发送自己所存储的块的列表。(1)在HDFS中,名称节点(NameNode)负责管理分布式文件系统的命名空间(Namespace),保存了两个核心的数据结构,即FsImage和EditLog。2.HDFS主要功能组件。

qq_58242165的博客 664

HDFS理论相关

随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。HDFS(Hadoop Distributed File System)是一个文件系统,用于存储文件,通过目标树来定位文件;其次,他是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。

Yuuuuuuhs的博客 2173

Hadoop、HDFS 相关面试题

Hadoop 是一个开源的分布式存储和计算框架,最初由 Apache 软件基金会开发。它允许大规模数据处理和存储,具有高度可靠性和可扩展性。分布式文件系统HDFS—— 用于数据存储计算框架YARN—— 用于资源管理和作业调度HDFS 是 Hadoop 生态系统的核心组件之一,用于存储大规模数据,并提供高容错性和高吞吐量的分布式文件系统。HDFS 优点高吞吐量: HDFS 针对大文件进行了优化,能够提供较高的数据读写吞吐量。

JIE的博客 --- moon_coder 1415

[HDFS 相关Shell命令]

【代码】[HDFS 相关Shell命令]

汤圆的博客 520

列出hdfs相关的所有命令

【代码】列出hdfs相关的所有命令。

weixin_43346403的博客 232

HDFS设计思想和相关概念_hdfs块的设计思想

流式数据,特点就是,像流水一样,不是一次过来而是一点一点“流”过来,而处理流式数据也是一点一点处理。HDFS的设计要求是:能够高速率、大批量的处理数据,更多地响应"一次写入、多次读取"这样的任务。在HDFS上一个数据集,会被复制分发到不同的存储节点中。而各式各样的分析任务多数情况下,都会涉及数据集中的大部分数据。为了提高数据的吞吐量,Hadoop放宽了POSIX的约束,使用流式访问来进行高效的分析工作d、简化一致性模型HDFS应用需要一个“一次写入多次读取”的文件访问模型。

2401_89284333的博客 1053

大数据HDFS相关知识点

HDFS相关知识点 Namenode与Datanode的多目录配置 服务器间的数据拷贝 集群间的数据拷贝 小文件归档 解决办法 案例 HDFS回收站机制 快照管理 HDFS的写过程 网络拓扑与节点距离的计算 HDFS读过程 总结 Namenode与Datanode的多目录配置 Namenode相同 Datanode不同 服务器间的数据拷贝 #1.推 将文件推到指定主机 scp -r hello.txt root@hadoop2:/tmp #2.拉 远程主机拷贝到本机 scp -r root@hado

weixin_46584302的博客 303

hdfs相关问题

1.我有一万个元素(比如数字或单词)需要存储? 如果查找某一个元素,最简单的遍历方式复杂的是多少? 如果我期望复杂度是O(4)呢? 2.有一个非常大的文本文件,里面有很多很多的行,只有两行一样,它们出现在未知的位置,需要查找到它们。 3.2000台真的比一台速度快吗? 如果考虑分发上传文件的时间呢? 如果考虑每天都有1T数据的产生呢? 如果增量了一年,最后一天计算数据呢? 4.分布式文件系统那么多,为什么hadoop项目中还要开发一个hdfs文件系统? 5.hdfs的存储模型。 6.hdfs的架构设计。 7

293

hbase与hdfs相关部分命令

hbase与hdfs相关部分命令 查询hbase表数据量 ./hbase org.apache.hadoop.hbase.mapreduce.RowCounter '表名' 清理hbase表 #hbase shell > disable 'table' > drop 'table' 查询hbase数据 #hbase shell > scan "表名",FILTER=>"ValueFilter(=,'substring:***')" > scan "表名",FIL

m0_37810784的博客 263
上一篇: Hadoop2.7.7集群搭建安装
下一篇: CentOS7 安装 MariaDB
IBeanCN
博客等级 码龄10年 9粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值