不积硅步,无以至千里
本仓库是对个人学习历程的一些记录,主要记录对某一个具体技术的学习、以及完成一些个人感觉有意思的小项目,具体的内容查考issues.
不积硅步,无以至千里
不积硅步,无以至千里
本仓库是对个人学习历程的一些记录,主要记录对某一个具体技术的学习、以及完成一些个人感觉有意思的小项目,具体的内容查考issues.
这样一个场景:如果 kafka 的一台 broker 宕机了,对其数据迁移完成后,现在该机器修复了,需要重新加入到 Kafka Cluster 中,但其目录下还有一些旧的 partition 目录,而 Kafka 不会自动删除这些并不使用的目录。
近端因为看 Flink SQL 相关,所以深入看了一下 Calcite 相关的内容,还好公司有一些关于 Calcite 的资料,自己在看的时候少走了很多弯路,而目前外网上关于 Calcite 的资料并不多,准备把自己看的内容整理一下,与大家共同学习。
计划整理的文章有:
个人一直比较喜欢听《晓松奇谈》,有几期讲到日本料理,中间提到过日本一些入选米其林的料理店,但在网上搜了一下发现大陆入选米其林的餐馆少之又少,而且目前只有上海加入米其林评选。
每当到一个地方去玩时,吃货们都会让当地人去推荐一些本地餐馆,或者在美团和点评上去找一些评价较好的餐馆,但是美团、点评上的餐馆即使按好评优先得到的排名依然不尽如人意。
因此,我就想写一个小程序,首先抓去美团点评上的评论数据,根据一个模型来得到这个餐馆的分数,根据分数获取一些餐馆米其林排名。
简答描述一下问题:
kafka topic 中的一个 partition,可以由来自多个 client 来写入。假设这个 topic 的时间戳索引设置的是 create time,在这个 topic 的 prodcuer client 中,有一个 client 网络延迟非常大,这种情况下,可能会遇到当前 partition 时间戳索引记录到100,下面突然来了一个时间戳为90的数据,这时候如果是直接忽略,那么可能导致 server 记录时间戳与 offset 对应不准确,这种情况应该怎么处理。
近段 Pulsar 在业内受到很多关注,Pulsar 与 Kafka 最核心的区别还是在于底层的存储层实现不同,Pulsar 使用的 BookKeeper,准备花2-4周时间对 BookKeeper 做一下相应的学习与调研,需要输出的文章:
准备2和3放在一起,总计一篇 BK 内核实现解析的文章。
ZooKeeper 的应用非常广泛,去年写过《ZooKeeper 学习笔记》的文章,但是并未涉及 ZooKeeper 内部机制的分析,未来 ZooKeeper 有以下几块内容需要学习:
在学习的过程中,主要以官方文档及《从Paxos到Zookeeper分布式一致性原理与实践》这本书为参考,按照这几个部分总结几篇文章,计划完成时间2017.10.31。
去年读了 11 本非技术类的书,之前说的读书笔记,也只完成了 3 篇,2020 年要加油,还是要多读一些书,正所谓 读万卷书,行万里路
今年看了 14 本书,看书的时间比以前少了很多。
计算是数据平台核心模块,这也是 Kafka 目前正在发力的地方,因为公司规模比较大,目前并不会去使用 Kafka Streams,但是这并不意味不需要去学习这块的内容,这个 issue 主要是为应用和学习 Kafka Steams 为开,再对 Kafka Steams 有了相应的深入学习之后,才能去更好地学习 KSQL 的相关内容(立于2018-06-09)。
跟几个朋友组建一个学习小组,大概每两周进行分享一次,目前主要集中在 Kafka、Spark Streaming、Flink、es 方向,听完分享后,应该自己操作实践一下,总结一下,这个 issue 用于总结相关的内容。
本 issue 主要是记录关于 Yarn 学习的内容
计划梳理三篇相应的博客:
深入了解 Yarn 在生产环境遇到过什么问题、以及相应的解决方案,有条件的梳理出相应的博客(抽象出来)。
预计时间:2018-08-28 ~ 2018-09-30(DONE,实际完成时间:2018-09-24);
预计:2018-09-20~2018-10-10
这里有一些关于 Kafka New Feature 的讨论,也是非常值得深入的:
这个issue主要讨论kafka事务性(包括不重不丢的机制)
今年打算,每个月至少输出一篇技术博客,争取超额完成目标,重点会涉及下面几块:
准备自己开发一个 hexo 的主题,随便学习一下前端的内容
作为技术人员,对技术还是要有一定的信仰,这里准备开一个新的系列 —— 为什么这么设计,开这个系列的原因有两个:
期望这个系列,每个月能至少输出一篇文章。
最近几年确实变动得懒惰了一些,连续两年没有写年终总结了,等到今年年底的时候再写吧,在这里简单列一些今年的计划:
工作这块依然是今年的重中之重,关于工作,个人是这么看的,在工作中需要锻炼出自己的职业化以及专业化能力,这两个维度对当前阶段的自己是比较重要的、是今年需要有所突破的方向,今年也打算给自己下面的这些年度目标:
生活上,就不多说了,主要是期望家人朋友健健康康,宝贝女生健健康康长大。
身体是革命的本钱,平时工作比较繁忙,这就更需要加强运动锻炼、提高免疫力和身体素质了。
户外,是自己的一个个人兴趣爱好,今年还是期望再去看看雪山、湖泊、银河星空,具体到时间再看安排了。
给自己定几个小目标:
上面也提到了一部分,这里简单列出一些计划:
这个系列以 0.10.2.0 为例(最新的版本 2.0.0 增加了事务性、重构了 Controller,代码变动很大)
Paper阅读要按照 如何阅读paper 的方法去阅读,每次要输出对应的文章,这个issue将会记录今年的Paper阅读情况。
序号 | Paper | Paper阅读完成时间 | 输出文章 | 备注 |
---|---|---|---|---|
1 | Apache Calcite: A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources | 2019.2 | ||
2 | The Dataflow Model: A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data Processing | 本月计划这篇 | ||
3 | Lightweight Asynchronous Snapshots for Distributed Dataflows | 2019.10.12 | Paper 阅读 | Flink Snapshot 算法的文章 |
4 | Real-Time Machine Learning: The Missing Pieces | 2019.10.18 | Paper 阅读 | |
5 | distributed snapshots determining global states of distributed systems | 2019.10.30 | Paper 阅读 | Chandy-Lamport 算法 |
Java NIO有著名的 epoll bug
K8s 已经逐渐演化成了云上的操作系统,几乎统一了调度领域,之前风极一时的 yarn、mesos 颓势已经显现,这里记录一下 k8s 相关的内容,后面也会抽时间重点学习一下。
这个 PR 是计划学习 TiDB 相关的内容,目前想介绍的 topic 有:
可以参考的文章:
在对 Kafka 的源码整体有一定的深入理解后,立下这个 issue,主要是想通过源码来学习 Kafka 是如何做容错设计,Kafka 这个系统在开源系统中稳定性是口碑非常高的,在代码页随时可以看到对各种异常的处理,这一点是很值得学习的。
以后的 paper 阅读记录都放在这个 issue 下,尽量每篇 paper 都输出一篇笔记或者一段话做总结,优秀、经典的论文要参考这篇文章( 一起读 paper )的方式来阅读。
下面有几个分布式相关的论文列表:
分布式系统的一些课程:
计划每半年左右定一个专题去学习,借鉴于这篇文章技术大牛养成指南,一篇不鸡汤的成功学实践的方法论,从今年的9.11到12.31准备去学习操作系统这个方向的内容,这也是自己年初给自己定的计划。
这里重点还是关注分布式系统的基础理论学习,要深入理解,如果可以的话,最好能够自己用代码实现一下。
这里也会涉及到分布式存储的内容。
近段时间会花时间研究 Flink 源码实现相关的内容,这个 issue 会记录相关的总结文章(2019.3.19立,计划半年左右把 core、runtime、table&sql 部分的内容梳理完,这个系列的文章大概会叫做【Flink 原理与实现分析】)。
最近半年工作比较忙,这个系列一直没有开始,上周 Flink 1.9 正式发布了,后面会以 Flink 1.9 的代码为例,整理一下 Flink 相关的内容,计划元旦前把几个核心的模块整理完。--- 2019.8.25 立
以 Apache Flink 1.9 的代码为例,来系统全面地分析一些 Flink 的实现,虽然 Google 上已经可以搜到很多 Flink 的内容,但是我还是准备自己再开一个系列,出发点有两点:
之前写过 Kafka 源码分析的系列博客,说实话,这个系列写得整体并不是很满意,其他同学看的时候并不是那么容易理解,所以对于 Flink 这个系列文章还是期望能完成得更好一些。对于这个系列的博客,希望做到以下几点:
工作中,面对更多的是应用场景,业务来驱动技术,此时理论知识的匮乏就会对技术有很大的限制,这也是很多公司招人的时候为什么喜欢招一些理论很扎实和广泛的学生,以后在工作可能接受到理论理论知识的机会会越来越少,所以给自己定一个任务,督促自己多学习一些基本理论与方法论,突破一些基本的限制。
要求:
开始时间:2017.6.11.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.