大数据生态系统 修仙之道 Hadoop Blog

大数据生态系统 修仙之道 Hadoop Blog

@(2019-01-22)[Docs Language:简体中文 & English|Programing Language:Hadoop|Website:www.geekparkhub.com|OpenSource|GeekDeveloper:JEEP-711|Github:github.com/geekparkhub|Gitee:gitee.com/geekparkhub]

? Hadoop Technology 修仙之道 炼精化气 ?

Alt text

  • 极客实验室是极客国际公园旗下为未来而构建的极客社区;
  • 我们正在构建一个活跃的小众社区,汇聚众多优秀开发者与设计师;
  • 关注极具创新精神的前沿技术&分享交流&项目合作机会等互联网行业服务;
  • Open开放 · Creation创想 | OpenSource开放成就梦想 GeekParkHub共建前所未见!
  • Future Vision : Establishment of the Geek Foundation;
  • GeekParkHub GithubHome:https://github.com/geekparkhub
  • GeekParkHub GiteeHome:https://gitee.com/geekparkhub
  • 欢迎贡献各领域开源野生Blog&笔记&文章&片段&分享&创想&OpenSource Project&Code&Code Review
  • ??????????? issues: geekparkhub.github.io/issues ???????????

文章目录

1. 大数据 简介

大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。大数据技术,是指从各种各样类型的数据中,快速获得有价值信息的能力。适用于大数据的技术,包括大规模并行处理(MPP)据库,数据挖掘电网,分布式文件系统,分布式数据库,云计算平台,互联网,和可扩展的存储系统,大数据由巨型数据集组成,这些数据集大小常超出人类在可接受时间下的收集、庋用、管理和处理能力,大数据的大小经常改变,截至2012年,单一数据集的大小从数太字节(TB)十兆亿字节(PB)等. —— MBA智库百科

2. 大数据 概论

大数据 概念

**大数据(BigData)是指无法在一定时间范围**内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产.

大数据主要解决:海量数据的**存储和海量数据的分析计算**问题.

数据存储单位: bit / Byte / KB / MB / GB / TB / PB / EB / ZB / YB / BB / NB / DB

1 Byte = 8bit
1 KB = 1024Byte
1 MB = 1024KB
1 GB = 1024MB
1 TB = 1024GB
1 PB = 1024TB
1 EB = 1024PB
1 ZB = 1024EB
1 YB = 1024ZB
1 BB = 1024YB
1 NB = 1024BB
1 DB = 1024NB

大数据 特点(4V)

1.Volume (大量)

截止目前,人类生产的所有印刷材料的数据量是200PB(1PB=1024TB),而历史上全人类总共说过的话的数量大约是5EB(1EB=1024PB),当前典型个人计算机硬盘的容量为TB量级,而一些大企业的数据量已经近EB量级.

2.Velocity (高速)

这是大数据区分于传统数据挖掘的最显著特征,根据IDC的"数字宇宙"报告,预计2020年,全球数据使用量将达到35.2ZB(1 ZB = 1024EB),在如此海量的数据面前,处理数据的效率就是企业的生命.

3.Variety (多样)

这种类型的多样性也让数据被分为结构化数据和非结构化数据,相对于以往便于存储的以数据库&文本为主的结构化数据,非结构化数据越来越多,包括网络日志,音频,视频,图片,地理位置信息等,这些多类型的数据对数据的处理能力提出了更高要求.

4.Value (低价值密度)

价值密度的高低与数据总量的大小成反比,如何快速对有价值数据"提纯",成为目前大数据背景下待解决的难题.

大数据 应用场景

物流仓储:大数据分析系统助力商家精细化运营,提升销量,节约成本.

零售:分析用户消费习惯,为用户购买商品提供方便,从而提升商品售量,经典故事案例 -《纸尿布+啤酒》.

旅游:深度结合大数据能力与旅游行业需求,共建旅游产业智慧管理,智慧服务,智慧营销的未来.

商品广告推荐:为用户推荐可能喜欢的商品.

保险:海量数据挖掘及风险预测,助力保险行业精准营销,提升精细化定价能力.

金融:多维度体现用户特征,帮助金融机构推荐优质客户,防范欺诈风险.

房产:大数据全面助力房地产行业,打造精准投策与营销,挑选出更合适的地域.

大数据部门业务流程分析

产品人员 数据部门 数据可视化/报 提出需求(统计总用户数,日活跃用户数,回流用户数等) 搭建数据平台,分析数据指标 产品人员 数据部门 数据可视化/报

大数据部门组织结构(重点)

大数据部门组织结构

所在组 所在组工作职责
平台组 Hadoop,Flume,Kafka,Hbase,Spark等框架平台搭建,集群性能监控,集群性能调优
数据仓库组 ETL工程师-数据清洗,Hive工程师-数据分析,数据仓库建模
数据挖掘组 算法工程师 推荐系统工程师 用户画像工程师
数据报表开发组 JAVAEE工程师

3. 探讨Hadoop框架 大数据生态

Hadoop 简介

Apache Hadoop是一款支持数据密集型分布式应用程序并以Apache 2.0许可协议发布的开源软件框架,它支持在商品硬件构建的大型集群上运行的应用程序,Hadoop是根据谷歌公司发表的MapReduce和Google文件系统的论文自行实现而成。所有的Hadoop模块都有一个基本假设,即硬件故障是常见情况,应该由框架自动处理。

Hadoop框架透明地为应用提供可靠性和数据移动,它实现了名为MapReduce的编程范式:应用程序被分割成许多小部分,而每个部分都能在集群中的任意节点上运行或重新运行。此外,Hadoop还提供了分布式文件系统,用以存储所有计算节点的数据,这为整个集群带来了非常高的带宽。MapReduce和分布式文件系统的设计,使得整个框架能够自动处理节点故障,它使应用程序与成千上万的独立计算的计算机和PB级的数据连接起来,现在普遍认为整个Apache Hadoop"平台"包括Hadoop内核、MapReduce、Hadoop分布式文件系统(HDFS)以及一些相关项目,有Apache Hive和Apache HBase等等. —— 维基百科

Hadoop 是什么

Hadoop是由Apache基金会所开发的分布式系统基础架构.

Hadoop主要解决:海量**数据的存储和海量数据的分析计算**问题

广义上来讲,Hadoop通常是指一个更广泛的概念 — Hadoop生态圈

Hadoop 发展历史

1.Hadoop创始人:Doug Cutting

Lucene框架是Doug Cutting开创的开源软件,使用java编程语言开发,实现与Google类似的全文搜索功能,它提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎.

2.2001年年底Lucene成为Apache基金会的一个子项目.

3.对于海量数据的场景,Lucene面对与Google同样的困难,存储数据困难,检索速度慢.

4.学习和模仿Google解决这些问题的办法:(Lucene的升级版) Nutch.

5.可以说Google是Hadoop的思想之源(Google在大数据方面的三篇论文)

GFS —> HDFS
Map-MapReduce —> MR
BigTable —> Hbase

6.2003至2004年,Google公开了部分GFS和MapReduce思想细节,以此为基础Doug Cutting等开发者用了2年业余时间实现了DFS和MapReduce机制,使Nutch性能飙升.

7.2005年Hadoop作为Lucene的子项目,Nutch的一部分正式引入Apache基金会.

8.2006年3月份,Map-Reduce和NDFS(Nutch Distributed File System),分别被纳入称为Hadoop的项目中.

9.Hadoop名字来源于Doug Cutting孩子的玩具大象.

10.Hadoop就此诞生并迅速发展,标志着大数据时代来临.

Hadoop 三大发行版本

Hadoop 三大发行版本 Apache | Cloudera | Hortonworks

Apache Hadoop

Apache版本最最原始(最基础)版本,对于入门学习最佳.

官网地址 : http://hadoop.apache.org/releases.html

下载地址 : https://archive.apache.org/dist/hadoop/common/

Cloudera Hadoop

Cloudera在大型互联网企业中应用场景较多.

官网地址 : https://www.cloudera.com/downloads/cdh/5-10-0.html

下载地址 : http://archive.cloudera.com/cdh5/cdh/5/

2008年成立的Cloudera是最早将Hadoop商用公司,为合作伙伴提供Hadoop的商业解决方案,主要是包括支持,咨询服务,培训.

2009年Hadoop创始人Doug Cutting也加盟了Cloudera公司,Cloudera产品主要为CDH,Cloudera Manager | Cloudera Support.

CDH是Cloudera的Hadoop发行版,完全开源,比Apache Hadoop在兼容性,安全性,稳定性上有所增强.

Cloudera Manager是集群的软件分发及管理监控平台,可以再几个小时内部部署好一个Hadoop集群,并对集群节点及服务
进行实时监控,Cloudera Support即是对Hadoop的技术支持.

Cloudera的标价为每年每个节点4000美元,Cloudera开发并贡献了可实时处理大数据的Impala项目.

Hortonworks Hadoop

Hortonworks文档较好.

官网地址 : https://hortonworks.com/products/data-center/hdp/

下载地址 : https://hortonworks.com/downloads/#data-platform

2011年成立的Hortonworks是雅虎与硅谷风投公司Benchmark Capital合资组建.

公司成立之初就吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,并贡献了80%的Hadoop代码.

雅虎工程副总裁,雅虎Hadoop开发团队负责人Eric Baldeschwieler出任Hortonworks的首席执行官.

Hortonworks主打产品是Hortonworks Data Platform(HDP),也同样是100%开源产品,HDP除常见的项目外还包括Ambari,一款开源的安装和管理系统.

HCatalog 一个元数据管理系统,HCatalog现已集成到Facebook开源的Hive中,Hortonworks的Stinger开创性的极大的优化了Hive项目,Hortonworks为入门提供一个非常好的易于使用的沙盒.

Hortonworks开发了很多增强特性并提交至核心主干,这使得Apache Hadoop能够在包括Window Server和Windowns Azure在内的Microsoft Windows平台上本地运行,定价以集群为基础,每10个节点每年为12500美元.

Hadoop 优势 (4高)

1.高可靠性

Hadoop底层维护多个数据副本,所以即使Haoop某个计算元素或存储出现故障,也不会导致数据的丢失.

2.高扩展性

在集群间分配任务数据,可方便的扩展数以千计的节点.

3.高效性

在MapReduce的思想下,Hadoop是并行工作,以加快任务处理速度.

4.高容错性

能够自动将失败的任务重新分配.

Hadoop 组成(面试重点)

Hadoop1.x与Hadoop2.x 区别

Hadoop1.x组成 : MapReduce(计算+资源调度) | HDFS(数据存储) | Common(辅助工具)

Hadoop2.x组成 : MapReduce(计算) | Yarn(资源调度) | HDFS(数据存储) | Common(辅助工具)

在Hadoop1.x时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,所以耦合性较大.

在Hadoop2.x时代,增加了Yarn,Yarn只负责资源的调度,MapReduce只负责运算.

HDFS 架构概述

HDFS (Hadoop Distributed File System) | 三大组件 nn / dn / 2nn

1.NameNode(nn) : 存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限,),以及每个文件的块列表和块所在的DataNode等.

2.DataNode(dn) : 在本地文件系统存储文件块数据,以及块数据的校验和.

3.Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照.

YARN 架构概述

四大组件 | RM / NM / AM / Container
enter image description here

MapReduce 架构概述

两大阶段 | Map / Reduce

MapReduce将计算过程分为两个阶段:Map 和 Reduce

Map阶段并行处理输入数据 | Reduce阶段对Map结果进行汇总
enter image description here

大数据技术 生态体系

enter image description here

推荐 系统框架图

enter image description here

4. Hadoop 运行环境搭建(开发重点)

虚拟机环境 准备

1.克隆虚拟机

enter image description here

2.修改克隆虚拟机的静态IP

使用root用户登录
vim /etc/udev/rules.d/70-persistent-net.rules

源代码

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{
   address}=="00:0c:29:a3:d8:a7", ATTR{
   type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{
   address}=="00:0c:29:67:b3:77", ATTR{
   type}=="1", KERNEL=="eth*", NAME="eth1"

将NAME="eth1"更改为NAME=“eth0”,并复制00:0c:29:67:b3:77地址

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{
   address}=="00:0c:29:67:b3:77", ATTR{
   type}=="1", KERNEL=="eth*", NAME="eth0"

更改完毕,:wq保存退出

修改网络配置
粘贴上一步地址,修改HWADDR属性
vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=00:0c:29:67:b3:77
TYPE=Ethernet
UUID=b75136b3-4a81-41b5-9ebd-bfc1831d0df7
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static

IPADDR=192.168.177.131
GATEWAY=192.168.177.2
DNS1=192.168.177.2

更改完毕,:wq保存退出

3.修改主机名

vim /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=corehub-004

更改完毕,:wq保存退出

4.关闭防火墙

暂时性关闭防火墙:service iptables stop

5.创建用户

useradd username

6.配置用户具有root权限

vim /etc/sudoers
enter image description here
更改完毕,:wq!保存退出

7.在/opt目录下创建文件夹

1.创建software,module文件夹
software 用于日后存储的程序安装包
module 用于日后存储解析后的程序jar包

sudo mkdir software
sudo mkdir module
[geek-developer@corehub-001 ~]$ cd /opt/
[geek-developer@corehub-001 opt]$ ll
total 8
drwxr-xr-x. 6 root root 4096 Jan 17 23:35 devtool
drwxr-xr-x. 2 root root 4096 Oct  4  2017 rh
[geek-developer@corehub-001 opt]$ sudo mkdir software
[sudo] password for geek-developer: 
[geek-developer@corehub-001 opt]$ sudo mkdir module
[geek-developer@corehub-001 opt]$ ll
total 16
drwxr-xr-x. 6 root root 4096 Jan 17 23:35 devtool
drwxr-xr-x. 2 root root 4096 Jan 24 20:12 module
drwxr-xr-x. 2 root root 4096 Oct  4  2017 rh
drwxr-xr-x. 2 root root 4096 Jan 24 20:11 software
[geek-developer@corehub-001 opt]$ 

2.修改software,module文件夹的所有者

[geek-developer@corehub-001 opt]# chown geek-developer:geek-developer software/ module/
[geek-developer@corehub-001 opt]# ll
total 16
drwxr-xr-x. 6 root           root           4096 Jan 17 23:35 devtool
drwxr-xr-x. 2 geek-developer geek-developer 4096 Jan 24 20:12 module
drwxr-xr-x. 2 root           root           4096 Oct  4  2017 rh
drwxr-xr-x. 2 geek-developer geek-developer 4096 Jan 24 20:11 software
[geek-developer@corehub-001 opt]# 

安装 Hadoop

在安装Hadoop前提是需要先安装JAVA并配置环境变量即可

Apache Hadoop官方地址 : https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/

通过远程工具,将hadoop-2.7.2.tar.gz传输到/op/tsoftware/目录下

将hadoop-2.7.2.tar.gz解压/opt/module/目录下

tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module

将解压完成hadoop-2.7.2重命名为hadoop

[root@corehub-001 software]# cd ..
[root@corehub-001 opt]# cd module/
[root@corehub-001 module]# ll
total 4
drwxr-xr-x. 9 10011 10011 4096 Jan 26  2016 hadoop-2.7.2
[root@corehub-001 module]# mv hadoop-2.7.2 hadoop
[root@corehub-001 module]# ll
total 4
drwxr-xr-x. 9 10011 10011 4096 Jan 26  2016 hadoop
[root@corehub-001 module]# 

配置hadoop环境变量

[root@corehub-001 module]# cd hadoop/
[root@corehub-001 hadoop]# pwd
/opt/module/hadoop
[root@corehub-001 hadoop]#
[root@corehub-001 geek-developer]# vim /etc/profile
##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

完成环境变量,:wq保存退出
source /etc/profile 更新配置文件指令

[root@corehub-001 geek-developer]# source /etc/profile
[root@corehub-001 geek-developer]# hadoop
Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]
  CLASSNAME            run the class named CLASSNAME
 or
  where COMMAND is one of:
  fs                   run a generic filesystem user client
  version              print the version
  jar <jar>            run a jar file
                       note: please use "yarn jar" to launch
                             YARN applications, not this command.
  checknative [-a|-h]  check native hadoop and compression libraries availability
  distcp <srcurl> <desturl> copy file or directories recursively
  archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
  classpath            prints the class path needed to get the
  credential           interact with credential providers
                       Hadoop jar and the required libraries
  daemonlog            get/set the log level for each daemon
  trace                view and modify Hadoop tracing settings

Most commands print help when invoked w/o parameters.
[root@corehub-001 geek-developer]# 

Hadoop 目录结构

bin目录 : Hadoop服务脚本.

etc目录 : Hadoop的配置文件目录,存放Haoop配置文件.

lib目录 : 存放Hadoop本地库,(对数据进行压缩解压功能).

sbin目录 : 存放启动或停止Hadoop相关服务脚本.

share目录 : 存放Hadoop依赖jar包,文档,官方案例.

5. Hadoop 运行模式

Hadoop运行模式包括 : 本地运行 / 伪分布式运行 / 完全分布式运行

?? 本地运行模式 ??

?‍??‍? Grep 官方案例 ?‍??‍?

官方案例地址 : Standalone Operation

By default, Hadoop is configured to run in a non-distributed mode, as a single Java process. This is useful for debugging.

The following example copies the unpacked conf directory to use as input and then finds and displays every match of the given regular expression. Output is written to the given output directory.

$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar s
1.快速开始,在hadoop目录下 创建input文件夹
[geek-developer@corehub-001 ~]$ cd /opt/module/hadoop/
[geek-developer@corehub-001 hadoop]$ ll
total 52
drwxr-xr-x. 2 10011 10011  4096 Jan 26  2016 bin
drwxr-xr-x. 3 10011 10011  4096 Jan 26  2016 etc
drwxr-xr-x. 2 10011 10011  4096 Jan 26  2016 include
drwxr-xr-x. 3 10011 10011  4096 Jan 26  2016 lib
drwxr-xr-x. 2 10011 10011  4096 Jan 26  2016 libexec
-rw-r--r--. 1 10011 10011 15429 Jan 26  2016 LICENSE.txt
-rw-r--r--. 1 10011 10011   101 Jan 26  2016 NOTICE.txt
-rw-r--r--. 1 10011 10011  1366 Jan 26  2016 README.txt
drwxr-xr-x. 2 10011 10011  4096 Jan 26  2016 sbin
drwxr-xr-x. 4 10011 10011  4096 Jan 26  2016 share
[geek-developer@corehub-001 hadoop]$ sudo mkdir input
[geek-developer@corehub-001 hadoop]$ ll
total 56
drwxr-xr-x. 2 10011 10011  4096 Jan 26  2016 bin
drwxr-xr-x. 3 10011 10011  4096 Jan 26  2016 etc
drwxr-xr-x. 2 10011 10011  4096 Jan 26  2016 include
drwxr-xr-x. 2 root  root   4096 Jan 24 22:23 input
drwxr-xr-x. 3 10011 10011  4096 Jan 26  2016 lib
drwxr-xr-x. 2 10011 10011  4096 Jan 26  2016 libexec
-rw-r--r--. 1 10011 10011 15429 Jan 26  2016 LICENSE.txt
-rw-r--r--. 1 10011 10011   101 Jan 26  2016 NOTICE.txt
-rw-r--r--. 1 10011 10011  1366 Jan 26  2016 README.txt
drwxr-xr-x. 2 10011 10011  4096 Jan 26  2016 sbin
drwxr-xr-x. 4 10011 10011  4096 Jan 26  2016 share
[geek-developer@corehub-001 hadoop]$ 
2.在hadoop目录中,将etc文件夹内 以.xml为后缀的配置文件拷贝到input文件夹里
[geek-developer@corehub-001 hadoop]$ sudo cp etc/hadoop/*.xml input/
[geek-developer@corehub-001 hadoop]$ ls input/
capacity-scheduler.xml  hadoop-policy.xml  httpfs-site.xml  kms-site.xml
core-site.xml           hdfs-site.xml      kms-acls.xml     yarn-site.xml
[geek-developer@corehub-001 hadoop]$ 
3.执行share目录下的hadoop-mapreduce-examples-2.7.2.jar包,并指定输入和输出路径,以符合正则表达式并统计个数

dfs[a-z.]+ 以dfs开头,以a到z任意字符以.过滤掉 - - 字符

[root@corehub-001 geek-developer]# cd /opt/module/hadoop/
##########执行share目录下的hadoop-mapreduce-examples-2.7.2.jar包,并指定输入和输出路径#############
[root@corehub-001 hadoop]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input/ output 'dfs[a-z.]+'
19/01/24 22:43:48 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
19/01/24 22:43:48 INFO Configuration.deprecation: session.id is deprecated. Instead, use dfs.metrics.session-id
19/01/24 22:43:48 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=
19/01/24 22:43:50 INFO output.FileOutputCommitter: Saved output of task 'attempt_local1034400674_0001_r_000000_0' to file:/opt/module/hadoop/grep-temp-1632689888/_temporary/0/task_local1034400674_0001_r_000000
19/01/24 22:43:50 INFO mapred.LocalJobRunner: reduce > reduce
19/01/24 22:43:50 INFO mapred.Task: Task 'attempt_local1034400674_0001_r_000000_0' done.
19/01/24 22:43:50 INFO mapred.LocalJobRunner: Finishing task: attempt_local1034400674_0001_r_000000_0
19/01/24 22:43:50 INFO mapred.LocalJobRunner: reduce task executor complete.
19/01/24 22:43:50 INFO mapreduce.Job: Job job_local1034400674_0001 running in uber mode : false
19/01/24 22:43:50 INFO mapreduce.Job:  map 100% reduce 100%
19/01/24 22:43:50 INFO mapreduce.Job: Job job_local1034400674_0001 completed successfully
19/01
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值