hadoop集群重启后数据丢失处理

RAGFlow 系列教程 第三课:后端服务入口与请求生命周期 本文深入解析RAGFlow v0.25.0后端核心机制,重点介绍了Quart框架选型原因和服务启动流程。RAGFlow选择Quart作为Web框架,主要基于其异步能力对LLM调用的支持、Flask生态兼容性以及长响应超时处理优势。文章详细拆解了服务启动的8个关键步骤,从日志初始化到HTTP服务启动,并分析了配置加载、数据库初始化等核心环节。通过源码分析揭示了RAGFlow如何实现动态API注册、双重认证体系等关键技术点,为深入理解该系统的请求处理生命周期提供了基础。 阅读详情

        一般hadoop集群重启后会立即处于安全模式,主节点检查各个从节点数据正常后会自动解除安全模式,是否丢失数据可使用命令 “hadoop fsck 路径"来进行查看,例如:

            hadoop fsck /         查看根目录下所有文件的健康状况,是否有损坏的数据块

        如果重启前你的集群是正常的,没有丢失数据,而重启结束之后检查发现该目录下有大量损坏的块,这种情况下一般都是某个节点没有启动成功,亦或者是cloudera manager搭建的hadoop集群配置文档已修改,博主遇到过以下情况:

        hadoop重启完毕之后一直处于安全模式,检查后所有节点均正常启动,使用hadoop fskc / 命令发现有大量损坏的块,损坏块占集群中块总量的30%,对集群进行检查后发现,所有节点挂载的数据目录均被设置成默认目录,例如:

        主机A有多快磁盘,被挂载在多个目录下/data1/dfs/dn,/data2/dfs/dn/data3/dfs/dn,该三个磁盘被用来保存集群数据

        主机B只有一块磁盘,被挂载在/data1/dfs/dn

        集群重启后所有节点的数据目录均被重置为/data1/dfs/dn,该情况会导致主机A/data2/dfs/dn/,/data3/dfs/dn/目录数据未被集群读取,就会产生数据丢失,重新修改配置文件并重启集群后数据正常读取!

        所以,各位大数据工程师在重启集群的时候尽量慎重,谨防错误操作导致数据丢失!

 

        纯手工敲打,谢谢您的点赞评论!

 

【MuJoCo】第一章 仿真环境的搭建与入门 它通过优化的接触动力学算法,能够高效处理复杂的多体交互,这使其成为从机械臂操控到足式机器人运动,再到大规模强化学习训练的理想选择。特别是与 JAX 集成的 MJX 的推出,将高性能仿真的边界推向了新的高度,使得在单台机器上并行数千个仿真环境成为可能。我们将通过编写您的第一个仿真程序,逐步拆解 MuJoCo 的工作流,让您亲手感受物理引擎的脉动。这种加速能力对于需要海量仿真样本的强化学习算法(如 PPO)是颠覆性的,它将原本需要数小时的训练缩短到几分钟。上的几何形状,用于碰撞检测和可视化。 阅读详情

相关推荐

ROS 2 Humble + Gazebo Fortress 搭建AGV小车仿真环境(保姆级避坑指南)

本文详细介绍了如何使用ROS 2 Humble和Gazebo Fortress搭建AGV小车仿真环境,包括环境准备、URDF模型构建、ROS 2控制集成、传感器配置等关键步骤。特别针对Gazebo Fortress版本差异提供了保姆级避坑指南,帮助开发者快速解决常见问题并优化性能。

weixin_29044157的博客 200

遇到hadoop 集群挂掉情况处理情况分析

早上起来发现我们的spark调度任务挂掉(spark运行报错日志报错是数据块丢失),当时查看hadoop集群节点状态,发现bd-node01节点是Down状态(当时是挂掉了)。但是节点挂掉不应该导致任务运行不了,因为正常情况下hadoop集群数据都是有备份的,至少得是2份,即使bd-node01挂掉,也会在其它节点找bd-node01上数据的备份数据就行读取。于是带着疑问看了下overview页面发现确实是有块丢失。 于是查看hadoop集群相关数据的副本数: hiveods库副...

weixin_42489619的博客 4294

别再让CPU干GPU的活了:CST Studio Suite GPU加速深度调优指南(从驱动版本到任务管理器监控)

本文深入探讨了CST Studio Suite的GPU加速深度调优方法,从NVIDIA驱动版本选择到系统级资源管理,再到实时监控与瓶颈诊断技术。通过科学的驱动优化、GPU资源管理策略和高级调优技巧,显著提升仿真效率,特别适合电磁仿真工程师和硬件加速需求的专业用户。

weixin_28740299的博客 166

【故障】Hadoop Cluster启动后数据节点(DataNode)进程状态丢失

Hadoop Cluster启动后数据节点(DataNode)进程状态丢失   在拥有三个节点的Hadoop集群环境中,其各节点的配置为:CPU Intel(R) Core(TM) i3-3120M CPU@2.50GHz 2.50GHz,内存RAM 6GB,Operation System Redhat Linux 5 x86-64bit. 首先通过命令hadoop dfs na...

Askerain`s Blog 901

RK3588 EVB开发板原理图讲解【六】

该原理图展示了eMMC Flash与主控芯片之间的连接关系,以及相关的电源、信号线路和去耦电容等。

weixin_48721556的博客 1178

Vivado实战:如何用BUFGMUX_CTRL实现FPGA双时钟热切换(附时序约束模板)

本文详细介绍了如何使用Xilinx FPGA中的BUFGMUX_CTRL原语实现双时钟热切换的工业级解决方案。通过分析BUFGMUX_CTRL的核心机制、PCB布局约束和电源噪声抑制方法,提供Vivado实现全流程和时序约束模板,帮助工程师在工业自动化、车载电子等场景中提升系统可靠性。

weixin_29186249的博客 579

Hadoop 检查文件系统命令

最近,在搞CDH的过程中,发现hbase经常出现坏块的问题,cdh的监控界面有时会突然出现,current blocks(此处为外链,请忽略),这个时候,就可以运行hadoop的fsck命令,检查文件系统的健康状况。      su hdfs      hadoop fsck / 然后下面会出现一些信息,在信息的最下面,会出现文件系统的状况信息。 如果出现坏块,想要清除的话,运行  ha

麦田里的守望者 1642

手把手教你用Zemax优化MTF:从‘离焦平衡球差’到高频像差控制的实战技巧

本文详细介绍了如何使用Zemax优化MTF性能,从基础设置到高级技巧的全流程。通过具体案例,讲解了如何利用离焦平衡球差提升中频MTF,以及识别和控制高频像差的方法,帮助光学设计工程师和学生有效提升成像质量。

weixin_30752699的博客 752

检查hdfs块的块——工具fsck(file system check)

hadoop集群运行过程中,上下节点是常有的事情,如果下架节点,hdfs存储的块肯定会受到影响。 如何查看当前的hdfs的块的状态 hadoop1.x时候的命令,hadoop2.x也可使用: hadoop fsck / 在hadoop2.0之后,可以使用新命令: hdfs fsck / 返回结果截图如下: 参数说明: Total size : hdfs集群存储大小,不包括复...

Ganymede的Hadoop世界 6526

labview中DAQ采集多个数据通道(温度传感器)(TTL信号的曲轴位置传感器)总结

文章目录前言一、面对的问题篇二、问题解决篇三、后续工作总结 前言 我研一的项目利用labview软件和NI数据采集卡采集发动机传感器的信号然后进行采集,发动机传感器是有很多种的,所以难以避免的需要采集多个通道的传感器信号。 一、面对的问题篇 前篇已经写道我已经将温度传感器的信号采集出来,也可以将其数据进行信号处理,由电压信号转变为温度值。但是想要采集多个通道的信号,加上TTL信号的曲轴位置传感器,我模仿温度传感器采集的程序另加了一个DAQ助手进行采集。也就是如图所示的程序: 但是这个程序不能正常显

xiaobaiwsc的博客 1万+

FPGA 学习系列(2):Verilog 语法基础

Verilog 由门级建模数据流建模行为建模门级建模(Gate Level Modeling):使用基本逻辑门描述电路,接近硬件物理结构。数据流建模(Data Flow Modeling):使用assign语句进行组合逻辑建模,类似数学方程式。行为建模(Behavioral Modeling):使用always代码块和if-elsecase等控制语句建模,抽象程度较高。Verilog 代码一般由模块(module)组成,每个模块描述一个独立的硬件功能。

Azperk的博客 989

分布式文件系统HDFS及其命令

HDFS的shell操作 引言 1、调用文件系统(FS)shell命令应该使用hadoop fs的形式 2、所有FS的shell命令都使用URI路径作为参数       URI格式为:scheme://authority/path。HDFS的scheme是hdfs;本地文件系统的scheme是file。如果未指定,就会使用配置中指定的默认scheme。 命令讲解 1、hadoop ve

Deniece_X的博客 858

12、控件使用之录入英文、阿拉伯数字删除增加功能及二维码显示

控件使用之录入英文、阿拉伯数字删除增加功能及二维码显示1、用到的控件2、添加控件2.1、添加【文本录入】控件2.1、添加【文本显示】控件2.1、添加【QR 二维码】控件3、保存工程及生成文件4、下载文件 1、用到的控件   需要用的显示控件为【文本显示】控件和【QR二维码】控件,以及触控控件【文本录入】控件。 2、添加控件 2.1、添加【文本录入】控件   【文本录入】控件也叫【ASCI 文本录入】,是用来录入ASCI 字符,打开 DGUS 软件,点击【触控控件】—【文本录入】,用鼠标框选一个区域,即可在右

嵌入式羊圈 627

Hadoop :实践环节–故意造成数据块丢失

使用以下步骤连续杀死3个DataNode: 使用下列命令重启所有节点: $ start-all.sh 等到Hadoop的 “dfsadmin –report”命令显示有4个活跃节点: 把测试文件的新副本file1.new放到HDFS上: $ Hadoop fs -put file1.data file1.new 登录到集群中的3台主机并杀死每台主机上的DataNode进

晨雪无痕 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

windowns下用cygwin运行hadoop程序_亮仔_新浪博客

搞了有一段时间了,其中经历了比较多的艰辛,但是幸好有师姐的帮助,在这里,谢谢师姐对我的帮助,有一些需要注意的东西,在这里记录一下! 1:运行程序特别是需要用mapreduce取habase的数据的时候,记得要把搭建的集群里的hbase-0.90.4.jar(我用的这个版本号)和zookeeper-3。3。2。jar加到hadoop/lib下面,如果还是不行,可以添加到hadoop这个主...

jingquanliang的专栏 106

深度学习工具包 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")

记一次hadoop.tmp.dir配置因重启机器导致无法启动

缘由       线上一直运行的hadopp集群,突然有一天服务器断电重启,集群正常启动,但是spark on  yarn上的任务无法提交,报错一提交任务AM就被kill掉。 解决方案 步骤一       在$HADOOP_HOME/etc/hadoop中的core-site.xml有个 hadoop.tmp.dir 配置的是Hadoop临时目录,比如HDFS的NameNode数据默认都存...

bigdata_player 960

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

hadoop namespaceID err

今早一来,突然发现使用-put命令往HDFS里传数据传不上去了,抱一大堆错误,然后我使用bin/hadoop dfsadmin -report查看系统状态 admin@adw1:/home/admin/joe.wangh/hadoop-0.19.2>bin/hadoop dfsadmin -reportConfigured Capacity: 0 (0 KB)Present Capacity:

卤蛋爱编程 317

重启hadoop 文件丢失

我整理的一些关于【HA】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/xltfov如何重启Hadoop并处理文件丢失问题 在使用Hadoop的时候,有时候会遇到文件丢失的情况。这种情况下,我们需要重启Hadoop服务并尝试恢复丢失的文件。本文旨在指导初学者如何实现这一流程,...

weixin_40251428的博客 267

Hadoop 集群一直处于安全模式,强制退出后出现数据丢失警告。解决方法

也就是说,我们其实已经实际删除了某些数据块,但是记录的元数据因为一些故障导致没有进行同步,就会出现这种情况。通俗来说就是,当前系统中元数据与记录数据块前后不一致,而 Hadoop 默认要求最大的误差阀值为。此时,我们就会发现那些数据块丢失的文件,将这些文件按照路径在 HDFS 中全部删除即可。如果你想要对文件进行恢复,那么则需要请教相关专业人士,使用磁盘修复工具进行处理。等待安全模式,通常情况下在脚本中使用,当集群退出安全模式后,立马执行相关操作。添加完成后,分发同步该文件,重启集群后生效。

JIE的博客 --- moon_coder 2651

Hadoop集群与映射

Hadoop集群是一个由多台计算机组成的分布式系统,用于存储和处理大规模数据集。Hadoop集群主要包括两个核心组件:Hadoop Distributed File System(HDFS)和MapReduce。HDFS提供了高容错性的系统,能够存储海量的数据,而MapReduce则用于大规模数据集的并行处理。首先在Linux虚拟机上要有一个主机,这里我命名为master,通过“右键虚拟机--管理--克隆”的方式创建三个克隆机,修改名字为slave1,slave2,slave3,并修改安装路径。

2302_76827918的博客 2191

基于hadoop的Hbase集群丢失块信息后,清除Hbase数据,格式化hdfs文件系统

可以看到在hdfs文件系统中Hbase的元数据块丢失,这是非常严重的,因本人初学,所以采用格式化的方式来重建。 启动Hbase集群后显示如下错误: 1.清除数据之前先把Hbase和Hadoop及zookeeper(Hbase 依赖于zookeeper)的相关的进程都停掉 stop-hbase.sh(停Hbase进程) stop-all.sh(停Hadoop进程) zkServer.sh s...

lll0101的博客 2533

Hadoop集群配置

快速创建linux虚拟机,并且搭建好Hadoop集群

weixin_52386133的博客 2123

大数据:Hadoop集群节点失效处理机制深度解析

在分布式系统中,节点失效是常态而非例外。Hadoop作为大数据处理的基础设施,其节点失效处理机制直接决定了集群的可用性和数据可靠性。本文将深入剖析Hadoop中节点失效的检测、恢复策略,结合实际工程实践探讨高可用集群的构建要点。

weixin_43290370的博客 727

搭建Hadoop集群

如有错误,敬请斧正! 编写不易!!!

weixin_52867888的博客 575

CentOS7上搭建Hadoop集群(入门级)

场景 Hadoop Apache Hadoop是一款支持数据密集型分布式应用并以Apache 2.0许可协议发布的开源软 件框架,支持在商品硬件构建的大型集群上运行应用程序。Hadoop是根据Google公司发表的 MapReduce和GFS论文自行开发而成的。 Hadoop框架透明地为应用提供可靠性和数据移动,它实现了名为MapReduce的编程范式: 应用程序被切分成许多小部分,而每个部分都能在集群中的任意节点上执行或重新执行。此 外,Hadoop还提供了分布式文件系统,用以存储所有...

BADAO_LIUMANG_QIZHI的博客 4147

开发环境 hadoop&hbase集群环境磁盘丢失处理总结

问题描述:集群192.168.22.178 master1192.168.22.179 master2 192.168.22.40 data1&zk&kafka&es192.168.22.69 data2&zk&kafka&es192.168.22.177 data3&kafka&es 192.168.22....

weixin_34239592的博客 283
下一篇: hadoop集群负载均衡以及配置方法
AA赵师傅
博客等级 码龄9年 89粉丝 124原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值