- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 Flink 基本工作原理
Flink是新的stream计算引擎,用java实现。既可以处理stream data也可以处理batch data,可以同时兼顾Spark以及Spark streaming的功能,与Spark不同的是,Flink本质上只有stream的概念,batch被认为是special stream。Flink在运行中主要有三个组件组成,JobClient,JobManager 和 TaskMa...
2018-06-30 18:11:43 51720 10
原创 Flink之Watermark实践
我们知道实时计算中,数据时间比较敏感,有eventTime和processTime区分,一般来说eventTime是从原始的消息中提取过来的,processTime是Flink自己提供的,Flink中一个亮点就是可以基于eventTime计算,这个功能很有用,因为实时数据可能会经过比较长的链路,多少会有延时,并且有很大的不确定性,对于一些需要精确体现事件变化趋势的场景中,单纯使用processTi...
2018-07-21 21:24:17 6353 12
原创 Druid和ES查询结果通用解析方法
做数据的同学相信大家对Druid和Es都不陌生,Druid可以说是一款基于时序的查询引擎,支持数据实时摄入,在数据摄入前指定维度和指标,提供基于时间层面的预聚合,Druid会把一个数据点当做一个实际发生的事实,在数据摄入后就不能修改。常被应用于一些实时的场景,比如对数据实时分时间段分组聚合。ES同样是一款高效的查询引擎,支持数据的批量导入,同样支持数据实时的摄入,也支持数据批量导入,相比于Drui...
2018-07-13 20:28:51 6462
原创 Yarn资源调度工作原理
由于Yarn良好的兼容性和扩展性,目前可以支持大部分数据引擎,所以了解Yarn的资源调度原理很有必要,Yarn主要由四个重要角色组成:ResourceManager:顾名思义资源管理器,主要负责资源管理和调度,ResourceManager主要由两个组件构成:ApplicationManager,主要负责两类工作:1.管理监控各个系统的应用,包括启动Applicaiton Master,监控App...
2018-07-01 19:13:00 12905 1
原创 简单实时计算方案(kafka+flink+druid/es)
最近在从事实时方面的工作,主要涉及到数据处理、加工及可视化,在采坑的过程中总结出一套比较简单的实时计算方案,供大家参考。主要涉及到几个组件,kafka,flink,redis,druid和es。相信大家对以上几个组件都比较熟悉了,这里就不细说了。我们从一个简单的需求,来说明各个组件是怎么协作的。 假如现在我们有一个电商平台,每天访问的流量巨大,主要访问流量都集中在衣服类、家电类页面...
2018-06-24 02:18:42 17587 9
原创 Spark核心数据模型RDD及操作
如今spark特别火,相信作为程序员的你也难以抵挡spark的魅力,俗话说万事开头难,学习spark需要一些准备工作,首先就是要搭建学习测试环境,spark非常人性化,一个简单的测试环境,只需要下载安装包,解压之后,运行spark_shell脚本就可以学习测试了,spark测试的经典页面如下图:这样就以本地模式启动了spark,可以进行学习了。如果有条件,可以搭建一个集群,建议用doc
2017-12-17 22:59:34 1767
原创 分布式如何实现session共享
最近,在工作中遇到一个问题,问题描述:一个用户在登录成功以后会把用户信息存储在session当中,这时session所在服务器为server1,那么用户在session失效之前如果再次使用app,那么可能会被路由到server2,这时问题来了,server没有该用户的session,所以需要用户重新登录,这时的用户体验会非常不好,所以我们想如何实现多台server之间共享session,让用户状态
2017-02-25 21:40:22 55879 8
原创 Spring AOP 介绍与应用
Spring的AOP想必大家都是比较清楚的,从spring 3.x版本出现之后,AOP的概念更加清晰,使用也更加方便。我看过很多书,讲解spring的aop,里面都有太多的概念,看到最后,还是不懂,有些云里雾里的,但是在使用了这么长时间以来,我觉得有些书上讲的太过繁琐了,或者说一下讲的太深入,太抽象让人难以理解。下面我会尽自己的可能让大家弄懂什么是AOP,并解释一个实际当中的应用实例,让大家真正理
2016-11-20 18:34:16 2656 1
原创 React+Reflux 实现组件间通信
写这篇文章,不是把官方的例子或者github的例子给大家敲一遍,而是想把自己学习遇到的问题,重点突出,让大家少走弯路。同时也方便自己日后温习使用。
2016-11-13 11:35:50 3045
原创 websocket+webrtc+tomcat 实现视频监考功能
client <!-- --> function onOpen(event) { document.getElementById('messages').innerHTML = 'Connection established'; } function onError(event) {
2015-08-26 01:03:09 5675 4
原创 悲观锁和乐观锁
前几天有人问了我一个问题,说如果数据库某些操作不用事务,那么又需要保持数据的一致性,那么该用什么方法替代事务。我就想到了悲观锁和乐观锁的思想,下面我解释一下在数据库中的悲观锁和乐观锁 1.悲观锁就是把数据库的一些操作,放在事务当中,依赖数据库的隔离级别,实现对数据修改的封锁,这样做数据一致性可以保持的很好,但是效率比较低下,悲观锁从程序的角度上将,就是不在应用程序中做任何保证数据
2015-08-24 02:27:49 1239
原创 母函数法解决整数划分
问题描述:把一个整数n划分成1到n的划分,例如3可以划分为1+1+1,1+2,3这三种划分,那么求n的划分数。解题思路: 可以把1,设为x的0次方:x^0 把1,设为x的1次方:x^1 .......把n,设为是x的n次方:x^n 那么1可能出现,0,1,2,3,4,5,6...n次,而2可能出现0,1,2,3,.......n/2次,3可能出现
2015-08-23 00:22:00 2630
原创 求一个数组的最大k个数(java)
问题描述:求一个数组的最大k个数,如,{1,5,8,9,11,2,3}的最大三个数应该是,8,9,11问题分析: 1.解法一:最直观的做法是将数组从大到小排序,然后选出其中最大的K个数,但是这样的解法,复杂度是O(logn*n),但是有时候并不需要排序,用简单的选择排序,或者是冒泡排序,那么就K轮的交换或者是选择,就可以得出结论,复杂度是O(n*k),当K很大的时候排序可能是更好的解
2015-08-18 16:57:32 4994
原创 字符串的全排列(java)
差不多半个月没写博客了,今天再写一篇。 字符串全排列相信大家都不陌生,对于我来说真的是写了又忘,忘了又写,所以决定写成一篇博客,废话不多说下面我来分析问题:问题描述:给定一个字符串写出它的全排列,例如ab,全排列是ab,ba,而abc的全排列abc,acb,bac,bca,cab,cba。解题思路:我们以具体例子分析,假如abc,如上所示,它的全排列是不是就是把字符串中每一
2015-08-09 15:25:41 3263
原创 java NIO原理和应用
之前做的一个项目,先开始用的是BIO(即阻塞式IO),然后因为一些性能问题,然后用NIO(即非阻塞式IO)替换了BIO。我们先说说BIO有什么缺点为什么要使用NIO:以java中TCP为例来讲解:我们知道,在客户端java调用connect方法会阻塞,调用read的时候也会阻塞也就是读不到就一直阻塞在那里,而服务器端呢,调用accept()方法会阻塞,调用read方法也会阻塞这样的话,
2015-07-22 18:09:20 2011 1
原创 动态代理工具类
我刚刚想着每次写动态代理的时候都会写很多的代码,有点不值得,所以我写了一个实现动态代理的工具类,用户可以用JDK动态代理也可以使用CGLIB动态代理,我的ProxyUtils中提供了三种开发动态代理的方式,在实际用的过程中,可以继承Intercepter这个抽象类实现在逻辑代码前后添加控制代码,如果控制代码返回true那么证明可以通过,如果控制代码返回false说明验证不通过,如果不通过那么就返回
2015-07-21 02:02:08 848
原创 TCP连接的TIME-WAIT状态
TIME-WAIT状态是TCP的11个状态其中之一,是发生在正常关闭TCP连接的时候发生的。如下图所示:在这幅图中我们可以明显看出,流程是这样的,显示主动发送一个FIN报文,然后接收到一个ACK报文,这样这一方的连接已经关闭,也就是不能再发送数据了,进入FIN_WAIT2状态,这个状态就是为了等待,被动关闭连接的一方,发送fin报文,在这期间可以接收来自对方的数据,等到被动关闭这一
2015-07-20 13:27:35 1286
原创 关于一个数组中两个数的和等于给定数的问题
今天我遇到这样一个问题,问题描述如下: 给出一个数组,再给定一个数target,如果数组中有两个数的和等于target,那么返回这两个数的索引,如果说有多对数都符合条件则返回第一对,返回的结果用一个长度为2的数组保存,并且返回的数组按升序排列: 如:[2,7,11,15] target=9,那么返回[1,2],这只是一个最普遍的例子,因为数组中可以有重复的数,
2015-07-14 21:30:20 5277 1
原创 求字符串内不包含重复字符的最长子串
今天我遇到一个问题,题目描述如下: 一个字符串,求这个字符串中不包含重复字符的最长子串的长度,如abba返回2,aaaaabc返回3,bbbbbbb返回1,等等上面是测试用例。那么我解决这个问题的思路有两种:第一种是,设一个头指针和一个尾指针,头指针指向,不包含重复字符子串的第一个字符,尾指针指向不包含重复子串的最后一个字符,用一个hashset保存已经出现过的字符,例如ab
2015-07-13 22:34:24 6712 1
原创 动态规划解决整数划分的问题
前几天去华为做机试,遇到一个整数划分的问题,题目是:现有1,2,5,10,20,50,100 元这几种钱币,问给定n元能有多少种分配方式。例如n=4时,有1+1+1+1 ,1+2+1 , 2+2 三种划分。我解决这道题是从网上看的方法,用的递归,但是悲剧的是测试用例运行超时,结果题没做出来,我直觉上觉得用动态划分可以解决,所以就研究了动态划分的解法。首先,先找出划分,每种组合以最大面值等
2015-07-08 01:00:34 3221
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人