- 博客(329)
- 资源 (105)
- 论坛 (10)
- 收藏
- 关注

原创 重磅推荐:建大数据平台太难了!给我发个工程原型吧!
故事缘起:我们需要工程原型!大数据平台的架构体系庞大,技术堆栈非常深,从事大数据开发的同学对此应该都深有体会。而在很多细分领域(例如实时计算、作业调度)也没有像样的工程模板,这导致很多团队在启动大数据平台建设时往往感到无所侍从,也使得希望深入学习大数据技术的开发者由于缺少工程级的示例参考而感到迷茫。如果在大数据领域也有基于最佳实践提炼出来的工程原型,帮助团队快速启动开发,上手就写业务代码的话,你想了解一下吗?
2020-06-19 11:27:26
4659
5

原创 时间序列大数据平台建设经验谈
版权声明:本文由本人撰写并发表于2018年1月刊的《程序员》杂志,本文版权归《程序员》杂志所有,未经许可不得转载。引言在大数据的生态系统里,时间序列数据(Time Series Data,简称TSD)是很常见也是所占比例最大的一类数据,几乎出现在科学和工程的各个领域,一些常见的时间序列数据有:描述服务器运行状况的Metrics数据、各种IoT系统的终端数据、脑电图、汇率、股价、气象和天
2018-02-07 10:37:25
13538
7

原创 从函数字面量发现函数式编程
版权声明:本文由本人撰写并发表于2015年3月下半月的《程序员》杂志,原文题目《从字面量发现函数式编程》,本文版权归《程序员》杂志所有,未经许可不得转载。引言我相信很多像我一样初次接触函数式编程的程序员来说,对于“函数字面量”这个概念会感到迷惑和不解。伴随着深入地学习,在清晰地理解了这个概念之后,我进行了一些梳理和回溯,作为函数式编程思想延伸到最基层的语言元素,我深刻地觉得“函数字面量”这
2015-04-27 11:54:09
9082
5

原创 HBase高性能复杂条件查询引擎
版权声明:本文由本人撰写并发表于2014年7月份的InfoQ,HBase的PMC成员Ted Yu先生参与了审稿并于给予了肯定。该方案设计之初仅寄希望于通过二级索引提升查询性能,由于在前期架构时充分考虑了通用性以及对复杂条件的支持,在后来的演变中逐渐被剥离出来形成了一个通用的查询引擎。HBase在大数据领域的应用越来越广泛,成为目前NoSQL数据库中表现最耀眼,呼声最高的产品之一,但就应对复杂条件的查询来说,一般认为它并不是非常适合,熟悉HBase的开发人员对此应该有一定的体会,但是基于普遍的需求,开发者们希
2014-06-17 20:10:36
43802
35

原创 数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
版权声明:本文由本人撰写并发表于2012年9月份的《程序员》杂志,原文题目《一种支持自由规划的Sharding扩容方案——主打无须数据迁移和修改路由代码》,此处作为本系列的第五篇文章进行转载, 本文版权归《程序员》杂志所有,未经许可不得转载!作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sharding改造阶段
2012-09-12 12:19:52
68664
58

原创 Spring基于ThreadLocal的“资源-事务”线程绑定设计的缘起
题目起的有些拗口了,简单说,这篇文章想要解释Spring为什么会选择使用ThreadLocal将资源和事务绑定到线程上,这背后有着什么样的起因和设计动机,通过分析帮助大家更清晰地认识Spring的线程绑定机制。本文原文链接:http://blog.csdn.net/bluishglc/article/details/7784502 转载请注明出处!“原始”的数据访问写法访问任何带有事务特性的资源系
2012-07-25 14:17:56
25872
12

原创 数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示
本文原文连接: http://blog.csdn.net/bluishglc/article/details/7696085 ,转载请注明出处!本文着重介绍sharding切分策略,如果你对数据库sharding缺少基本的了解,请参考我另一篇从基础理论全面介绍sharding的文章:数据库Sharding的基本思想和切分策略 第一部分:实施策略图1.数据库分库分表(sharding)实施策略图解(
2012-06-27 14:32:44
173542
25

原创 从MVC框架看MVC架构的设计
从MVC框架看MVC架构的设计尽管MVC早已不是什么新鲜话题了,但是从近些年一些优秀MVC框架的设计上,我们还是会发现MVC在架构设计上的一些新亮点。本文将对传统MVC架构中的一些弊病进行解读,了解一些优秀MVC框架是如何化解这些问题的,揭示其中所折射出的设计思想与设计理念。MVC回顾作为一种经典到不能再经典的架构模式,MVC的成功有其必然的道理,这个道理不同的人会有不同的解读,笔者最认同的一种观
2011-08-16 09:57:37
96097
82

原创 领域驱动设计(Domain Driven Design)参考架构详解
领域驱动设计(Domain Driven Design)参考架构详解摘要本文将介绍领域驱动设计(Domain Driven Design)的官方参考架构,该架构分成了Interfaces、Applications和Domain三层以及包含各类基础设施的Infrastructure。本文会对架构中一些重要组件和问题进行讨论,给出一些分析结论。本文原文连接:http://blog.csdn.net/b
2011-08-12 11:33:02
61627
12
转载 Shell命令行参数解析getopt的使用范例
#!/bin/sh## Shell script to demonstrate use of Linux getopt command for parsing command options.# - Built-in getopts can only handle one-character options so getopt command is necessary# Supporting functions, alphabetized...# Parse the command line
2020-10-14 14:56:24
272
原创 Hadoop/Yarn的日志清理
Hadoop/Yarn的日志清理可以分为两个子话题讨论:Hadoop/Yarn的本地日志(非Yarn Container生成的日志)Yarn的Container生成的日志我们这里讨论的日志清理并不是通过定时的日志删除命令去实现,这一做法显然优雅, 具体的做法下面会分别进行讨论。1. Hadoop/Yarn本地日志的清理Hadoop/Yarn使用log4j进行日志输出,所以对于它们本地日志的清理,最好的方式是通过修改log4j的配置配置文件,以rolling的方式写入日志。Hadoop/Yarn
2020-09-22 11:50:39
1107
原创 如何制作一个AWS EMR客户端节点( Client Node / Edge Node / Gateway Node )
1. 为什么需要EMR客户端节点?对于AWS EMR不提供专职的客户端节点( Edge Node / Gateway Node )一事,作为一名架构师,我持保留意见。个人认为这并不明智,其客观上削弱了EMR的易用性。尽管云计算的“处世哲学”认为:计算与存储应该是分离的,这使得计算资源变成动态可调节的“非永久性”资源,因此有一种思想认为:对于离线的分析型计算而言,可以不必再维持一个“永久”的计算集群,而是在使用时开启,结束时关闭,只要数据被S3这类的存储服务保存下来即可(我们得承认这是很美好一个愿景,但是现
2020-09-11 10:26:32
334
1
原创 JMeter实用案例讲解:生成Mockup/Dummy JSON压测REST API
JMeter实用案例:生成Mockup/Dummy JSON数据压测Restful API在实际工作中我们经常需要做一些性能测试,过去我基本上使用的都是JMeter,这么多年使用下来的一个感受是:JMeter并不太容易上手,但确实强大灵活,可以应对一些复杂的测试场景,一但掌握了,基本就不再需要其他工具了。所以这次专门写篇文章归纳总结一下。本文是一篇快速入门类的文章,将围绕最有代表性也是最常见的一类场景进行介绍,即:生成Mockup/Dummy JSON数据压测Restful API,同时配合讲解我还专门开
2020-09-04 09:34:13
1281
原创 中台架构详解(下)| 建设数据中台系列(五)
本质上,中台是一种中心化、平台化的企业组织架构和业务形态,当这样的组织和业务架构投射到IT 系统上时会自然地形成我们今天讨论的IT 意义上的“中台”。笔者曾经参与过不少定位为统一平台的项目,其中有不少失败的案例,对于这个问题有一点个人的思考:也许中心化系统都是反传统管理体制的,烟囱式的生态系统是企业组织架构在IT 上的投影,小到“数据湖”,大到中台,没有强力对等的中心化组织去主导,结果是很难预料的。继本系列前一篇文章对中台架构作了整体性的介绍之后,本文我们将继续从组织架构的角度上展开对中台的介绍,这是中台
2020-09-01 13:44:37
415
原创 OpenTSDB 2.4安装报org.hbase.async.TableNotFoundException: “tsdb“错误
使用rpm包安装目前最新的OpenTSDB 2.4时,会在启动时报:org.hbase.async.TableNotFoundException: "tsdb"经过排查,发现是由于OpenTSDB使用的HBase数据库初始化脚本/usr/share/opentsdb/tools/create_table.sh中关于tsdb的建表脚本有错误,原始内容为:create '$TSDB_TABLE', {NAME => 't', VERSIONS => 1, COMPRESSION =>
2020-08-26 09:43:25
550
原创 OpenTSDB 2.4安装报FileNotFoundException: LOG_FILE_IS_UNDEFINED (Permission denied)错误
使用rpm包安装目前最新的OpenTSDB 2.4时,会在启动时报:FileNotFoundException: LOG_FILE_IS_UNDEFINED (Permission denied)经过排查,发现是由于OpenTSDB使用的logback配置文件/usr/share/opentsdb/etc/opentsdb/logback.xml中存在配置错误,文件中使用到的两个变量${LOG_FILE}和${QUERY_LOG}都没有被赋值或使用实际值进行替换,导致OpenTSDB在启动时由于找不到
2020-08-26 09:30:10
344
原创 中台架构详解(上)| 建设数据中台系列(四)
中台打破了应用系统的壁垒,从企业全局梳理和规划业务程,重构了组织架构、业务架构与IT 架构。在梳理了企业的IT 现状并回顾了SOA 的历史之后,我们需要对中台架构进行一番详细的介绍,阿里巴巴的Aliware 团队曾经给中台下过这样的定义:将企业的核心能力随着业务不断发展以数字化形式沉淀到平台,形成以服务为中心,由业务中台和数据中台构建起数据闭环运转的运营体系,供企业更高效地进行业务探索和创新,实现以数字化资产的形态构建企业核心差异化竞争力。现在中台战略常被简单地概括为“大中台,小前台”,意思是说将.
2020-08-15 13:59:57
2689
原创 Git常用操作备忘
分支类操作查看远程分支git branch -a删除远程分支git push origin --delete <branchName>
2020-08-12 16:58:05
156
原创 SOA为什么不“香”了?| 建设数据中台系列(三)
SOA 所有的理念都是基于现有应用系统展开的,不管是对服务的梳理还是服务之间的交互,都是以现有应用系统为载体的,中台不同于SOA 的地方在于:中台是一种平台化思维,它并不是从系统集成的角度去思考问题,而是从架构层面上重构了整个IT 生态。相比之下,中台无疑是一种更深刻、更底层的变革,因为它完全破除了应用之间的壁垒,把企业的核心业务能力“中心化”,把它们提炼并沉淀到中台的各个业务中心上,而不是面向单一业务方向或渠道的应用系统上。这在SOA 架构下是很难实现的,因为中台的业务中心与SOA 的服务载体(即应用系.
2020-08-01 09:32:37
510
原创 怎么走着走着就变“烟囱”了呢?| 建设数据中台系列(二)
这两年,随着中台概念的兴起,一种IT过去的常态,现在的明星反面教材——“烟囱式架构”被反复提及并为大家所熟知。作为中台的对立面,烟囱式架构不幸地成为了业界合力吐槽的“倒霉孩子”,那些对比中台理念审视过自身IT系统的传统企业都不禁心虚地喃喃自语道:“嗯,我有病,得治!”开个玩笑,其实我们并不打算在这篇文章里对烟囱架构进行批判,“家家有本难念的经”,企业形成今天的烟囱式架构是由很多现实问题导致的,并不是什么管理或决策上的疏失,如果说烟囱式架构就是一种“病”,那么可以说“雪崩来的时候,没有一片雪花是无辜的”。
2020-07-23 09:32:53
458
原创 可以复用的数据中台架构与建设实践 | 数据中台公开课
数据中台的概念满天飞,但是数据中台的落地始终是一个难点,很难统一。最近几年,随着企业数据的爆炸式增长,以及大数据与人工智能的普及和推广,越来越多的企业意识到“数据”对企业的重要性。建设“数据驱动型”企业也成了越来越多企业的战略目标之一。加大数据领域的投入,促使了IT部门开启了新一代数据平台的建设工作。目前,新一代数据平台均以大数据和人工智能作为核心技术支撑,在方法论上,数据中台理论则是现在行业内讨论最为热烈的话题。这些理论和技术体系庞大而复杂,需要专业的人才和团队进行建设和管理,其中很多工作充满挑战.
2020-07-22 09:17:24
545
原创 企业数据能力测评:认清现状,布局未来 | 建设数据中台系列(一)
“我的企业目前在数据应用上处于什么水平?接下来应该朝哪个方向努力?”本文试图帮助企业决策者和IT负责人解答这一问题。今天,数据之于企业的重要性已经勿须多言,建设数据驱动型企业已成为众多企业的战略目标之一。在这一趋势的引领下,很多企业开始了新一代数据平台(例如数据中台)的建设工作,然而在启动这一具有挑战性的工作之前,企业首先需要冷静客观地审视一下自己的数据生态,弄清楚目前所处的能力水平,以及下一步努力的“方向”。只有这样才能确保后续工作沿着正确的方向展开,这可能也是企业在构建全新的大数据平台或数据中台前.
2020-07-10 11:13:18
1703
1
原创 Java应用/JDBC/Squirrel在Kerberos认证时报Unable to obtain Principal Name for authentication的解决方法
Java应用/JDBC/Squirrel在Kerberos认证时报Unable to obtain Principal Name for authentication的解决方法关于如何在Windows本地安装配置Kerberos客户端,以及进行相关的配置,网上有很多现成的文档可以参考,其中: https://841809077.github.io/2018/12/19/Windows本地安装配置...
2019-07-12 15:59:20
5652
原创 Kerberose安装与CDH集成
Kerberose安装与CDH集成文章目录Kerberose安装与CDH集成1.Kerberose安装1.1. 软件版本1.2. 集群角色1.3. 安装JCE Policy File1.4. 安装Kerberos1.5. 配置Kerberos1.6. 创建数据库1.7. 启动Kerberos服务1.8. 验证安装2. 在CDH上启用Kerberos3. 创建hdfs/hive等用户主体3. 创建...
2019-05-31 09:15:25
725
原创 提升小规模HDP集群的作业并行度
对于团队使用的一些小型的Hadoop集群来说,由于资源有限,团队成员又多,并行开发和测试又密集,很容易出现资源紧张,作业被pending无法执行的情况,最大化的配置集群作业的并行度是开发环境的集群所必须的。1. Yarn Queue的作业分配粗策略默认情况,Yarn作业的提交顺序使用FIFO策略,如果想要提升作业的并行度,可以改为FAIR2. Yarn Queue的AM资源分配比一般情...
2019-01-30 18:18:54
940
1
原创 Hive JDBC连接Tez(AM)容器长期不释放问题的解决方法
Hive JDBC连接Tez(AM)容器长期不释放问题的解决方法问题有这样一个问题是很常见的:如果我们的Hive使用默认使用Tez作为执行引擎,当我们使用IDE通过Hive JDBC连接时,会出现在一个很“有趣”的想象:即如果我们不断开这个JDBC连接,则在Yarn上会持续有有一个Tez的AM容器持续存在,只有当端开JDBC连接时,这个容器才会被释放。关于Tez在Yarn的资源布局,可参考这篇...
2019-01-30 15:31:09
3143
7
原创 Spark SQL和Hive在处理日期/时间上的差异
注: 本文使用的环境是:Spark:2.2, Hive: 1.2.1最近在编写一个SQL的过程中遇到了这样一个陷阱:为了便于工作,SQL的编写是通过一个SQL的IDE环境以Hive JDBC驱动的方式连接到HIVE上去执行的,SQL在HIVE上执行正常,有结果数据返回。但是SQL开发好在程序执行时通过Spark-SQL来运行的,SQL可以成功执行,没有报出任何语法错误,但是没有任何结果数据!在经...
2018-12-27 12:05:22
3523
原创 Kerberos笔记
本文以《Hadooop Security》等资料为基础,罗列关于Kerberos的一些重要内容的笔记。文章目录Kerberos的基本思想没有Kerberos时,Hadoop是如何工作的?Kerberos概述1. Principal2. Realm3. KDC3.1 Kerberos数据库3.2 认证服务 (authentication service)3.3 票据授予服务(ticket-gra...
2018-12-08 13:59:47
3385
原创 数仓CUBE操作术语备忘
SLICE (切片)将某一个(或多个)维度上的值锁定,只观察当这个维度取这个值时的情形,相当于将一个立方体做了一个切片。DICE (切块)将某一个(或多个)维度上的值固定在一个区间内,观察这个取值区间内cube的情形,相当于将一个立方体做了一个切块。ROLL UP (上卷)沿着某一个(或多个)维度进行聚合,观察聚合后其他维度上的汇总数据,相当于将一个立方体沿着某个维度压缩(聚合)在一起...
2018-11-06 17:23:23
2049
原创 Spark Structured Stream的流关联(Stream-Stream Joins)
自Spark 2.3开始,Spark Structured Streaming开始支持Stream-stream Joins。两个流之间的join与静态的数据集之间的join有一个很大的不同,那就是,对于流来说,在任意时刻,在join的两边(也就是两个流上),数据都是“不完全”的,当前流上的任何一行数据都可能会和被join的流上的未来某行数据匹配到,为此,Spark必须要缓存流上过去所有的输入,以...
2018-08-01 10:48:04
4575
4
原创 Spark报java.util.NoSuchElementException: head of empty list错误的解决方法
如果在Spark Structured Streaming上使用了Arbitrary Stateful Operations, 也就是使用了mapGroupsWithState或flatMapGroupsWithState方法,而其中GroupState[S]的S又偏偏是一个自定义的类型,那么你就会遇到这个错误!产生这个错误的原因是Spark找不到相应的Encoder,Encoder的作用是负责J...
2018-07-25 18:33:48
4132
原创 Spark Structured Streaming: 自维护(任意)状态流的“超时”(Timeout)问题
此“超时”非彼“超时”在我们开始这篇文章之前,我们必须要先弄清除一下问题:为什么流的上的状态会有“超时”问题?超时机制是为什么样的业务场景而设计的?通常情形下,人们一种直白的想法是:某种状态在长时间没有得到来自新数据的更新时,我们可以认为这个状态是“超时”了,它应该不复存在了,应该永远的被移除掉。然而遗憾的时是,Spark对于“状态”以及“超时”是另外一种理解:Spark认为既然流是没有边...
2018-06-28 15:42:41
2517
2
原创 Spark基于事件时间的“状态”流的深层分析 - withWatermark与mapGroupsWithState的关系
不管是基于watermark的窗口计算还是自维护的状态流,它们都是有状态的,watermark只是规定了数据进入“状态”(有资格参与状态计算)的条件,并没有(也不适合)声明状态的“退出”机制。对于watermark的窗口计算来说,它们的“退出”机制是:如果最近某个还处于active状态的窗口它的EndTime比当前批次中最新的一个事件时间减去watermark规定的阈值还要“早”,说明这个窗口所有...
2018-06-27 09:48:27
3711
2
原创 Spark性能调优系列二:Spark流计算重要性能参数测试与分析
参数介绍spark.scheduler.modespark.streaming.concurrentJobsscheduler线程池测试用例Test Case Group 1: FIFO vs. FAIRTest Case 1-1: FIFOTest Case 1-2: FAIRTest Case Group 2: FIFO 1 Slot vs. FIFO 4 Slo...
2018-06-21 09:39:41
3853
2
原创 Spark性能调优系列一:Spark的作业模型
JobSpark的整个作业体系中,处于顶层的是Job, Job和Spark中的Action是一一对应的,每一个Action都会触发一个Job的执行,这个Job包含的处理逻辑是Action以及Action之前的所有Transformation, 所有这些逻辑会被Spark转换成一张关于RDD的DAG(有向无环图),这个DAG也就是实际意义上的Job的执行计划。StageJob的下一个...
2018-06-11 16:12:44
1149
原创 Spark Structured Streaming多流multiple streams)多查询(multiple queryies)问题
Structured Streaming作为Spark新一代的流计算编程模型,针对流计算提供了很多新的的高级的API进行支持,这使得它比DStream要好用的多,同时编码量也大幅度地减少,但是在当前版本V2.3下, Structured Streaming无法支持 多流(multiple streams) 多查询 (multiple queryies)是非常头痛的一个问题。在流计算中,一个非常...
2018-06-08 09:56:32
3000
10
原创 Flink初探
编程模型应该说Flink的编程编程模型和Spark Streaming的DStream还是非常相似的,也是抽象出了Stream概念也表示没有边界的数据流,针对Stream所施加操作是被称之为”transformation”,它会把一个流转换成另一个流作为转换的输出。与很多流计算模型一样,流的起点往往是数据的输入源,被称之为”source”,流的重点是数据的输出目的地,被成为“sink”。下 图...
2018-05-25 10:05:25
5614
3
原创 《Spark Structured Streaming》 官方文档解读
模型思想从Spark 2.0开始,Spark Streaming引入了一套新的流计算编程模型:Structured Streaming,开发这套API的主要动因是自Spark 2.0之后,以RDD为核心的API逐步升级到Dataset/DataFrame上,而另一方面,以RDD为基础的编程模型对开发人员的要求较高,需要有足够的编程背景才能胜任Spark Streaming的编程工作,而新引入的...
2018-05-23 17:33:16
6979
2
原创 应该广泛使用case语句简化函数字面量的实现
这篇文章很短,但足以单独作为一篇文章存在,因为这里介绍的这个Scala编程技巧非常的实用和高效。在Scala里我们需要大量地编写一些函数字面量作为参数传递给高阶函数,而很多时候,被要求提供的函数字面量的参数是一些复合类型,比如tuple,在函数字面量的实现体中,往往第一步就是通过模式匹配从复合类型中提取出嵌套的变量进行计算,例如下面计算元组两元素平方差的例子:scala> v...
2018-05-03 15:40:23
732
原创 谨慎使用Scala Map的mapValues, 你需要的可能是transform
没有踩过mapValues的坑之前,我相信大多数人会认为mapValues和所有其他map类方法的逻辑是一样的:对Map里所有的value施加一个map函数,返回一个新的Map。但实际情况却并不这么简单,还是先看一段“诡异”的代码吧 (本文原文出处: 本文原文链接: http://blog.csdn.net/bluishglc/article/details/80156218 转载请注明出处。):...
2018-05-01 14:07:48
9506
3
OpenSSH for Windows
2013-02-06
The.Art.of.Multiprocessor.Programming.Revised.Reprint
2014-02-06
win7下硬盘安装Linux(Fedora17,CentOS 6.4,Ubuntu 12.10,LinuxMint 13 64-bit)
2013-08-16
Packtpub.Hadoop.MapReduce.Cookbook.Jan.2013
2013-03-04
Professional Website Performance.pdf
2013-02-04
Red.Gate.SQL.Toolbelt.v1.8.2.238.Incl.Keygen
2013-01-14
Araxis.Merge.Professional.v2012.4260.x64-BEAN
2012-12-27
Apress.Pro.SQL.Server.2012.Practices.Nov.2012
2012-12-24
JavaScript.The.Definitive.Guide.6th.Edition.Apr.2011
2012-09-29
Professional JavaScript for Web Developers, 3rd Edition 附书中代码
2012-09-19
Head.First.HTML.and.CSS.2nd.Edition.Aug.2012
2012-09-11
Packtpub.Spring.Security.3.May.2010
2012-09-10
Pro Apache Log4j Second Edition
2012-09-06
Hadoop: The Definitive Guide, Third edition (Final Release)
2012-08-30
Hadoop: The Definitive Guide, Third edition 源代码
2012-08-30
bluishglc的留言板
发表于 2020-01-02 最后回复 2020-01-02
一个函数模板显示特化的问题,请高手指教!
发表于 2005-08-19 最后回复 2005-08-20
你有什么工具写C程序呢?给些建议
发表于 2004-02-06 最后回复 2004-02-27
哥哥姐姐们:能给俺推荐几本适合初学者学习java的好书么?
发表于 2004-02-02 最后回复 2004-02-07
哥哥姐姐们:能给俺推荐几本适合初学者学习java的好书么?
发表于 2004-02-02 最后回复 2004-02-05
给个建议好么
发表于 2003-12-31 最后回复 2004-01-12
听说今年软考可以考两次是真的么?
发表于 2004-01-01 最后回复 2004-01-04
04年软考真的改成两次了么?
发表于 2004-01-01 最后回复 2004-01-01
哥哥姐姐们,大家能给我一点建义吗?
发表于 2003-12-31 最后回复 2004-01-01
哥哥姐姐们给个建议好么?
发表于 2003-12-31 最后回复 2003-12-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝