presto安装介绍

大数据之Presto Presto前言一、Presto概念二、Presto架构三、特点3.1 优点3.2 缺点四、注意事项总结 前言 本文简单介绍了大数据中Presto的相关知识,包括Presto的基本概念、架构、特点以及使用Presto的注意事项 一、Presto概念   Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。   注意:虽然Presto可以解析SQL,但它不是一个标准的数据库。不是MySQL、PostgreSQL或者Oracle的代替品,也不能用来处理在线事务(OL 阅读详情
Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。

中文网地址: http://prestodb-china.com/
官方地址: https://prestodb.io/

下载后重命名为presto-cli,并添加执行权限chmod u+x 
./presto --server localhost:8080 --catalog hive --schema default

presto要求jdk的版本为jdk8
1、解压后在presto-server中创建配置文件目录:mkdir etc
2、增加配置文件
config.properties:(coordinator节点)
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=8080
query.max-memory=500GB
query.max-memory-per-node=8GB
task.max-worker-threads=40
distributed-joins-enabled=true
discovery-server.enabled=true
discovery.uri= http://c4node3:8080

config.properties:(worker节点)
coordinator=false
http-server.http.port=8080
query.max-memory=500GB
query.max-memory-per-node=8GB
task.max-worker-threads=40
distributed-joins-enabled=true
discovery.uri= http://c4node3:8080

jvm.config:
-server
-Xmx16G
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+CMSClassUnloadingEnabled
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p
-XX:ReservedCodeCacheSize=150M

node.properties:
node.environment=bbd(不能包含特殊字符)
node.id=c4node3(每个节点ID不同)
node.data-dir=/data1/bbdhadoop/bbdhadoop/presto/data


log.properties:
com.facebook.presto=INFO

3、配置链接器
创建连接器目录:mkdir etc/catalog
catalog/hive.properties
connector.name=hive-cdh5
hive.metastore.uri=thrift://c4namenode2:9083
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml

4、启动
./presto-server-0.139/bin/launcher stop;
后台运行:
./presto-server-0.139/bin/launcher start;
前台运行:(新添加的配置需要前台启动查看是否出错,有些参数版本不同时是不兼容的)
./presto-server-0.139/bin/launcher run
presto单机安装 presto单机安装 第一步:下载安装包 去presto官网下载安装包download,俺用这个版本presto-server-0.218.tar.gz。将下载的安装包上传到linux的/home/presto目录下,并解压,得到presto-server-0.218目录。 第二步 在/home/presto目录下创建prestoData目录 mkdir -p /home/presto/pres... 阅读详情

相关推荐

Presto介绍、原理、安装、使用

支持标准的 ANSI SQL 语法:在大数据环境下提供交互式的 SQL 查询能力,提供统一的 SQL 接口进行查询,允许用户使用熟悉的 SQL 语言进行复杂的数据查询和分析。6.Coordinator从分发的Task之后,就会一直持续不断的从Single Stage中的Task获取计算结果,并将计算结果缓存到Buffer中,直到所有的计算结束。支持跨多数据源的查询:通过 Connector 接口可以支持许多不同数据源,让用户可以在单个查询中使用来自多个数据源的数据,提供一致的视图。

weixin_41367158的博客 492

Presto的介绍、使用和原理架构

Presto是一款Facebook开源的MPP架构的OLAP查询引擎,可针对不同数据源执行大容量数据集的一款分布式SQL执行引擎,数据量支持GB到PB字节,主要用来处理秒级查询的场景。Presto 本身并不存储数据,,但是可以接入多种数据源,并且支持跨数据源的级联查询,而且基于内存运算,速度很快,实时性高。注意:虽然Presto可以解析SQL,但它不是一个标准的数据库。不是MySQL、Oracle的代替品,也不能用来处理在线事务 (OLTP)。适合:PB级海量数据复杂分析,交互式SQL。

迷雾总会解 1万+

大数据Presto(二):Presto安装搭建

注意:--server执行连接Presto的coordinator节点,--catalog指定连接hive,这里写的名字和“/software/presto-0.259/etc/catalog”路径中配置的properties名称保持一致。分别在node3,node4,node5节点上启动Presto Server,启动可以采用前台方式,日志会打印到控制台,也可以采用后台方式启动Presto,日志存放在“/software/presto-0.259/data/var/log”路径下。

Lansonli(蓝深李)的博客 1813

Presto (一) --------- Presto 简介

Presto简介

在森林里麋了鹿 4441

Verilog仿真必备:FSDB dump命令全解析与实战配置指南

本文深入解析了Verilog仿真中FSDB波形记录的核心命令与实战配置技巧。针对大规模SoC验证场景,详细介绍了如何通过$fsdbDumpvars、$fsdbDumpfile等命令实现信号精准捕获、文件体积控制和动态启停,并提供了智能化的分层dump策略,帮助工程师在保证调试信息完整性的同时,大幅提升验证效率并有效管理波形数据。

cnn8visionary的博客 349

别再自己写消息提示了!5分钟用WPF+Material Design打造专业级Snackbar(支持.NET 6)

本文为WPF开发者提供了一份快速集成专业级Snackbar消息提示的实战指南。通过引入MaterialDesignThemes开源库,在.NET 6 WPF项目中,仅需5分钟即可告别传统的MessageBox,实现遵循Material Design规范、动画流畅、支持队列管理的非侵入式Snackbar控件,显著提升应用的用户体验与现代化交互水平。

year5的博客 173

Presto简介

一 Presto 是什么 Presto是一个facebook开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。presto的架构由关系型数据库的架构演化而来。因此Presto集群的硬件必须满足大内存,万兆网络和高计算能力特点。 二 Presto 特点 三 Presto基本概念 1 Presto 服务进程 Presto 集群中一共有两种服务器进程: Coordinator服务进程,Worker服务进程。因此Presto集群是Master-Slave的拓扑结构。 Coordi

qq_42511550的博客 1万+

告别‘耀斑’降落:手把手教你用PX4+激光测距仪实现固定翼精准自动着陆

本文详细介绍了如何利用PX4飞控与激光测距仪实现固定翼无人机的精准自动着陆,解决传统气压计在低空环境下的测量误差问题。通过硬件选型、安装要点、PX4参数配置及实战调校,帮助开发者实现厘米级高度感知,优化降落曲线,提升着陆稳定性与安全性。

weixin_30336061的博客 520

Presto

多数据源,支持SQL,自定义扩展Connector混合计算(同一种数据源的不同库 or表;将多个数据源的数据进行合并)低延迟,高并发,纯内存计算引擎,高性能。

桃李不言下自成蹊 4万+

15 RK3568 RTL8111 PCIE

我这边扩了三个网卡。pcie3.0拆分了1+1lane。需要注意自己的reset引脚修改为自身rtl引脚即可。1、调试pcie 扩展网卡 RTL8111。

qq_39451352的博客 180

PCB仿真软件:Altium Designer_(18).PCB设计中的热管理

在PCB设计中,热管理是一个至关重要的环节。随着电子设备的集成度越来越高,功耗和发热量也随之增加,不合理的热设计可能导致电路板过热,从而影响电路的性能和可靠性。热管理不仅能够提高电路板的使用寿命,还能确保电路在各种环境条件下的稳定工作。本节将详细介绍如何在Altium Designer中进行有效的热管理,包括热分析、热设计和热仿真等关键步骤。

kkchenjj的博客 1987

Presto安装介绍及使用

Presto简介 Presto是一个开源的分布式SQL查询引擎,数据量支持GB到PB字节,主要用来处理秒级查询的场景。 注意:虽然Presto可以解析SQL,但它不是一个标准的数据库。不是Mysql、Oracle的代替品,也不能用来处理在线事务(OLAP)。 Presto架构 Presto由一个Connrdinator和多个Worker组成。 Presto优缺点 优点: Presto基于内存运算,减少了硬盘IO,计算更快。 能够连接多个数据源,跨数据源连表查,从Hive查询大量网站访问记

Poolweet_的博客 1502

读懂 SAP Fiori Administration Catalogs:从管理员入口、权限编排到 Spaces 和 Pages 的落地实践

SAP Fiori 管理员目录的核心价值在于为系统配置提供标准化入口,解决权限与展示分离的问题。随着 SAP_UI 7.55 版本更新,SAP_FLP_ADMIN 角色整合了关键管理工具(如 Launchpad Designer、Content Manager),并通过 Business Catalog 和 Space 的协同作用,确保管理员既能访问配置工具,又能直观查看相关功能入口。项目实施中需注意配置层级(系统级/客户端级)的选择,以及多人协作时的数据同步问题,以提升交付效率。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 196

Presto 安装部署与介绍

Presto 安装部署与介绍

Mogeko1的博客 1511

从零构建Fama-French多因子模型:量化投资系统开发实战

本文详细介绍了如何从零构建Fama-French多因子模型,并将其应用于量化投资系统的开发。首先,文章概述了Fama-French多因子模型的背景、核心原理和架构,解释了其如何通过引入市场风险、规模、价值、盈利和投资等因子来解释股票收益率的变化。接着,文章详细阐述了构建该模型的具体步骤,包括因子的计算、因子暴露的确定以及模型的估计。通过数学模型和公式,文章对模型进行了理论推导,并举例说明了其应用。此外,文章还提供了项目实战的代码案例,从开发环境搭建到源代码实现,逐步指导读者完成量化投资系统的开发。最后,文章

2501_92132293的博客 1227

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Presto-Admin 安装与使用教程

Presto-Admin 安装与使用教程 1. 项目介绍 Presto-Admin 是一个用于安装、配置和管理 Presto 安装的工具。Presto 是一个分布式 SQL 查询引擎,专为大数据环境设计,能够快速处理大规模数据集。Presto-Admin 通过提供一系列命令和功能,简化了 Presto 的部署和管理过程。 2. 项目快速启动 2.1 安装 Presto-Admin 首先,你需要在你...

gitblog_00805的博客 724

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

Presto 详细介绍

1.Presto 简单介绍 1.1 Presto基本概念 Presto是Facebook开源的MPP SQL引擎,旨在填补Hive在速度和灵活性(对接多种数据源)上的不足。相似的SQL on Hadoop竞品还有Impala和Spark SQL等。这里我们介绍下Presto的基本概念。 Presto是一个分布式的查询引擎,本身并不存储数据,但是可以接入多种数据源,并且支持跨数...

程序员学习圈 1万+

精雕软件(JDpaint) 5.5 绿色版

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

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

(一)Presto的集群安装

一、什么是presto Presto是一个facebook开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。presto的架构由关系型数据库的架构演化而来。作为Hive和Pig(Hive和Pig都是通过MapReduce的管道流来完成HDFS数据的查询)的替代者,Presto不仅可以访问HDFS,也可以操作不同的数据源,包括:RDBMS和其他的数据源(例如:Cassandra)。Presto被设计为数据仓库和数据分析产品:数据分析、大规模数据聚集和生成报表。 二、用到的版本

hyj 429

快速学习-Presto安装部署

第2章 Presto安装部署 https://blog.youkuaiyun.com/u012551524/article/details/79013194 2.1 环境需求 Presto的基本需求 Linux or Mac OS X Java 8, 64-bit Python 2.4+ 2.2 连接器 Presto支持插接式连接器提供的数据。各连接器的设计需求会有所不同。 HADOOP / HIVE ...

逍遥云恋 917

Presto安装与使用

目录 一、Presto概述 二、Presto架构 三、Presto优缺点 四、Presto、Impala性能比较 五、安装 5.1Presto Server安装 5.2Presto命令行Client安装 5.3 Presto可视化Client安装 一、Presto概述 Presto是由Facebook开发的,是一个运行在多台服务器上的分布式查询引擎,本身并不存储数据,但是可以接入多种数据源(Hive、Oracle、MySql、Kafka、Redis等),并且支持跨数据源的级联查询。...

Markble 7024

presto 集群安装 hive

Presto 集群安装 Hive 指南 Presto 是一个高性能、分布式 SQL 查询引擎,它允许用户以 SQL 的方式查询各种数据源。Hive 是一个基于 Hadoop 的数据仓库工具,它提供了一种类似于 SQL 的查询语言,称为 HiveQL。将 Presto 与 Hive 结合使用,可以充分利用 Presto 的查...

weixin_37083753的博客 271

presto on redis

Presto on redis  PRESTO的安装和配置 1 安装 1 下载presto包 (1) wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.179/presto-server-0.179.tar.gz 2 上传presto包上传到服务器 将(1)上传至10.118.242.72

cy19871228cy的博客 3247

presto 设置mysql连接_Presto安装及连接mysql

1. 环境要求Mac OS X or LinuxJava 8 Update 151 or higher (8u151+), 64-bit. Both Oracle JDK and OpenJDK are supported.Maven 3.3.9+ (for building)Python 2.4+ (for running with the launcher script)githup:http...

weixin_39889788的博客 1176

Presto的单机版安装与简单使用

Presto是由Facebook开发的一款开源的分布式 SQL 查询引擎 ,数据量支持GB到PB字节,主要用来处理秒级查询的场景。不是一个标准的数据库,不能用来处理在线业务(),但是可以接入多种数据源,解析SQL支持跨数据源的级联查询,而且基于运算,。因为presto全部的数据都是在内存中,限制了在内存中的数据集大小,比如多个大表的join,这些大表是不能完全放进内存的,所以presto不适合用在多个大表的join,这也是presto是取代不了hive的原因。

m0_58419490的博客 1794

Presto安装

Presto官网: Presto | Distributed SQL Query Engine for Big Data (prestodb.io) Presto官方安装文档:Deploying Presto — Presto 0.252 Documentation (prestodb.io) ** 安装Presto: ** 1、下载presto-server-0.252.tar.gz,上传到Linux 服务器并重命名为presto mv presto-server-0.252.tar.gz presto

独孤飞磊 1794
上一篇: 图数据库之neo4j-jdbc的使用
下一篇: Spark源码分析-以wordcount为入口进行spark-submit源码分析
wangweislk
博客等级 码龄14年 40粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值