自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(413)
  • 资源 (1)
  • 收藏
  • 关注

转载 阅读源码的意义与方法

意义在我看来,阅读源码的意义在于学习优秀的「套路」。这里的「套路」所指范围很广,大到架构设计,小到可取的命名风格,还有设计模式、实现某类功能使用到的数据结构和算法等等。所谓高手,其实就是能比大部分人更早更快地掌握套路并熟练运用之人。埋头在自己的天地里耕芸固然也能逐渐进步和成长,但总会有时候会遇到一些场景,你苦思良久也无法做出良好的设计,总会有一些时候,纠结如何为一个变量命名让你停下飞速...

2018-07-19 16:04:08 852

转载 工作中如何做好技术积累

转载:https://tech.meituan.com/study_vs_work.html引言古人云:“活到老,学到老。”互联网算是最辛苦的行业之一,“加班”对工程师来说已是“家常便饭”,同时互联网技术又日新月异,很多工程师都疲于应付,叫苦不堪。以至于长期以来流传一个很广的误解:35岁是程序员工作的终点。如何在繁忙的工作中做好技术积累,构建个人核心竞争力,相信是很多工程师同行都在思考...

2018-06-02 11:45:11 1355 1

转载 Flink窗口全解析:三种时间窗口、窗口处理函数使用及案例

我们经常需要在一个时间窗口维度上对数据进行聚合,窗口是流处理应用中经常需要解决的问题。Flink的窗口算子为我们提供了方便易用的API,我们可以将数据流切分成一个个窗口,对窗口内的数据进行处理。本文将介绍如何在Flink上进行窗口的计算。一个Flink窗口应用的大致骨架结构如下所示:// Keyed Windowstream .keyBy(...) <- 按照一个Key进行分组 .window(...) &

2020-09-23 14:49:42 2745

转载 加速国内 Github 访问,下载,的9种方案!

https://mp.weixin.qq.com/s/ptFBjWXj88fsI3Oh6PghRA1. GitHub 镜像访问这里提供两个最常用的镜像地址:https://github.com.cnpmjs.orghttps://hub.fastgit.org也就是说上面的镜像就是一个克隆版的Github,你可以访问上面的镜像网站,网站的内容跟Github是完整同步的镜像,然后在这个网站里面进行下载克隆等操作。2. GitHub文件加速利用 Cloudflare Worker

2020-09-18 17:02:09 1637

原创 Flink重点学习笔记

Flink chain优点:为了更高效的分布式执行,Flink尽可能将operator的subtask链接(chain)在一起形成task。每个task在一个线程中执行。将operators链接成task是非常有效的优化:1、它能减少线程之间的切换。2、减少消息的序列化和反序列化。3、减少数据在缓冲区的交换。4、减少延迟的同时提高整体的吞吐量。subtask链接(chain)在一起的条件:1、用户没有禁用chain2、上下游的并行度一致3、下游节点的入度为1(也就是说下游节点没有来.

2020-08-31 22:15:04 495

原创 Flink调度数据 or 调度计算

https://mp.weixin.qq.com/s/mN4eQklYJAy4qXK3vhWK3Q对于任何一个分布式计算框架而言,如果数据和计算不在同一个节点,那么他们中间必须有一个需要移动到另一个所在的节点。如果把计算调度到数据所在节点,那就是调度计算,反之则是调度数据,SparkStreaming和Flink的实现是不同的。Spark的核心数据结构RDD包含几个关键信息,包括数据的分片(partitions)、依赖(dependencies)等,其中还有一个用于优化执行的信息就是preferred

2020-08-31 22:13:31 387

转载 Flink CheckPoint奇技淫巧 | 原理和在生产中的应用

https://mp.weixin.qq.com/s/XfEteYxUvFM4GCuRKbNfJA

2020-08-31 22:02:20 126

转载 Flink 如何保存状态数据

[部分译自]https://ci.apache.org/projects/flink/flink-docs-stable/ops/state/state_backends.html https://towardsdatascience.com/heres-how-flink-stores-your-state-7b37fbb60e1a[部分参考]https://www.infoq.cn/article/WkGozMQQExq6Xm5eJl1E https://ci.apache.org/pro

2020-08-31 21:55:42 6433 1

原创 flink1.10报错:akka.pattern.AskTimeoutException: Ask timed out on

flink1.10报错:akka.pattern.AskTimeoutException: Ask timed out on问题描述flink能正常启动,但是启动任务就失败,哪怕启动examples下面的示例程序也是报错报错内容 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20.

2020-08-08 16:45:26 1924

转载 Flink DataStream API 中的多面手——Process Function详解

https://mp.weixin.qq.com/s/SOCAE-t25DPVlQMxuOT0jw引言在Flink的时间与watermarks详解这篇文章中,阐述了Flink的时间与水位线的相关内容。你可能不禁要发问,该如何访问时间戳和水位线呢?首先通过普通的DataStream API是无法访问的,需要借助Flink提供的一个底层的API——Process Function。Process Function不仅能够访问时间戳与水位线,而且还可以注册在将来的某个特定时间触发的计时器(ti..

2020-07-23 22:02:56 776

转载 漫谈HBase Filter

初衷对数据库来说,满足业务多样化的查询方式非常重要。如果说有人设计了一个KV数据库,只提供了Get/Put/Scan这三种接口,估计要被用户吐槽到死,毕竟现实的业务场景并不简单。就以订单系统来说,查询给定用户最近三个月的历史订单,这里面的过滤条件就至少有2个:1. 查指定用户的订单;2. 订单必须是最近是三个月的。此外,这里的过滤条件还必须是用AND来连接的。如果通过Scan先把整个订单表信息加载到客户端,再按照条件过滤,这会给数据库系统造成极大压力。因此,在服务端实现一个数据过滤器是必须的。除了上

2020-06-30 20:38:41 433

转载 Flink数据类型和序列化

作者 | 马庆祥整理 | 毛鹤本文根据 Apache Flink 系列直播整理而成,由 Apache Flink Contributor、360 数据开发高级工程师马庆祥老师分享。文章主要从如何为 Flink 量身定制的序列化框架、Flink 序列化的最佳实践、Flink 通信层的序列化以及问答环节四部分分享。为 Flink 量身定制的序列化框架为什么定制?为什么要为 Flink 量身定制序列化框架?大家都知道现在大数据生态非常火,大多数技术组件都是运行在 JVM 上的,Flink 也

2020-06-29 22:10:58 569

转载 Flink 作业执行深度解析

作者 | 岳猛整理 | 毛鹤本文根据 Apache Flink 系列直播课程整理而成,由 Apache Flink Contributor、网易云音乐实时计算平台研发工程师岳猛分享。主要分享内容为 Flink Job 执行作业的流程,文章将从两个方面进行分享:一是如何从 Program 到物理执行计划,二是生成物理执行计划后该如何调度和执行。Flink 四层转化流程Flink 有四层转换流程,第一层为 Program 到 StreamGraph;第二层为 StreamGraph 到 JobGr

2020-06-29 21:21:38 315

转载 如何正确使用 Flink Connector

董亭亭快手 实时计算引擎团队负责人董亭亭,快手大数据架构实时计算引擎团队负责人。目前负责Flink引擎在快手内的研发、应用以及周边子系统建设。2013年毕业于大连理工大学,曾就职于奇虎360、58集团。主要研究领域包括:分布式计算、调度系统、分布式存储等系统。本文主要分享 Flink connector 相关内容,分为以下三个部分的内容:第一部分会首先介绍一下 Flink Connector 有哪些。第二部分会重点介绍在生产环境中经常使用的 kafka connector 的基本的原理以及使用方

2020-06-28 21:54:32 988

转载 Flink Runtime 核心机制剖析

1. 综述本文主要介绍 Flink Runtime 的作业执行的核心机制。本文将首先介绍 Flink Runtime 的整体架构以及 Job 的基本执行流程,然后介绍在这个过程,Flink 是怎么进行资源管理、作业调度以及错误恢复的。最后,本文还将简要介绍 Flink Runtime 层当前正在进行的一些工作。2. Flink Runtime 整体架构Flink 的整体架构如图 1 所示。Flink 是可以运行在多种不同的环境中的,例如,它可以通过单进程多线程的方式直接运行,从而提供调试的能力。

2020-06-28 21:28:30 176

转载 Apache Flink 零基础入门教程(六):状态管理及容错机制

作者:孙梦瑶整理:韩非本文主要分享内容如下:状态管理的基本概念;状态的类型与使用示例;容错机制与故障恢复;一.状态管理的基本概念1.什么是状态首先举一个无状态计算的例子:消费延迟计算。假设现在有一个消息队列,消息队列中有一个生产者持续往消费队列写入消息,多个消费者分别从消息队列中读取消息。从图上可以看出,生产者已经写入 16 条消息,Offset 停留在 15 ;有 3 个消费者,有的消费快,而有的消费慢。消费快的已经消费了 13 条数据,消费者慢的才消费了 7、8 条数据。如何

2020-06-27 22:30:02 169

转载 Flink DataStream API编程指南

Flink DataStream API主要分为三个部分,分别为Source、Transformation以及Sink,其中Source是数据源,Flink内置了很多数据源,比如最常用的Kafka。Transformation是具体的转换操作,主要是用户定义的处理数据的逻辑,比如Map,FlatMap等。Sink(数据汇)是数据的输出,可以把处理之后的数据输出到存储设备上,Flink内置了许多的Sink,比如Kafka,HDFS等。另外除了Flink内置的Source和Sink外,用户可以实现自定义的Sou

2020-05-31 22:41:30 293

原创 github访问加速

对于国内的用户,下载 github 上的代码可能比较慢,可以在/etc/hosts 中增加如下配置, 可以显著提升 github 的下载速度:151.101.72.133 assets-cdn.github.com151.101.73.194 github.global.ssl.fastly.net192.30.253.113 github.com11.238.159.92 git.node5.mirror.et2sqa如果使用 Windows 系统,则是配置在“C:\Windows\Sys

2020-05-23 12:46:33 3735

转载 Apache Flink 进阶(一):Runtime 核心机制剖析

1. 综述本文主要介绍 Flink Runtime 的作业执行的核心机制。首先介绍 Flink Runtime 的整体架构以及 Job 的基本执行流程,然后介绍在这个过程,Flink 是怎么进行资源管理、作业调度以及错误恢复的。最后,本文还将简要介绍 Flink Runtime 层当前正在进行的一些工作。2. Flink Runtime 整体架构Flink 的整体架构如图 1 所示。Flink 是可以运行在多种不同的环境中的,例如,它可以通过单进程多线程的方式直接运行,从而提供调试的能力。它也可以运

2020-05-21 23:36:30 216

原创 Apache Flink 的定义、架构及原理

作者:陈守元 & 戴资力整理:闵阁陈守元(巴真)阿里巴巴高级产品专家嘉宾简介:阿里巴巴实时计算团队产品负责人,2010年毕业即加入阿里集团参与淘宝数据平台建设,近10年的大数据从业经验,开源项目Alibaba DataX发起人,当前负责阿里实时计算产品Flink的规划与设计,致力于推动Flink成为下一代大数据处理标准。戴资力(Gordon Tai)Apache Flink PMC ,Ververica Software Engineer嘉宾简介:戴资力(Go..

2020-05-20 23:13:40 641

转载 RDD、DataFrame、DateSet基本操作

​一,RDD,DataFrame和DataSetDataFrame参照了Pandas的思想,在RDD基础上增加了schma,能够获取列名信息。DataSet在DataFrame基础上进一步增加了数据类型信息,可以在编译时发现类型错误。DataFrame可以看成DataSet[Row],两者的API接口完全相同。DataFrame和DataSet都支持SQL交互式查询,可以和 Hive无缝衔接。DataSet只有在Scala语言和Java语言的Spark接口中才支持,在Python和R语言接口只支

2020-05-14 23:24:34 417

转载 SparkSQL的自适应执行---Adaptive Execution

1 背景本文介绍的 Adaptive Execution 将可以根据执行过程中的中间数据优化后续执行,从而提高整体执行效率。核心在于两点 执行计划可动态调整 调整的依据是中间结果的精确统计信息 2 动态设置 Shuffle Partition2.1 Spark Shuffle 原理如上图所示,该 Shuffle 总共有 2 个 Mapper 与 5 个 Reducer。每个 Mapper 会按相同的规则(由 Partitioner 定义)将自己的数据分为五份。..

2020-05-11 21:50:25 359

转载 Spark性能调优-总结分享

1、Spark调优背景目前Zeppelin已经上线一段时间,Spark作为底层SQL执行引擎,需要进行整体性能调优,来提高SQL查询效率。本文主要给出调优的结论,因为涉及参数很多,故没有很细粒度调优,但整体调优方向是可以得出的。环境:服务器600+,spark 2.0.2,Hadoop2.6.02、调优结果调优随机选取线上9条SQL,表横轴是调优测试项目,测试在集群空闲情况下进行,后一个的测试都是叠加前面测试参数。从数据可参数经过调优,理想环境下性能可提高50%到300%3、 下面为调.

2020-05-11 21:28:51 258

转载 Redis全攻略

0x00.前言Redis是跨语言的共同技术点,无论是Java还是C++都会问到,所以是个高频面试点。笔者是2017年才开始接触Redis的,期间自己搭过单机版和集群版,不过现在大一些的公司都完全是运维来实现的,我们使用者只需要在web页面进行相关申请即可,很多细节都被屏蔽了,这样当然很方便啦,不过我们还是要深入理解一下的。在工作几年中笔者接触过Redis、类Redis的SSDB和Pik...

2020-05-05 21:39:26 1354

转载 HBase2.0新特性

升级背景个推作为专业的数据智能服务商,在业务开展过程中存在海量的数据存储与查询的需求,为此个推选用了高可靠、高性能、面向列、可伸缩的分布式数据存储系统——HBase。然而,运行HBase老集群(使用HBase1.0版本)多年后,遇到了两大问题:各节点基础环境不一致;该集群的服务器运行多年已过保。而且随着个推业务量增长,性能方面也开始遇到瓶颈。经过综合评估,个推决定将老集群升级并...

2020-05-05 21:29:46 1014

转载 HBase实践 | HBase内核优化与吞吐能力建设

前言公司的hbase集群早先是基于社区1.2.4版本进行搭建的,在时延表现方面起初并不十分理想,受GC尖刺的影响非常严重,针对P99响应时延也只能给业务提供不高于100毫秒的SLA承诺,因此在公司层面接入hbase的业务普遍还是面向近线或者离线场景,而针对时延响应要求比较高的在线业务则没有办法提供能力支持。近期随着社区补丁的陆续合入,以及公司自研补丁的不断集成,hbase在吞吐能力表现方面...

2020-04-25 21:38:22 182

转载 漫谈数据仓库之拉链表

https://www.jianshu.com/p/799252156379全文由下面几个部分组成:先分享一下拉链表的用途、什么是拉链表。 通过一些小的使用场景来对拉链表做近一步的阐释,以及拉链表和常用的切片表的区别。 举一个具体的应用场景,来设计并实现一份拉链表,最后并通过一些例子说明如何使用我们设计的这张表(因为现在Hive的大规模使用,我们会以Hive场景下的设计为例)。 分析...

2020-03-25 15:50:46 793 1

转载 hive窗口函数总结

一:前言根据官网的介绍,hive推出的窗口函数功能是对hive sql的功能增强,确实目前用于离线数据分析逻辑日趋复杂,很多场景都需要用到。以下就是对hive窗口函数的一个总结附上案例。二:理解下什么是WINDOW子句(灵活控制窗口的子集)PRECEDING:往前FOLLOWING:往后CURRENT ROW:当前行UNBOUNDED:起点(一般结合PRECEDING,FOLLO...

2020-03-25 11:59:34 556

原创 hive优化总结

开发优化:1、分区、列剪裁。 在查询的过程中减少不必要的分区,只读取查询中所需要用到的列,而忽略其它列2、谓词下推。 SQL语句中where谓词逻辑提前执行,减少下游处理数据量select a,b from table_a join(select a,b from table_b where log_date='20200323') table_c...

2020-03-23 22:49:48 154

转载 redis探秘:选择合适的数据结构,减少80%的内存占用,这些点你get到了吗?

redis作为目前最流行的nosql缓存数据库,凭借其优异的性能、丰富的数据结构已成为大部分场景下首选的缓存工具。由于redis是一个纯内存的数据库,在存放大量数据时,内存的占用将会非常可观。那么在一些场景下,通过选用合适的数据结构来存储,可以大幅减少内存的占用,甚至于可以减少80%-99%的内存占用。利用zipList来替代大量的Key-Value先来看一下场景,在...

2020-03-23 21:01:56 186

原创 HBase基本知识介绍及典型案例分析

HBase基本知识介绍及典型案例分析https://yq.aliyun.com/articles/670748?spm=a2c4e.11153940.blogcont670939.13.5c547ea4uHTuj2

2020-03-08 23:18:51 209

原创 JVM调优

1、JVM调优目标:使用较小的内存占用来获得较高的吞吐量或者较低的延迟。程序在上线前的测试或运行中有时会出现一些大大小小的JVM问题,比如cpu load过高、请求延迟、tps降低等,甚至出现内存泄漏(每次垃圾收集使用的时间越来越长,垃圾收集频率越来越高,每次垃圾收集清理掉的垃圾数据越来越少)、内存溢出导致系统崩溃,因此需要对JVM进行调优,使得程序在正常运行的前提下,获得更高的用户体验和运行...

2020-03-08 22:30:58 141

原创 HBase RowKey与索引设计

http://www.nosqlnotes.com/technotes/hbase/hbase-rowkey/

2020-03-07 23:23:23 170

原创 Redis全攻略

文中列出来的考点较多并且累计达3w+字 ,因此建议读者收藏,以备不时之需,通过本文你将了解到以下内容:Redis的作者和发展简史Redis常用数据结构及其实现Redis的SDS和C中字符串的原理和对比Redis有序集合ZSet的底层设计和实现Redis有序集合ZSet和跳跃链表问题Redis字典的实现及渐进式Rehash过程Redis单线程运行模式的基本原理和流程Redis反应堆模式的原理和设计实...

2020-03-07 20:10:43 652

转载 偏向锁、轻量级锁

Java并发编程系列: Java 并发编程:核心理论 Java并发编程:Synchronized及其实现原理 Java并发编程:Synchronized底层优化(轻量级锁、偏向锁) Java 并发编程:线程间的协作(wait/notify/sleep/yield/join) Java 并发编程:volatile的使用及其原理 一、重量级锁  ...

2020-03-01 22:49:31 517

原创 redis面试题

Redis 是什么面试官:你先来说下 Redis 是什么吧!我:(这不就是总结下 Redis 的定义和特点嘛)Redis 是 C 语言开发的一个开源的(遵从 BSD 协议)高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等。它是一种 NoSQL(not-only sql,泛指非关系型数据库)的数据库。我顿了一下,接着说,Red...

2020-02-29 21:51:04 5821 5

原创 Java反射基本使用方法

https://juejin.im/post/5de3242e6fb9a071886675d7

2020-02-23 22:22:10 155

转载 实现一个线程安全的单例,前提是不能加锁

单例,大家肯定都不陌生,这是Java中很重要的一个设计模式。稍微了解一点单例的朋友也都知道实现单例是要考虑并发问题的,一般情况下,我们都会使用synchronized来保证线程安全。那么,如果有这样一道面试题:不使用synchronized和lock,如何实现一个线程安全的单例?你该如何回答?C类应聘者:可以使用饿汉模式实现单例。如:public class Singleton {...

2020-02-15 20:35:33 215 1

原创 美团后台篇中的ReentrantLock

https://juejin.im/post/5e37824ff265da3e3a5381b8?utm_source=gold_browser_extension

2020-02-15 20:21:39 227

原创 Java AQS源码解读

https://juejin.im/post/5e0b79886fb9a048381921e4?utm_source=gold_browser_extension

2020-01-21 23:25:00 404

numpy.exe、scipy.exe

windows下numpy和scipy最简单的安装方法

2016-01-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除