Home

Flink关注点

记录一下个人看了一些Flink文章后的理解与个人关注点, Overview 基于Flink 1.4。 先来看看大数据计算引擎的发展路线, 第一代,hadoop的MapReduce 第二代,DAG框架的Tez,Oozie 第三代,Job内部的DAG支持,以及强调实时计算,spark 第四代,迭代,流,批,SQL 基本概念 source -> transformation -> sink stream是算子的中间结果数据 transformation是一个操作,它对一个或多个输入stream进行计算处理,输出一个或多个结果stream streaming dataflow是一个执行中的flink程序,启动于一个或多个source,结束于...

Read more

深度学习Note

记录一下个人看了王小草深度学习笔记之后的理解, Overview 先来看看人工智能Artificial intelligence,数据挖掘Data Mining,机械学习Machine learning,深度学习Deep learning之间的关系, AI Set 人工智能知识图谱 1 逻辑回归 首先,将特征输入到一个一元或多元的linear函数z中, Linear 然后将这个线性函数z作为一个输入,输入到sigmoid函数g(z)中, Sigmoid 值域 根据图形,可以更清晰地看到, 当z < 0,则g(z) < 0.5 当z > 0,则g(z) > 0.5 因此它可以作为一个...

Read more

Spark Submit 2017 SF Note

写一下看了部分spark submit 2017 ppt后的个人理解, Apache-Kylin–Speed-Up-Cubing-with-Apache-Spark-with-Luke-Han-and-Shaofeng-Shi-iteblog,kylin利用spark来加速之前MR的cube build过程 很多关于IoT的spark应用。ETL,real-time-analysis A-Deep-Dive-into-Spark-SQL’s-Catalyst-Optimizer-with-Yin-Huai-iteblog,spark SQL优化项 Apache-Spark-and-Apache-Ignite–Where-Fast-Data-Meets-the-IoT...

Read more

Netflix单key存储的架构演进

记录一下看了Netflix实战指南:规模化时序数据存储后关于其中的单key存储的架构演进理解, Overview Netflix 的云原生存储架构使用了 Cassandra存储观看历史数据,考虑如下, 支持对时序数据的建模 在当前业务数据上,读写操作比是1:9。而Cassandra提供了高效写操作API,适用于当前的写密集型业务应用 CAP权衡,当前业务更偏向于C。而Cassandra支持可调整的一致性,有助于实现CAP上的权衡 演进路线总结, v1:一个用户一个key,key后面跟一连串的用户观影记录信息data。当data少时,可以快速定位<userId, data[record1, …, recordN]>;水平扩展性好。但是当data很大...

Read more

Java编译与反编译

记录一下看了Java开发必会的反编译知识后关于Java的编译、反编译、字节码、源代码、机器码的note, Overview 源码/源代码/Source code/.java <-javac-> 字节码/Bytecode/.class <-JVM-> 机器码/Machine code/原生码/Native Code 编程语言 编程语言(programming language)分为, 低级语言,low-level language,直接用计算机指令编写程序 机器语言,machine language 汇编语言,assembly language 高级语言,high-level language,用...

Read more

什么是架构师?

长达以后想做什么? 我要成为一名出色的架构师! —- 摘自漫画:什么是架构师? 记录一下看了这篇漫画的摘要, 未来故事 从前,有一个赶路的人路过一片工地,看到三个年轻人在工地上搬砖。于是,他问其中一个人: 小伙子,你在做什么 答曰搬砖 砖厂老板 小伙子,你在做什么 搭建一座高大雄伟的教堂 架构师 小伙子,你在做什么 构建一座繁华而又美丽的城市 市长 什么是架构师? 架构师英文Architect,这个词源于建筑学。软件工程当中的架构师和建筑工程当中建筑师有许多相通之处,都是负责产品宏观的架构设计。 在一个团队里,架构师充当了技术Leader的角色,不仅要完成项目的整体设计和规划,还要带领技术团队一起...

Read more

算法漫画阅读摘要

记录一下个人对于公众号算法爱好者和程序员小灰的阅读摘要, B-树(B-tree) B-树就是B树,中间的横线并不是减号,B减树的叫法是错误的 二叉查找树的时间复杂度是O(logN),但是数据库索引是存储在磁盘上的,当数据量比较大的时候,索引的大小可能就有几个G。利用索引查询的时候,一般不能将其全部加载到内存,而是逐一加载每一个磁盘页,这里的磁盘页对应着索引树的节点! 存储样式 决定磁盘IO次数的是索引树的高度(最下面的叶子节点高度是1,根节点的深度是1),为了减少磁盘IO的次数,就需要把原来瘦高的树结构变得矮胖 二叉查找树 三阶B-树 每一个节点最多包含k个孩子,k称为B-树的阶,k的大小取决于磁盘页的大小。特征: roo...

Read more

Mastering Bitcoin V2 Note

Overview 记录一下个人关于这本书的阅读, 精通比特币 第二版 Mastering Bitcoin 2nd Edition 比特币单位 1聪比特币/satoshi/sat,一亿分之一比特币 1毫比特币/millibit/mBTC,一千分之一比特币 1比特币/BTC 网络最大数量,2100万BTC 比特币核心架构 区块结构 block size block header version previous block hash merkle root timestamp difficulty target nonce tran...

Read more

Mastering Bitcoin V1 Note

Overview 记录一下个人关于这本书的阅读, 精通比特币 第一版 Mastering Bitcoin 1st Edition 前言 大自然向我们证明,去中心化体制具有弹性并能创造出意想不到的复杂性和难以想象的精妙,而不需要中央集权体制、等级制度或复杂的组织结构。 快速术语检索 地址/比特币地址(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串字符和数字组成,以阿拉伯数字“1”开头。就像别人向你的email地址发送电子邮件一样,他可以通过你的比特币地址向你发送比特币。 区块,一个区块就是若干交易数据的集合,它会被标记上时间戳和之前一个区块的独特标记。区块头经过哈希运算后会生成一份工作量证明,从而验证区块中的交易。...

Read more

基于elasticsearch suggester的中文检索建议实现

写一下个人spark实现的es completion suggester, Overview 检索建议suggestion(补全completion和纠正correction)是提升用户搜索体验的一个重要功能,通过协助用户输入更精准的关键词,提高后续全文检索阶段文档匹配度。 检索关键词补全 检索关键词纠正 补全功能 在电商平台(淘宝、京东、Amazon等)上,检索建议补全可以帮助用户更准确、更迅速地定位到潜在购买商品。例如,用户输入空气,电商平台根据用户的历史行为(login user)或者平台总体推荐结果(non-login user),给出有关空气的一系列检索关键词(如空气质量、空气刘海、空气清新剂等),该检索关键词可以是简体、繁体、全拼、首字母拼音...

Read more

JVM架构体系与GC命令总结

写一下个人看了些JVM和GC文章之后的认识和总结, Overview Java虚拟机Java virtual machine(JVM) 是物理机器的软件实现。java编译器javac将源码文件.java编译成字节码文件.class,然后这个字节码文件.class被放到JVM中,装载并执行字节码文件.class。JVM架构图如下, JVM Architecture JVM架构体系 垃圾回收(garbage collection):负责回收堆内存heap中没有被使用的对象 判断对象是否存活,可达性检测 引用计数算法:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,当引用失效时,计数器值就...

Read more

elasticsearch文章收集与心得记录

为了更好地理解与排版,部分文章标题可能会有修改 降序记录 eBay Elasticsearch 性能优化实战-中文篇 number?keyword?傻傻分不清楚 —- 数值类型(number)的数据结构变成Block k-d tree —- query/filter执行顺序不是按照写入顺序,而是内部根据cost()估算每个查询的代价,选择代价最低的query/filter开始,在其圈定的docid集合上生成一个迭代器 —- indexOrDocValuesQuery对rangeQuery的优化 —— Rang查询的数据集大小,以及要做的合并操作类型,决定用哪种Query。 如果Range的代价小,可以用来引领合并过程,就走PointRangeQuery,直接构造bitse...

Read more

20180922天门山100

记录一下个人的这次张家界越野之旅, Overview 2018潇湘100天门山国际越野赛 群里告知有一个比赛,点进去看了看,是潇湘的越野100k。潇湘,一个对于越野有点特别的名字。个人记忆中这是一个有关水里的,吃着的,山里的词。那正好,既然是山里的,那就去体验一下这个词的切实反馈。 赛前 报名 http://iranshao.com/reg/races/2018xiaoxiang100 官网 http://www.yufengtiyu.cn/RecentEvents.aspx?id=86 悬索桥——一桥飞渡,天涧变通途,via Internet 审核通过 赛事日程安排 参赛流水 9月20号晚上到9月25号早上,4天在张家界,记录一...

Read more

HBase架构的重要模块与动作

写一下个人看了hbase文章后的一些看法, Overview hbase通过row key来查找相应的列,即正排,如下图, hbase数据结构 es可以通过对每个field做倒排(基于Lucene),从而快速查找对应field(field可以是全匹配,可以是切词后的全匹配,可以是模糊匹配等)的所属docSet。类似于hbase,如果使用docId在es中直接查找的话,就是正排,即docId = row key,如下, doc1(doc1id) -> field1, field2, field3, ... doc2(doc2id) -> field1, field2, field3, ... 其中hbase与es有不少相似之处,如WAL, failove...

Read more

20180121香港马拉松

官网 http://chi.hkmarathon.com/Home_19613.htm 比赛路线 http://chi.hkmarathon.com/Event_Info/Routing.htm 比赛路线 机票 done 酒店 done 行程规划 done 记录一下自己这次港马,20日中午到香港机场,而其中一个行李箱没有随本机到,箱子里面是这次跑步的衣服装备。与地勤沟通后,行李会搭乘下午4点到港的航班到然后再送到酒店礼宾部,结果是晚上11点半才到手上,中间致电咨询多次,地勤一再保证港人嘅牙齿当金使,哈哈。本来想当晚早点睡,但是被行李拖延到了0am,整理好装备,别上号码布之后,就去睡觉。然而一直睡不着,辗转辗转,不知道是什么原因,没有困意,辗转到1am...

Read more