国内外的Hadoop应用现状

国内外的Hadoop应用现状,第1张

文 | 翟周伟

本文节选自《Hadoop核心技术》一书。

Hadoop是一个开源的高效云计算基础架构平台,其不仅仅在云计算领域用途广泛,还可以支撑搜索引擎服务,作为搜索引擎底层的基础架构系统,同时在海量数据处理、数据挖掘、机器学习、科学计算等领域都越来越受到青睐。本文将讲述国内外的hadoop应用现状。

国外Hadoop的应用现状

1.Yahoo

Yahoo是Hadoop的最大支持者,截至2012年,Yahoo的Hadoop机器总节点数目超过42?000个,有超过10万的核心CPU在运行Hadoop。最大的一个单Master节点集群有4500个节点(每个节点双路4核心CPUboxesw,4×1TB磁盘,16GBRAM)。总的集群存储容量大于350PB,每月提交的作业数目超过1000万个,在Pig中超过60%的Hadoop作业是使用Pig编写提交的。

Yahoo的Hadoop应用主要包括以下几个方面:

支持广告系统

用户行为分析

支持Web搜索

反垃圾邮件系统

会员反滥用

内容敏捷

个性化推荐

同时Pig研究并测试支持超大规模节点集群的Hadoop系统。

2.Facebook

Facebook使用Hadoop存储内部日志与多维数据,并以此作为报告、分析和机器学习的数据源。目前Hadoop集群的机器节点超过1400台,共计11?200个核心CPU,超过15PB原始存储容量,每个商用机器节点配置了8核CPU,12TB数据存储,主要使用StreamingAPI和JavaAPI编程接口。Facebook同时在Hadoop基础上建立了一个名为Hive的高级数据仓库框架,Hive已经正式成为基于Hadoop的Apache一级项目。此外,还开发了HDFS上的FUSE实现。

3.A9.com

A9.com为Amazon使用Hadoop构建了商品搜索索引,主要使用StreamingAPI以及C++、Perl和Python工具,同时使用Java和StreamingAPI分析处理每日数以百万计的会话。A9.com为Amazon构建的索引服务运行在100节点左右的Hadoop集群上。

4.Adobe

Adobe主要使用Hadoop及HBase,同于支撑社会服务计算,以及结构化的数据存储和处理。大约有超过30个节点的Hadoop-HBase生产集群。Adobe将数据直接持续地存储在HBase中,并以HBase作为数据源运行MapReduce作业处理,然后将其运行结果直接存到HBase或外部系统。Adobe在2008年10月就已经将Hadoop和HBase应用于生产集群。

5.CbIR

自2008年4月以来,日本的CbIR(Content-basedInformationRetrieval)公司在AmazonEC2上使用Hadoop来构建图像处理环境,用于图像产品推荐系统。使用Hadoop环境生成源数据库,便于Web应用对其快速访问,同时使用Hadoop分析用户行为的相似性。

6.Datagraph

Datagraph主要使用Hadoop批量处理大量的RDF数据集,尤其是利用Hadoop对RDF数据建立索引。Datagraph也使用Hadoop为客户执行长时间运行的离线SPARQL查询。Datagraph是使用AmazonS3和Cassandra存储RDF数据输入和输出文件的,并已经开发了一个基于MapReduce处理RDF数据的Ruby框架——RDFgrid。

Datagraph主要使用Ruby、RDF.rb以及自己开发的RDFgrid框架来处理RDF数据,主要使用HadoopStreaming接口。

7.EBay

单集群超过532节点集群,单节点8核心CPU,容量超过5.3PB存储。大量使用的MapReduce的Java接口、Pig、Hive来处理大规模的数据,还使用HBase进行搜索优化和研究。

8.IBM

IBM蓝云也利用Hadoop来构建云基础设施。IBM蓝云使用的技术包括:Xen和PowerVM虚拟化的Linux操作系统映像及Hadoop并行工作量调度,并发布了自己的Hadoop发行版及大数据解决方案。

9.Last.Fm

Last.Fm主要用于图表计算、专利申报、日志分析、A/B测试、数据集合并等,也使用Hadoop对超过百万的曲目进行大规模的音频特征分析。

节点超过100台机器,集群节点配置双四核XeonL5520@2.27GHzL5630@2.13GHz,24GB内存,8TB(4×2TB)存储。

10.LinkedIn

LinkedIn有多种硬件配置的Hadoop集群,主要集群配置如下:

800节点集群,基于Westmere的惠普SL170X与2×4的核心,24GB内存,6×2TBSATA。

1900节点集群,基于Westmere的超微-HX8DTT,与2×6的核心,24GB内存,6×2TBSATA。

1400节点集群,基于SandyBridge超微与2×6的核心,32GB内存,6×2TBSATA。

使用的软件如下:

操作系统使用RHEL6.3。

JDK使用SUNJDK1.6.0_32。

Apache的Hadoop0.20.2的补丁和ApacheHadoop的1.0.4补丁。

Azkaban和Azkaban用于作业调度。

Hive、Avro、Kafka等。

11.MobileAnalytic.TV

主要使用Hadoop应用在并行化算法领域,涉及的MapReduce应用算法如下。

信息检索和分析。

机器生成的内容——文档、文本、音频、视频。

自然语言处理。

项目组合包括:

移动社交网络。

网络爬虫。

文本到语音转化。

音频和视频自动生成。

12.Openstat

主要利用Hadoop定制一个网络日志分析并生成报告,其生产环境下超过50个节点集群(双路四核Xeon处理器,16GB的RAM,4~6硬盘驱动器),还有两个相对小的集群用于个性化分析,每天处理约500万的事件,每月15亿美元的交易数据,集群每天产生大约25GB的报告。

使用的技术主要包括:CDH、Cascading、Janino。

13.Quantcast

3000个CPU核心,3500TB存储,每日处理1PB以上的数据,使用完全自定义的数据路径和排序器的Hadoop调度器,对KFS文件系统有突出贡献。

14.Rapleaf

超过80个节点的集群(每个节点有2个双核CPU,2TB×8存储,16GBRAM内存)主要使用Hadoop、Hive处理Web上关联到个人的数据,并引入Cascading简化数据流穿过各种处理阶段。

15.WorldLingo

硬件上超过44台服务器(每台有2个双核CPU,2TB存储,8GB内存),每台服务器均运行Xen,启动一个虚拟机实例运行Hadoop/HBase,再启动一个虚拟机实例运行Web或应用程序服务器,即有88台可用的虚拟机运行两套独立的Hadoop/HBase机群,它们各自拥有22个节点。Hadoop主要用于运行HBase和MapReduce作业,扫描HBase的数据表,执行特定的任务。HBase作为一种可扩展的、快速的存储后端,用于保存数以百万的文档。目前存储了1200万篇文档,近期的目标是存储4.5亿篇文档。

16.格拉斯哥大学的TerrierTeam

超过30个节点的实验集群(每节点配置XeonQuadCore2.4GHz,4GB内存,1TB存储)。使用Hadoop促进信息检索研究和试验,特别是用于TREC,用于TerrierIR平台。Terrier的开源发行版中包含了基于HadoopMapReduce的大规模分布式索引。

17.内布拉斯加大学的HollandComputingCenter

运行一个中等规模的Hadoop机群(共计1.6PB存储)用于存储和提供物理数据,以支持紧凑型μ子螺旋型磁谱仪(CompactMuonSolenoid,CMS)实验的计算。这需要一类能够以几Gbps的速度下载数据,并以更高的速度处理数据的文件系统的支持。

18.VisibleMeasures

将Hadoop作为可扩展数据流水线的一个组件,最终用于VisibleSuite等产品。使用Hadoop汇总、存储和分析与网络视频观众收看行为相关的数据流。目前的网格包括超过128个CPU核心,超过100TB的存储,并计划大幅扩容。

国内Hadoop的应用现状

Hadoop在国内的应用主要以互联网公司为主,下面主要介绍大规模使用Hadoop或研究Hadoop的公司。

1.百度

百度在2006年就开始关注Hadoop并开始调研和使用,在2012年其总的集群规模达到近十个,单集群超过2800台机器节点,Hadoop机器总数有上万台机器,总的存储容量超过100PB,已经使用的超过74PB,每天提交的作业数目有数千个之多,每天的输入数据量已经超过7500TB,输出超过1700TB。

百度的Hadoop集群为整个公司的数据团队、大搜索团队、社区产品团队、广告团队,以及LBS团体提供统一的计算和存储服务,主要应用包括:

数据挖掘与分析。

日志分析平台。

数据仓库系统。

推荐引擎系统。

用户行为分析系统。

同时百度在Hadoop的基础上还开发了自己的日志分析平台、数据仓库系统,以及统一的C++编程接口,并对Hadoop进行深度改造,开发了HadoopC++扩展HCE系统。

2.阿里巴巴

阿里巴巴的Hadoop集群截至2012年大约有3200台服务器,大约30?000物理CPU核心,总内存100TB,总的存储容量超过60PB,每天的作业数目超过150?000个,每天hivequery查询大于6000个,每天扫描数据量约为7.5PB,每天扫描文件数约为4亿,存储利用率大约为80%,CPU利用率平均为65%,峰值可以达到80%。阿里巴巴的Hadoop集群拥有150个用户组、4500个集群用户,为淘宝、天猫、一淘、聚划算、CBU、支付宝提供底层的基础计算和存储服务,主要应用包括:

数据平台系统。

搜索支撑。

广告系统。

数据魔方。

量子统计。

淘数据。

推荐引擎系统。

搜索排行榜。

为了便于开发,其还开发了WebIDE继承开发环境,使用的相关系统包括:Hive、Pig、Mahout、Hbase等。

3.腾讯

腾讯也是使用Hadoop最早的中国互联网公司之一,截至2012年年底,腾讯的Hadoop集群机器总量超过5000台,最大单集群约为2000个节点,并利用Hadoop-Hive构建了自己的数据仓库系统TDW,同时还开发了自己的TDW-IDE基础开发环境。腾讯的Hadoop为腾讯各个产品线提供基础云计算和云存储服务,其支持以下产品:

腾讯社交广告平台。

搜搜(SOSO)。

拍拍网。

腾讯微博。

腾讯罗盘。

QQ会员。

腾讯游戏支撑。

QQ空间。

朋友网。

腾讯开放平台。

财付通。

手机QQ。

QQ音乐。

4.奇虎360

奇虎360主要使用Hadoop-HBase作为其搜索引擎so.com的底层网页存储架构系统,360搜索的网页可到千亿记录,数据量在PB级别。截至2012年年底,其HBase集群规模超过300节点,region个数大于10万个,使用的平台版本如下。

HBase版本:facebook0.89-fb。

HDFS版本:facebookHadoop-20。

奇虎360在Hadoop-HBase方面的工作主要为了优化减少HBase集群的启停时间,并优化减少RS异常退出后的恢复时间。

5.华为

华为公司也是Hadoop主要做出贡献的公司之一,排在Google和Cisco的前面,华为对Hadoop的HA方案,以及HBase领域有深入研究,并已经向业界推出了自己的基于Hadoop的大数据解决方案。

6.中国移动

中国移动于2010年5月正式推出大云BigCloud1.0,集群节点达到了1024。中国移动的大云基于Hadoop的MapReduce实现了分布式计算,并利用了HDFS来实现分布式存储,并开发了基于Hadoop的数据仓库系统HugeTable,并行数据挖掘工具集BC-PDM,以及并行数据抽取转化BC-ETL,对象存储系统BC-ONestd等系统,并开源了自己的BC-Hadoop版本。

中国移动主要在电信领域应用Hadoop,其规划的应用领域包括:

经分KPI集中运算。

经分系统ETL/DM。

结算系统。

信令系统。

云计算资源池系统。

物联网应用系统。

E-mail。

IDC服务等。

7.盘古搜索

盘古搜索(目前已和即刻搜索合并为中国搜索)主要使用Hadoop集群作为搜索引擎的基础架构支撑系统,截至2013年年初,集群中机器数量总计超过380台,存储总量总计3.66PB,主要包括的应用如下。

网页存储。

网页解析。

建索引。

Pagerank计算。

日志统计分析。

推荐引擎等。

即刻搜索(人民搜索)

即刻搜索(目前已与盘古搜索合并为中国搜索)也使用Hadoop作为其搜索引擎的支撑系统,截至2013年,其Hadoop集群规模总计超过500台节点,配置为双路6核心CPU,48G内存,11×2T存储,集群总容量超过10PB,使用率在78%左右,每天处理读取的数据量约为500TB,峰值大于1P,平均约为300TB。

即刻搜索在搜索引擎中使用sstable格式存储网页并直接将sstable文件存储在HDFS上面,主要使用HadoopPipes编程接口进行后续处理,也使用Streaming接口处理数据,主要的应用包括:

网页存储。

解析。

建索引。

推荐引擎。

end

计算机信息技术的发展,使计算机朝着智能化方向发展。

计算机人工智能化是未来发展的必然趋势。现代计算机具有强大的功能和运行速度,但与人脑相比,其智能化和逻辑能力仍有待提高。人类不断在探索如何让计算机能够更好的反应人类思维,使计算机能够具有人类的逻辑思维判断能力,可以通过思考与人类沟通交流,抛弃以往的依靠通过编码程序来运行计算机的方法,直接对计算机发出指令。

语义网是网络时代的高级智能产物,其应用广泛,有着美好未来。下面将介绍主要应用技术与研究趋势。

经典的自底向上和新兴的自顶向下的方式。自底向上的方法关注于标注好的信息,使用RDF表示,所以这些信息是机器可读的。自顶向下则着重于利用现成的页面信息,从中自动抽取出有意义的信息。近年来每一种方法都有一定的发展。自底向上的方法的一个喜讯来自于Yahoo搜索引擎支持RDF与microformats的声明。这是一个对于内容发布者、Yahoo和消费者来说三赢的举措:发布者有了标注自己信息的激励,Yahoo可以更有效地利用这些信息,用户可以得到更好、更精确的结果。另一个喜讯来自于Dapper关于提供语义网络服务的声明,这项服务可以让内容发布者给现有的网页添加语义标注。可以期待的是,这种语义工具越多,发布者标注网页就会越容易。自动标注工具的发展与标注激励的增多,会使得自底向上的方法更加引人注目。尽管工具与激励都有了,但要使得自底向上的方法流行起来还是有相当的难度。事实上,今天google的技术已经可以在一定程度上理解那些非结构化的网页信息。类似地,自顶向下的语义工具关注点在于怎样处理现有的非完美的信息。这些方法主要是利用自然语言处理的技术来进行实体的抽取,这些方法包括识别文档中特定实体(与人名、公司、地点等)的文本分析技术,以及能获取特定领域信息的垂直搜索引擎。

自顶向下的技术关注于从非结构化的信息中获得知识,但它同样可以处理结构化的信息,自底向上的标注技术越多,自顶向下方法的性能就越能得到提高。在自底向上的标注方法中,有几种候选的标注技术,它们都很强大,对它们的选择需要在简单性及完全性之间作一个权衡。最完备的方法是RDF:一种强大的基于图的语言,用于表示事物、属性及事物间的关系。简单地来说,你可以认为RDF是这样的一种语言,它通过这样的方式来表达事实:Alex IS human (类型表达),Alex HAS a brain (属性表达),and Alex IS the father of Alice,Lilly,and Sofia (关系表达)。RDF很强大,但因为它是以高度递归、精确与数学化而著称的,同时它也是很复杂的。当前,大多RDF的使用都是为了解决数据的互通性。例如,医学组织使用RDF来表述染色体组数据库。因为信息被标准化了,所以,原来孤立的数据库就可以被一起查询并相互比较了。一般说来,除了语义方面的意义,RDF最主要的好处在于实现互通性与标准化,特别是对于企业来说(下文有论述)。Microfomats提供了一个简单的方法――CSS风格-―来给现有的HTML文档添加语义标记,简洁的meta数据被嵌入到原有的HTML文档中。比较流行的Microformats标签包括hCard:描述个人及公司联系信息;hReview:添加到评论页的meta信息;与hCalendar:描述事件的标签。Microformats因它的简单而得到流行,但它的能力仍然是很有限的。例如被传统的语义团体认为是很必要的层次结构的描述,它就做不到。此外,为了使得标记集最小化,难免地它们表达的意思就显得比较模糊。这就引出了另外一个问题:把标签嵌入到HTML文档中是不是一种合适的做法?然而,虽然仍存在很多的问题,Microformats还是因为它的简单而广受青睐,像Flickr,Eventful,LinkediIn及其它很多公司都在采用microformats,特别在是Yahoo的搜索声明发布之后。还有一种更为简单的方法就是把meta数据放在meta头中。这种方法已经在一定程度上被使用,可惜的是使用得还不是十分广泛。纽约时报最近为他们的新闻页面启动了一个标注扩展,这种方法的好处已经在那些主题或事件页面中显现出来。例如,一个新闻页面可以通过一组关键词来标识:地点、日期、时间、人物与类别。另一个例子是关于书的页面,已经在页面的meta头里加入了书本的信息:作者、ISBN与书的类别。尽管所有这些方法不尽相同,但相同之处是它们都是很管用的。越多的网页被标注,就会有越多的标准会被实现,同时信息也会变得更为强大与更易于得到。

关于语义网的讨论中,在用户与企业的关注点是不一样的。从消费者的立场来说,我们需要一个杀手级的应用(killer app),可以给用户传递实在而简单的价值。因为用户只会关注产品的实用性,而不会在乎它建立在什么技术之上。问题在于,直到目前为止,语义网的关注点更多的都还停留在理论层面,如标注信息以使得机器可读。我们可以给出这样的承诺:一但信息都被标注,网络就会变成一个大型的RDF数据库,大量激动人心的应用也会应运而生。但也有怀疑者指出,首先你必须得达成那样的假设。

已经有很多基于语义网的应用,如通用及垂直搜索引擎、文本助理工具、个人信息管理系统、语义浏览工具等等,但在它们为大众所接受之前,还有很长的路要走。即便这些技术成功了,用户也不会有兴趣知道那背后使用了些什么技术。所以说在用户层面推广语义网技术是没什么前景的。

企业就不一样了,第一,企业比较习惯于技术方面的论调,对于它们来说,利用语义技术可以增加产品的智能程度,从而形成市场价值。“我们的产品更好更聪明,因为我们使用语义网”,听起来这对企业来说是一个很不错的宣传。

从企业层面来说,RDF解决了数据的互通性标准的问题。这个问题其实在软件行业的早期便已出现,你可以忘掉语义网,只把它看作是一个标准协议,一个使得两个程序可以互通信息的标准。这对企业来说无疑是极具价值的。RDF提供了一个基于XML的通讯方案,它所描述的前景使得企业并不在乎它的复杂性。但还存在着一个扩展性的问题,跟已经普及优化的关系型数据库不同,基于XML的数据库并没有普及,这归咎于其可扩展性与查询能力。就像九十年代末的对象数据库一样,基于XML的数据库承载了太多的期望,让我们拭目以待。

语义API是随着语义网的发展而发展的,这类网络服务以非结构化的文本作为输入,输出一些实体与关系。例如路透社的Open Calais API,这项服务接受原始文本的输入,返回文本中的人名、地点、公司等信息,并在原文中加以标注。另一个例子是TextWise的Hacker API,该公司还提供了一百万美元的悬赏,以奖励基于它的API的最好的商业语义网应用。这个API可以把文档中的信息分为不同的类别(称为语义指纹),输出文档中的实体与主题。这点和Calais的很相似,但它还提供了一个主题的层次结构,文档中的实际对象是结构中的叶节点。再一个例子来自于Dapper,那是一个有助于从无结构的HTML页面提取结构化信息的网络服务。Dapper的工作依赖于用户在页面上为对象定义一些属性,比如,一个图片出版商会定义作者、ISBN和页数的信息在哪里,然后Dapper应用就可以为该站点创建一个识别器,之后就可以通过API来读取它的信息。从技术的角度来看,这似乎是个倒退,但实际上Dapper的技术在实际当中非常有用。举个典型的情景为例,对于一个并没有专门API可以读取其信息的网站,即便是一个不懂得技术的人都可以在短时间内用Dapper来构造一个API。这是最强大、最快捷的把网站变为网络服务的途径。

可能语义网发展的最初动机就是因为很久以来搜索的质量都已经很难再得到提升。关于对页面语义的理解能提高搜索质量这一点假设也已经被证实。语义网搜索两个主要的竞争者Hakia与PowerSet都已经做出不少的进步,但仍然不足够。因为,基于统计的google算法,在处理人物、城市与公司等实体时表现得与语义技术同样的好。当你提问“法国总统是谁”时,它能返回一个足够好的答案。越来越多人意识到对搜索技术边缘化的改进是很难击败google的,因而转向寻找语义网的杀手级应用。很有可能,理解语义对于搜索引擎是有帮助的,但就此并不足以构建一个更好的搜索引擎。充分结合语义、新颖的展示方式与对用户的识别能提升下一代搜索引擎的搜索体验。另有一些方法试图在搜索结果上应用语义。Google也在尝试把搜索结果分为不同的类别,用户可以决定他们对哪些类别感兴趣。搜索是一场竞赛,很多语义公司都在追逐其中。也许会有另一种提高搜索质量的可能:文本处理技术与语义数据库的结合。下面我们即将谈到。我们已经看到越来越多的文本处理工具进入消费市场。像Snap、Yahoo Shortcuts或SmartLinks那样的文本导航应用可以“理解”文本与链接中的对象,并附加相应的信息于其上。其结果是用户根本不需要搜索就可以得到对信息的理解。让我们想得更远一些,文本工具使用语义的方式可以更为有趣。文本工具不再解析用户在搜索框里输入的关键词,而是依赖于对网络文档的分析。这样对语义的理解会更为精确,或者说减少猜测性。随后文本工具给用户提供几类相关的结果供选择。这种方式从根本上不同于传统的把大量文档中得到的正确结果一起堆放在用户面前的方式。同样有越来越多的文本处理工具跟浏览器结合起来。自顶向下的语义技术不需要发布者做任何事情,因而可以想像上下文、文本工具可以结合在浏览器里。Firefox的推荐扩展页里提供了很多的文本浏览解决方案,如Interclue,ThumbStrips,Cooliris与BlueOrganizer等。

语义数据库是标注型语义网应用的一个发展方向。Twine正在beta测试阶段,它着眼于建立一个关于人物、公司、事件、地点的私人知识库,数据来源为各类论坛的非结构化内容,这些内容可通过书签、邮件或手工的方式进行提交。这项技术仍有待成熟,但它所能带来的好处显而易见。可以意想的一个基于Twine的应用为个性化的搜索,通过个人的知识库来对搜索结果进行过滤。Twine底层的数据表示方式是RDF,可以开放给其它的语义网络服务所采用,但其核心的算法,如实体提取是通过语义API的方式商业化的。路透社也提供了类似的API接口。另外一个语义数据库的先行者是一家叫Metaweb的公司,它的产品的Freebase。从它所展现的形式来看,Freebase只是一个基于RDF的更结构化的wikipedia翻版。但是Freebase的目标是建立一个像wikipedia那样的世界信息库,这个信息库的强大之处在于它可以进行精确的查询(就像关系型数据库那样)。所以它的前景依然是更好的搜索。但问题在于,Freebase怎样保持与世界信息同步俱进?google每天对网络文档进行索引,可以随着网络发展而发展。Freebase现在的信息仅来自于个人编辑及从wikipedia或其它数据库中抓回的数据。如果要扩展这个产品,就必须完善从全网络获取非结构化信息、解析并更新数据库这一处理流程。保持与世界同步这一问题对所有数据库方法都是一种挑战。对于Twine来说,需要有不断的用户数据加入,而对于Freebase来说,则需要有来自不断的来自网络的数据加入。这些问题解决起来并不简单,在真正实用之前都必须要有一个妥善的处理。所有新技术的出现都需要定义一些概念和得到一些类别。语义网提供了一个很激动人心的前景:提高信息的可发现性,实现复杂的搜索,新颖的网络浏览方式。此外语义网对不同的人有不同的意义,它对于企业和对于消费者的定义是不同的,在自顶向下VS自底向上,microformats VS RDF等不同类型中也有不同的含义。除了这些模式,我们也看到了语义API与文本浏览工具的发展。所有的这些都还处于其早期发展阶段,但都承载着改变我们与网络信息交互方式的期望。

语义网的高级阶段使得图书馆,售订票系统,客户管理系统,决策系统均能发挥很好的效果。譬如要出去旅行,只要把具体时间要求与自己喜爱的国内旅游类型提供给语义网支持的查询系统,那么很快相应的国内景点,最佳旅游方案与注意事项,提示以及旅行社的评价均能很快速得准备在浏览器页面上。

语义网终会把网络的高级阶段应用到世界的每一个角落,每个人均有自己的网络IP一样的身份证明.个人消费信用、医疗、档案等等全在自己的网络身份里面。同时网络社区更比现实社区更有活跃力,网络社会更有秩序、更和谐。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/784987.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-24
下一篇2023-08-24

发表评论

登录后才能评论

评论列表(0条)

    保存