摘要: 本文详述了如何通过数据预览,探索式数据分析,缺失数据填补,删除关联特征以及派生新特征等方法,在机器学习竞赛Kaggle的Titanic幸存预测这一分类问题竞赛中获得前2%排名的具体方法。 阅读全文
posted @ 2017-04-13 06:53 郭俊Jason 阅读(7162) 评论(0) 推荐(8) 编辑

摘要: 本文结合实例详细阐明了Spark数据倾斜的几种场景以及对应的解决方案,包括避免数据源倾斜,调整并行度,使用自定义Partitioner,使用Map侧Join代替Reduce侧Join,给倾斜Key加上随机前缀等。 阅读全文
posted @ 2017-03-06 08:10 郭俊Jason 阅读(6830) 评论(0) 推荐(13) 编辑

摘要: 本文介绍了抽象工厂模式的概念,UML类图,优缺点,实现方式以及(未)遵循的OOP原则。同时结合J2EE中常用的DAO实例详解了抽象工厂模式的实现。 阅读全文
posted @ 2016-06-08 07:29 郭俊Jason 阅读(467) 评论(0) 推荐(0) 编辑

摘要: 本文结合实例详述了策略模式的实现方式,并介绍了如何结合简单工厂模式及Annotation优化策略模式。最后分析了策略模式的优缺点及已(未)遵循的OOP原则 阅读全文
posted @ 2016-05-30 07:34 郭俊Jason 阅读(667) 评论(0) 推荐(0) 编辑

摘要: 本文介绍了工厂方法模式的概念,优缺点,实现方式,UML类图,并介绍了工厂方法(未)遵循的OOP原则 阅读全文
posted @ 2016-05-20 08:11 郭俊Jason 阅读(510) 评论(0) 推荐(0) 编辑

摘要: 本文介绍了简单工厂模式的概念,优缺点,实现方式,以及结合Annotation和反射的改良方案。同时介绍了简单工厂模式(未)遵循的OOP原则。最后给出了简单工厂模式在JDBC中的应用 阅读全文
posted @ 2016-05-17 07:28 郭俊Jason 阅读(9810) 评论(2) 推荐(3) 编辑

摘要: 本文主要介绍了Kafka High Level Consumer,Consumer Group,Consumer Rebalance,Low Level Consumer实现的语义,以及适用场景。以及未来版本中对High Level Consumer的重新设计--使用Consumer Coordinator解决Split Brain和Herd等问题。 阅读全文
posted @ 2016-04-12 21:12 郭俊Jason 阅读(1860) 评论(0) 推荐(3) 编辑

摘要: ### **【原创声明】本文属作者原创,已授权InfoQ中文站首发,转载请务必在文章开头标明出自“Jason's Blog”,并附上原文链接[http://www.jasongj.com/2015/06/08/KafkaColumn3/](http://www.jasongj.com/2015/06... 阅读全文
posted @ 2015-06-08 21:16 郭俊Jason 阅读(559) 评论(0) 推荐(1) 编辑

摘要: Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务。若该Broker永远不能再恢复,亦或磁盘故障,则其上数据将丢失。而Kafka的设计目标之一即是提供数据持久化,同时对于分布式系统来说,尤其当集群规模上升到一定程度后,一台或者多台机器宕机的可能性大大提高,对于Failover机制的需求非常高。因此,Kafka从0.8开始提供High Availability机制。本文从Data Replication和Leader Election两方面介绍了Kafka的HA机制。 阅读全文
posted @ 2015-04-26 12:12 郭俊Jason 阅读(1052) 评论(0) 推荐(3) 编辑

2018年10月31日

摘要: 本文介绍了顶级互联网公司数万节点下 Spark 的 CI 与 CD & CD 实践。包含如何维护源代码,如何维护 Release 多版本,开发版与正式版,以及如何实现灰度发布,如何进行 hotfix。 阅读全文
posted @ 2018-10-31 08:13 郭俊Jason 阅读(1008) 评论(2) 推荐(2) 编辑

2018年9月11日

摘要: 本文结合案例详述了 Spark SQL 的工作原理,包括但不限于 Parser,Analyzer,Optimizer,Rule-based optimization等内容。 阅读全文
posted @ 2018-09-11 07:52 郭俊Jason 阅读(533) 评论(0) 推荐(0) 编辑

2017年12月21日

摘要: 本文结合实例介绍了 Thread Local 的原理与实现方法,并分析了其适用场景。 阅读全文
posted @ 2017-12-21 12:34 郭俊Jason 阅读(25396) 评论(5) 推荐(5) 编辑

2017年11月28日

摘要: 本文介绍了Kafka实现事务性的几个阶段——正好一次语义与原子操作。之后详细分析了Kafka事务机制的实现原理,并介绍了Kafka如何处理事务相关的异常情况,如Transaction Coordinator宕机。最后介绍了Kafka的事务机制与PostgreSQL的MVCC以及Zookeeper的原子广播实现事务的异同 阅读全文
posted @ 2017-11-28 21:56 郭俊Jason 阅读(10503) 评论(0) 推荐(2) 编辑
摘要: 本文介绍了Kafka Stream的背景,如Kafka Stream是什么,什么是流式计算,以及为什么要有Kafka Stream。接着介绍了Kafka Stream的整体架构,并行模型,状态存储,以及主要的两种数据集KStream和KTable。并且分析了Kafka Stream如何解决流式系统中的关键问题,如时间定义,窗口操作,Join操作,聚合操作,以及如何处理乱序和提供容错能力。最后结合示例讲解了如何使用Kafka Stream。 阅读全文
posted @ 2017-11-28 08:11 郭俊Jason 阅读(6329) 评论(0) 推荐(1) 编辑

2017年7月3日

摘要: 本文分析了HashMap的实现原理,以及resize可能引起死循环和Fast-fail等线程不安全行为。同时结合源码从数据结构,寻址方式,同步方式,计算size等角度分析了JDK 1.7和JDK 1.8中ConcurrentHashMap的实现原理。 阅读全文
posted @ 2017-07-03 08:27 郭俊Jason 阅读(1357) 评论(2) 推荐(1) 编辑

2017年4月25日

摘要: 本文从宏观架构层面和微观实现层面分析了Kafka如何实现高性能。包含Kafka如何利用Partition实现并行处理和提供水平扩展能力,如何通过ISR实现可用性和数据一致性的动态平衡,如何使用NIO和Linux的sendfile实现零拷贝以及如何通过顺序读写和数据压缩实现磁盘的高效利用。 阅读全文
posted @ 2017-04-25 06:44 郭俊Jason 阅读(5797) 评论(0) 推荐(4) 编辑

2016年8月23日

摘要: 本文介绍了Java中的四种I/O模型,同步阻塞,同步非阻塞,多路复用,异步阻塞。同时将NIO和BIO进行了对比,并详细分析了基于NIO的Reactor模式,包括经典单线程模型以及多线程模式和多Reactor模式。 阅读全文
posted @ 2016-08-23 07:03 郭俊Jason 阅读(4431) 评论(6) 推荐(1) 编辑

导航