自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(339)
  • 收藏
  • 关注

原创 膜拜!华为内部都在强推的783页大数据处理系统:Hadoop源代码pdf(3)

第19章Hadoop的部署和启动,系统的安装部署本来就不是小事,对于大规模的集群就更不用说了。第二种是用户的App(包括Shell),用户的App可以存在于集群内的任何节点上,不过那是在独立的JVM上,即使与DataNode同在-一个节点上也互相独立;数据块在HDFS文件系统中的存储是“狡兔三窟”的,一个数据块要分别存储在若干不同的DataNode.上,但是系统并不要求App把–个数据块分别发送给几个DataNode,而只需发送给其中的一个,后面就是DataNode之间的事了。

2024-05-16 12:20:13 410

原创 膜拜!华为内部都在强推的783页大数据处理系统:Hadoop源代码pdf(2)

本书所关注的是,在通常运行于计算机集群的 Hadoop系统上,作业是怎样提交的。如果你有点野心,想对大数据处理系统有比较深入透彻的了解,特别是想有朝一日自己也设计一个这样的系统,甚至自己把它写出来,那么你真应该认真读一下这本文,以及 Hadoop的源代码,看看人家是怎么设计怎么实现的。你将看到,在一个计算机集群上构筑一个大数据处理系统,哪些成分是必不可少的,哪些方面又是可以改进的,它与操作系统的关系怎样,而作为大规模计算机集群的“操作系统”又可以和应该是什么样的。第6章作业的调度与指派,

2024-05-16 12:19:40 348

原创 膜拜!华为内部都在强推的783页大数据处理系统:Hadoop源代码pdf(1)

本书所关注的是,在通常运行于计算机集群的 Hadoop系统上,作业是怎样提交的。第二种是用户的App(包括Shell),用户的App可以存在于集群内的任何节点上,不过那是在独立的JVM上,即使与DataNode同在-一个节点上也互相独立;数据块在HDFS文件系统中的存储是“狡兔三窟”的,一个数据块要分别存储在若干不同的DataNode.上,但是系统并不要求App把–个数据块分别发送给几个DataNode,而只需发送给其中的一个,后面就是DataNode之间的事了。第10章MapReduce框架中的数据流。

2024-05-16 12:19:07 330

原创 腾讯、美团等六家大厂收到offer,浅谈大数据面试经历,附面试题(1)

个人《剑指offer》刷了大概四遍,基本上看到一道题,所有解法都知道,面试上也基本从这里出我遇到现场出的算法题(除了《剑指offer》上的),一般是暴力搜索题,不要上来想DP…讲道理贝壳我是抱着去打小怪的心态去的,并没打算留下的,但是面试体验很好,最后给的薪水超高、福利也爆炸,缺点的话大家懂得,偏养老,看大家选择吧。但面试官很nice,问了问我其他方面,感觉还不错,后面和我讨论了30分钟的职业发展问题,感觉来的很值,大哥我能加你微信吗…Q:Minor GC、Major GC和 Full GC的区别?

2024-05-16 12:18:34 306

原创 最新大数据实习生的年终总结,2024继续与CSDN同行(2),整理了3家面试问题:美团+字节+腾讯

于是去了我现在的公司面试,岗位是大数据开发实习生,我当时准备了很多算法方面的、SQL语句、SQL调优、shell脚本、hadoop、kettle工具,面试的时候就一个自我介绍,要求转Python,公司比较小所以根本用不上Hadoop,主管也没多问Hadoop相关的,说的是如果我有兴趣可以自己从零搭建,他们提供服务器。今年年初的时候,学校就通知需要去实习了,当时我的想法是走数据分析,我脑子也不知道想的啥,认为数据分析,肯定得先有数据才能分析啊,于是跑去学爬虫了,真的被自己蠢哭了。

2024-05-16 08:37:48 379

原创 最新大数据学习第三天(1),不看绝对血亏

插入模式(编辑模式):可以输入文字信息,此时快捷指令失效。末行模式(底行模式):可以保存,退出或者替换文字。:q //退出,如果没有保存,不允许退出。:%s/旧文本/新文本 //文本替换。(2)mysql --user=用户名 --password=密码。//强行退出,不保存退出。:set nu //设置行号。:nohl //取消高亮。:wq //保存并退出。(1)快速格式化快捷键:ctrl +alt + L;:w文件 //另存为。/str:查找指定字符串。

2024-05-16 08:37:15 296

原创 最新大数据处理方案,2024年最新高级大数据开发开发面试解答之线程篇

对每个小文件,统计每个文件中出现的词以及相应的频率(可以采用trie树/hash_map等),并取出出现频率最大的100个词(可以用含100个结点的最大堆),并把100个词及相应的频率存入文件,这样又得到了5000个文件。然后遍历另一个小文件的每个url,看其是否在刚才构建的hash_set中,如果是,那么就是共同的url,存到文件里面就可以了。如果其中的有的文件超过了1M大小,还可以按照类似的方法继续往下分,直到分解得到的小文件的大小都不超过1M。与要查找的数的次最高位比较并接着进入相应的文件再查找。

2024-05-16 08:36:42 221

原创 最新大数据基础处理框架,2024年最新888道大数据开发高级面试题

Samza可大幅简化很多流处理工作,可实现低延迟的性能。流处理系统可以处理几乎无限量的数据,但同一时间只能处理一条(真正的流处理)或很少量(微批处理,Micro-batch Processing)数据,不同记录间只维持最少量的状态。针对同一个数据执行同一个操作会或略其他因素产生相同的结果,此类处理非常适合流处理,因为不同项的状态通常是某些困难、限制,以及某些情况下不需要的结果的结合体。Trident会对Storm的处理能力产生极大影响,会增加延迟,为处理提供状态,使用微批模式代替逐项处理的纯粹流处理模式。

2024-05-16 08:36:09 225

原创 数据结构与算法----栈和队列(Stack & Queue)_小鱼干儿的博客(1)

栈的链式存储结构称为链栈,利用的链表实现,链表中的每个元素由两个部分组成,一部分是存储本身的数据信息,一部分存储其直接后继的内存地址,分别叫做为。,队列也只能按这个顺序进行出队,队列的特点是先进入队列的先出来,后进队的必须等前面的数据出队完成以后才可以出队,所以队列也成为先进先出表(说明:循环队列也是用数组来实现的,只不过通过,一些算法实现了数组空间的复用,而且不用频繁的移动数组中的元素。队列是一种运算受限的线性表,元素的添加操作在表的一端进行,而另一端的删除在另一端进行,允许插入的一端称为。

2024-05-16 00:49:00 697

原创 数据结构——双向链表_使 node类描述双向链表的组成节点,该类应包含如下数据成员 data 于保

在笔者的前两篇文章具体讲解的单链表的实现,即无头单向非循环。但是除此之外,链表还有另外七种类型,本篇文章将主要介绍双向链表的实现,即带头双向链表。相信有的小伙伴一定会问那另外六种需不需要讲解呢,要不要掌握呢?其实,条条大路通罗马,在掌握的单链表和双链表这两大基础链表,其他的链表的实现和运用也是轻而易举,毫不费力。因此,就让我们一起实现双向链表叭!在进行链表功能的实现之前,首先是要对数据类型进行定义和结构体定义。数据类型采取的是整形的形式,与前文的单链表相同。结构体定义这一块则与单链表的定义有所不同。

2024-05-16 00:48:27 973

原创 数据结构——双向链表_使 node类描述双向链表的组成节点,该类应包含如下数据成员 data 于保(4)

在找到这个尾结点之后,剩下的就是链接的问题了。相比于单链表要复杂一点,要。

2024-05-16 00:47:54 688

原创 数据结构——双向链表_使 node类描述双向链表的组成节点,该类应包含如下数据成员 data 于保(3)

在笔者的前两篇文章具体讲解的单链表的实现,即无头单向非循环。但是除此之外,链表还有另外七种类型,本篇文章将主要介绍双向链表的实现,即带头双向链表。相信有的小伙伴一定会问那另外六种需不需要讲解呢,要不要掌握呢?其实,条条大路通罗马,在掌握的单链表和双链表这两大基础链表,其他的链表的实现和运用也是轻而易举,毫不费力。因此,就让我们一起实现双向链表叭!在进行链表功能的实现之前,首先是要对数据类型进行定义和结构体定义。数据类型采取的是整形的形式,与前文的单链表相同。结构体定义这一块则与单链表的定义有所不同。

2024-05-16 00:47:21 875

原创 数学建模之拟合_机器学习ica convergencewarning fastica did not conver(4)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!拟合完成后,我们如何评价拟合的好坏呢?如何判断线性于参数的函数?使用 Matlab 计算拟合优度利用最小二乘法求得 k、b计算拟合优度5 曲线拟合器这里使用曲线

2024-05-15 23:49:27 217

原创 数学建模之拟合_机器学习ica convergencewarning fastica did not conver(3)

如何判断线性于参数的函数?使用 Matlab 计算拟合优度。

2024-05-15 23:48:55 241

原创 数学建模之拟合_机器学习ica convergencewarning fastica did not conver(2)

使用 Matlab 求解最小二乘。

2024-05-15 23:48:22 310

原创 大数据最全大数据:Hadoop文件操作HDFS常用命令(一),大数据开发0基础

8、把HDFS中整个文件夹目录下的文件合并并下载到本地。6、上传整个目录文件夹。把计算机本地的一个文件夹目录全部上传到HDFS。假设本地有一个文件夹myfile,myfile下面有f1.txt,f2.txt,f3.txt。mydir是开发者在HDFS中创建的文件夹目录。涵盖了95%以上大数据知识点,真正体系化!

2024-05-15 16:02:13 385

原创 大数据最全大数据面试题 —— Kafka,腾讯T3亲自教你

为保证producer发送的数据,能可靠的发送到指定的topic,topic的每个partition收到producer发送的数据后,都需要向producer发送ack,如果producer收到ack,就会进行下一轮的发送,否则重新发送数据。leader发生故障之后,会从ISR中选出一个新的leader,之后,为保证多个副本之间的数据一致性,其余的follower会先将各自的log文件高于HW的部分截掉,然后从新的leader同步数据。如果kafka没有数据,消费者可能会陷入循环中,一直返回空数据。

2024-05-15 16:01:41 273

原创 大数据最全大数据面试一锅炖(1),2024年最新大数据开发面试回忆录

客户端向zookeeper请求读文件,zookeeper查询元数据信息,根据namespace,表名,及列族找到文件所在的region,根据region找到对应regionserver,客户端请求regionserver读取region上的文件,客户端向nn申请读文件,namenode查询元数据信息,就近原则返回dn节点,dn开始传输数据,以packet为单位,客户端接收到数据,本地缓存,最后写入目标文件。先从memorystore读,再读blockcache。请求namenode上传第二个block块。

2024-05-15 16:01:08 341

原创 大数据最全大数据面试(3),最新大数据开发高级面试题汇总

内存计算:mapreduce在编程模型上,只有简单map和reduce,而且map阶段的所以数据都要写入到磁盘,导致磁盘io开销很大,速度也很慢,而spark是完全基于内存的计算框架,只有当内存溢出的时候,才会写入到磁盘,这减少了磁盘读写操作,提高了计算效率。在早期spark还没有出现的时候,是没人觉得mapreduce慢的,直到spark的出现,让众多大数据开发人员眼前一亮,经过统计,某些情况下,spark的处理效率要比mapreduce快100倍。所以在内存有限的情况下,不推荐使用。

2024-05-15 16:00:35 311

原创 大数据最全Kafka基础知识(2),腾讯后台开发

除此之外,Kafka 还有一些常见的使用场景,包括数据集成、监控指标、日志聚合、流处理和发布-订阅消息传递等。总的来说,Kafka 是一个强大的分布式事件流处理平台,适用于处理大规模数据流,并在各种行业和场景中得到广泛应用。

2024-05-15 13:15:44 386

原创 大数据最全Kafka基础知识(1),2024年最新大数据开发开发者出路在哪

Kafka 是一个分布式流处理平台,用于收集、处理、存储和集成大规模数据。它具有高吞吐量、容错性和可伸缩性等特点,被广泛应用于数据集成、流处理、日志聚合等场景。事件(event):事件是由软件或应用程序识别或记录的任何类型的操作、事件或更改。例如,支付、网站点击或温度读数等。主题(topic):主题是 Kafka 中最基本的组织单元,类似于关系型数据库中的表。它是一种逻辑上的数据分类,用于存储相同类型的事件流。

2024-05-15 13:15:11 262

原创 大数据最全Kafka与数据入库架构知识_kafka数据如何入库(2),最新“美团+字节+腾讯”三面问题

在Kafka Consumer的实现中,心跳发送采用了轮询的方式,即只有当执行poll操作时,才可能会发送心跳。而大部分的时间,线程都在执行消息消费操作,因此并不会被心跳操作强制中断。当消费的处理逻辑堵塞是,心跳发送也会被堵塞,无法在规定的session.timeout,ms时间内发出,Broker就会认为消费者已经挂了,从而触发Rebalance;在Kafka客户端的设计中,消费消息(即poll操作)和发送心跳是在同一个线程中进行的,但这并不意味着心跳会强制中断消息消费操作。Python共享队列。

2024-05-15 13:14:39 212

原创 大数据最全JVM-通过MAT工具对dump文件进行分析_mat分析dump文件,2024年最新你头秃都没想到还能这样吧

Dominator_Tree汇总了堆内存空间中占比最大的对象, 按照空间大小排序, 我们可以通点击左边的箭头符号查看当前对象的引用状况, 最右侧为当前对象所占空间比例。OQL是Object Query Language的简写,即对象查询语言, 语法与SQL类似, 点击下方的红色感叹号开始执行。线程视图, 汇总了Dump文件中所有线程的信息, 按照线程所占用的空间进行排序。Dump文件信息, 使用饼状图的方式来展示内存占用的信息。本文内容到此结束了,

2024-05-15 13:14:06 351

原创 【零基础入门学习Python---Python的五大数据类型之字典类型】_字典中的键必须是唯一的,必须是不可变数据类型如字符串、数字或列表。

print(dict1.values()) # 输出 dict_values([‘Tom’, 18, ‘male’])print(dict1.items()) # 输出 dict_items([(‘name’, ‘Tom’), (‘age’, 18), (‘gender’, ‘male’)])print(value) # 输出 18print(dict1) # 输出 {‘name’: ‘Tom’, ‘gender’: ‘male’}

2024-05-15 04:39:40 582

原创 【错误记录】Java AWT 图形界面编程问题 ( 组件按照布局要求设置后无法显示等各种问题 )_解决java面板组件延迟更新显示

每个独立的功能都封装在一个单独的 Frame 窗口中 , 如 配置窗口 , 操作窗口 , 日志窗口等 , 各个窗口之间跳转时 , 需要创建并显示 Frame 实例 , 这样导致屏幕闪烁;推荐方案 : 只创建一个 Frame 窗口 , 不同的功能封装成不同的 Panel , 切换功能时 , 只更换 Panel 容器 , 这样就避免了 Frame 窗口的创建和显示。取消布局 , 所有的组件和容器的显示位置和显示大小 , 全部都手动控制 , 这样可以随心所意设置界面的布局样式;

2024-05-15 04:39:04 891

原创 【错误记录】Java AWT 图形界面编程问题 ( 组件按照布局要求设置后无法显示等各种问题 )_解决java面板组件延迟更新显示(1)

只要组件发生了改动 , 就调用一次 Frame#setVisibility(true) 方法 , 多调用几次反正又不报错;组件在设置前窗口已经显示 , 那么在设置了新组件之后 , 建议再次调用 Frame#setVisibility(true) 再次显示一次窗口;

2024-05-15 04:38:28 666

原创 【通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase

Hive的底层是基于Hadoop的MapReduce计算框架实现的,而Hadoop的计算模型是基于分布式存储和计算的,它将数据分割成多个块,每个块由一些计算机进行计算,最终合并结果。总之,通过Hive清洗、处理和计算原始数据,并将结果存储到HBase中,可以有效地处理大规模数据,并且支持高并发的查询操作。Hive 是一个基于 Hadoop 的数据仓库工具,可以将结构化数据映射到 Hadoop 的分布式存储上,并提供类 SQL 的查询语言 HiveQL,方便用户进行数据处理和分析。

2024-05-15 04:37:52 883

原创 Ribbon负载均衡的深度分析和使用_ribbon eager-load enabled true

跟进上面的getServer方法,继续跟踪源码在BaseLoadBalancer类下找到chooseServer方法。在BaseLoadBalancer.class的类下,利用IRule实现负载均衡的策略。接着上一篇文章的来,运用负载均衡的注解 @LoadBalanced进行管理。(ClientHttpRequestInterceptor)并重写方法。跟进上面的rule,rule,规则,即负载均衡的规则,有以下几种。找到Eureka服务列表并根据负载均衡算法选取一个服务。

2024-05-14 19:58:00 593

原创 Ribbon负载均衡的深度分析和使用_ribbon eager-load enabled true(1)

Bean!!!**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!****由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新****[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**了95%以上大数据知识点,真正体系化!**

2024-05-14 19:57:24 778

原创 Redis数据库 ---- 五种数据类型常用命令汇总_redis 使用哪个库命令

同时设置多个键值对同时获取多个键值对同时设置多个数据库中不存在的键值对,如果其中一个键存在,则所有的内容都不会被创建成功strlen key获取字符串的长度遍历输出获取第一个字符第3个字符用新的值覆盖旧值设置值得同时设置过期时间,单位为秒获取旧得值填充新的值。

2024-05-14 19:56:46 759

原创 PyTorch深度学习实战 基于多层感知机模型和随机森林模型的某地房价预测_使用感知器实现房价预测(3)

简介: 在现实生活中,除了分类问题外,也存在很多需要预测出具体值的回归问题,例如年龄预测、房价预测、股价预测等。相比分类问题而言,回归问题输出类型为一个连续值,如下表所示为两者的区别。在本文中,将完成房价预测这一回归问题。■ 分类问题与回归问题区别对于一个回归问题,从简单到复杂,可以采取的模型有多层感知机、SVR、回归森林算法等,下面将介绍如何使用这些算法完成这一任务。

2024-05-14 19:17:33 853

原创 PyTorch深度学习实战 基于多层感知机模型和随机森林模型的某地房价预测_使用感知器实现房价预测(2)

以上三项指标的值越小,则表示在测试集上预测的结果与真实结果之间的偏差越小,模型拟合效果越好。如代码清单4所示,在主函数中依次调用上述函数,完成导入数据集、训练、预测的全过程。代码清单4 构建main函数最终可得输出如下图1所示。图1 MLP模型预测效果改变实验中的超参数,例如隐藏层的神经元个数,可以得到不同的模型以及这些模型在测试集上的得分。如表2所示,当神经元个数为10时,三项指标均获得了最小值,因此可以固定神经元个数为10,再调整其他参数,例如激活函数、优化方法等。

2024-05-14 19:16:57 1018

原创 PyTorch深度学习实战 基于多层感知机模型和随机森林模型的某地房价预测_使用感知器实现房价预测(1)

【代码】PyTorch深度学习实战 基于多层感知机模型和随机森林模型的某地房价预测_使用感知器实现房价预测(1)

2024-05-14 19:16:21 711

原创 PyTorch 学习笔记 transforms的二十二个方法(transforms用法非常详细)_pytorch transform

功能:将tensor 或者 ndarray的数据转换为 PIL Image 类型数据 参数: mode- 为None时,为1通道, mode=3通道默认转换为RGB,4通道默认转换为RGBA。功能:将图片转换为灰度图 参数: num_output_channels- (int) ,当为1时,正常的灰度图,当为3时, 3 channel with r == g == b。功能:依概率p将图片转换为灰度图,若通道数为3,则3 channel with r == g == b。图像保持中心不变的随机仿射变换。

2024-05-14 19:15:45 592

原创 2024年最新【Rust指南】面向对象的实现_csdn rust(1),2024年最新15个经典面试问题及回答思路

Rust 避免将struct或enum称为对象,因为它们与impl块是分开的。trait对象有些类似于其它语言中的对象:它们某种程度上组合了数据与行为trait 对象与传统对象不同的地方:无法为 trait对象添加数据trait对象被专门用于抽象某些共有行为,它没其它语言中的对象那么通用。

2024-05-14 10:39:36 416

原创 2024年最新【Redis高手修炼之路】②Redis的五大数据类型,2024年最新大数据开发编程基础

127.0.0.1:6379> lrange list 0 -1 # 相当于lrange list 0 5 ,-1表示末尾。127.0.0.1:6379> smove myset1 newset a #将a从集合myset1移动到newset。127.0.0.1:6379> sismember myset1 c #查询集合中是否存在c。127.0.0.1:6379> spop myset1 2 # 随机移除2个成员。127.0.0.1:6379> srem myset1 f #将集合中的f移除。

2024-05-14 10:39:00 316

原创 2024年最新【Redis五大数据类型的应用场景】,2024年您应该知道的技术之一

sismember key value 检查用户是否点过赞实现微博微信关注模型SINTER 交集 取共同的元素 可以实现商品筛选面包屑SUNION 并集 取所有的元素SDIFF 差集 以第一个集合为基准减去后面所有集合的并集,最后看第一个集合还剩下的元素共同关注的人:交集我可能认识的人:进到王五的主页,拿王五的集合和自己的集合对比,取差集我关注的人也关注他:取出自己关注人的集合的交集。

2024-05-14 10:38:24 302

原创 2024年最新【PHP】极速分销裂变,疯狂砍价活动_php裂变注册(2),2024年最新腾讯&字节&爱奇艺&网易&华为实习面试汇总

跳转到砍价活动的页面,可以看到这里有砍价活动和砍价记录砍价记录可以查询发起的用户、砍价的商品、帮砍的次数、当前价、砍价状态、发起时间等操作点击砍价活动,点击【新增砍价活动】跳转到新增砍价活动页面,填写活动名称、活动时间、活动描述(这里可以不写)选择砍价的商品(这里最多可以添加25件商品),设置砍价价格,注意这里首刀价格与低价价格不能为零设置购买方式、砍价有效期、帮砍人数、每刀金额、自己砍价、每人发起次数、每单限制等活动规则,点击保存,活动就创建成功了。

2024-05-14 10:37:46 386

原创 2024年大数据最新机器学习算法(2)—— 线性回归算法,2024年最新大数据开发自学资料

数据集介绍(1)线性回归:正规方程:是否计算偏置:回归系数(y=kx+b中的 k):偏置(y=kx+b中的 b)回归模型评估'''获取数据集''''''划分数据集''''''特征工程:数据标准化''''''机器学习:线性回归(正规方程)''''''模型评估'''print("预测值为:", y_predict)print("系数值为:", estimator.coef_)print("偏置值为:", estimator.intercept_)

2024-05-14 02:00:08 688

原创 2024年大数据最新机器学习算法(2)—— 线性回归算法(3),2024大数据开发研发必问高级面试题

数据集介绍(1)线性回归:正规方程:是否计算偏置:回归系数(y=kx+b中的 k):偏置(y=kx+b中的 b)回归模型评估'''获取数据集''''''划分数据集''''''特征工程:数据标准化''''''机器学习:线性回归(正规方程)''''''模型评估'''print("预测值为:", y_predict)print("系数值为:", estimator.coef_)print("偏置值为:", estimator.intercept_)

2024-05-14 01:59:32 540

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除