摘要: 本篇文章是《程序员修炼之道》第二章的笔记,总结了高效程序员需要遵守的一些原则和常用的开发模式,对我们有非常重要的指导意义。建议每个程序员都应该学习并掌握这些原则。如果大家觉得这个系列文章有价值,我们可以组织一次抽书的活动,鼓励大家从原文学习。 DRY 原则 软件开发过程无时无刻都伴随着维护,如果项目 阅读全文
posted @ 2019-08-13 08:30 渡码 阅读(748) 评论(0) 推荐(1) 编辑
摘要: 本篇文章是阅读《程序员修炼之道——从小工到专家》第一章 “注重实效的哲学” 的笔记。有了一些开发经验后再看这本书会比较有感触,本书第一章讲了一些对程序员最基本的要求,如果你正在进行职业规划,那么这本书有很好的参考意义。下面我结合自己的经历聊聊第一章的内容。 责任 责任是做一切事情得前提,小到对自己的 阅读全文
posted @ 2019-08-05 08:36 渡码 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 最近在做大数据处理时,遇到两个大表 join 导致数据处理太慢(甚至算不出来)的问题。我们的数仓基于阿里的 ODPS,它与 Hive 类似,所以这篇文章也适用于使用 Hive 优化。处理优化问题,一般是先指定一些常用的优化参数,但是当设置参数仍然不奏效的时候,我们就要结合具体的业务,在 SQL 上做 阅读全文
posted @ 2019-07-16 08:32 渡码 阅读(4301) 评论(8) 推荐(4) 编辑
摘要: 小结 从 19 年开始决定写博客,到现在半年的时间已经在博客园写了 24 篇原创文章。虽然数量不多,基本上每周一篇的节奏,但还是有点小坚持带来的喜悦。虽然没什么人气,但积累积累也算是对自己所做的事情一个总结、思考,同时也提高一下自己的写作能力。 这半年除了每周写一篇博客,下班时间还会在知乎上做一些问 阅读全文
posted @ 2019-07-12 08:22 渡码 阅读(913) 评论(2) 推荐(2) 编辑
摘要: Protoc Buffer 是我们比较常用的序列化框架,Protocol Buffer 序列化后的占空间小,传输高效,可以在不同编程语言以及平台之间传输。今天这篇文章主要介绍 Protocol Buffer 使用 VarInt32 减少序列化后的数据大小。 VarInt32 编码 VarInt32 阅读全文
posted @ 2019-07-02 08:32 渡码 阅读(1265) 评论(0) 推荐(1) 编辑
摘要: 说起 RPC (远程过程调用),大家应该不陌生。随着微服务、分布式越来越流行,RPC 应用越来越普遍。常见的 RPC 框架如:Dubbo、gRPC、Thrift 等。本篇文章不是介绍各种 RPC 的使用和对比。而是深入剖析一个 RPC 包含哪些内容。我最近在 Hadoop 的源码,正好把 Hadoo 阅读全文
posted @ 2019-06-24 08:27 渡码 阅读(925) 评论(3) 推荐(0) 编辑
摘要: 流处理是 Flink 的核心,流处理的数据集用 DataStream 表示。数据流从可以从各种各样的数据源中创建(消息队列、Socket 和 文件等),经过 DataStream 的各种 transform 操作,最终输出文件或者标准输出。这个过程跟之前文章中介绍的 Flink 程序基本骨架一样。本 阅读全文
posted @ 2019-06-19 08:23 渡码 阅读(777) 评论(0) 推荐(0) 编辑
摘要: 定义 在数据分析场景中,我们可能会遇到这样的问题。例如,我们要做一个推荐系统,如果我们用批处理任务去做,一天或者一小时的推荐频次明显延迟太大。如果用流处理任务,虽然延迟的问题解决了,然而只用实时数据而没有历史数据,那么准确性就无法保证。因此需要结合批处理的历史数据和流处理的实时数据进行处理,既能保证 阅读全文
posted @ 2019-06-13 08:33 渡码 阅读(1609) 评论(0) 推荐(1) 编辑
摘要: 上一篇介绍了编写 Flink 程序的基本步骤,以及一些常见 API,如:map、filter、keyBy 等,重点介绍了 keyBy 方法。本篇将继续介绍 Flink 中常用的 API,主要内容为 指定 transform 函数 Flink 支持的数据类型 累加器 指定 transform 函数 许 阅读全文
posted @ 2019-06-10 12:50 渡码 阅读(1903) 评论(0) 推荐(1) 编辑
摘要: Flink使用 DataSet 和 DataStream 代表数据集。DateSet 用于批处理,代表数据是有限的;而 DataStream 用于流数据,代表数据是无界的。数据集中的数据是不可以变的,也就是说不能对其中的元素增加或删除。我们通过数据源创建 DataSet 或者 DataStream 阅读全文
posted @ 2019-06-03 12:52 渡码 阅读(1919) 评论(0) 推荐(0) 编辑