摘要: 我用的thrift模式: 网络编程模式 arg.selectorThreads(Integer.parseInt(mProp.get("LogServerSelectorThread").toString()));这步骤是启动了多个线程,每个线程里面有个bocking queue队列,队列元素是so 阅读全文
posted @ 2018-11-25 14:30 狂奔的骆驼 阅读(369) 评论(0) 推荐(0) 编辑
摘要: hive自带的sql查询最终是转化成mapreduce任务进行。 如何转换的呢? 分为如下几步: 1、antlr词法解析器解析SQL成Abstract Syntax Tree即AST树 2、基于AST树解析成若干query block即QB,QB和QBParseInfo其实是hive源码里面的Bea 阅读全文
posted @ 2018-11-23 11:14 狂奔的骆驼 阅读(2495) 评论(0) 推荐(0) 编辑
摘要: 总结一下第一代大数据计算Hadoop的mapreduce和第三代大数据计算Spark mapreduce 具体对比如下表: 阅读全文
posted @ 2018-11-23 11:06 狂奔的骆驼 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 如何设计大数据架构 最近在反思最近两年来做了什么。突然想到一个问题: 如果由我重新设计一套大数据系统的架构,我该如何设计呢? 具体如何设计估计3天都讲不完。 架构设计对一套系统会产生深远影响,有些影响甚至是不可逆,或者重构成本很高。 今天就重点讲讲需要考量的方方面面吧,具体如何设计日后再谈。 采集系 阅读全文
posted @ 2018-11-22 23:40 狂奔的骆驼 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 做采集系统有两年了,第一年主要的设计和代码逻辑是别人写的。但是问题很多。 第二年真正由我接手后,修复了大量的业务逻辑。 遇到的一个核心问题就是数据丢失。最近客户也在问我采集上报的机制,是否使用长连接?我自己联想到套接字的reuse问题。 由于所作的这个项目有两千万的用户量,高峰期tcp连接达到150 阅读全文
posted @ 2018-11-21 23:11 狂奔的骆驼 阅读(564) 评论(0) 推荐(0) 编辑
摘要: 概述 关于树的概念很多,B树,B+树,红黑树等等。 但是你去翻翻百度百科,或者用百度或者谷歌搜索一下中文的树结构的介绍,全都是狗屁。没有哪个中文网站是真正精确解释树的定义的,尤其是百度百科。 下面我要根据我自己的学习和理解。给出一些中文的定义。 什么是二叉树(Binary Tree) 二叉树是每个节 阅读全文
posted @ 2018-11-20 22:30 狂奔的骆驼 阅读(1623) 评论(0) 推荐(0) 编辑
摘要: hadoop分布式文件系统HDFS文件系统发展到现在已经是3.0以上版本了,目前我常用的版本还是2.6.4,由于非常稳定,从来没有崩溃过。中间还迁移过一次。 这篇主要介绍namenode同步机制,主要分为6大步骤,如下图: 阅读全文
posted @ 2018-11-20 21:24 狂奔的骆驼 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 抽象类和接口的使用就是is和has的区别。 比如男人,小孩,女人相对于人,就是is关系,除了说话,走路,体型之外有很多相似之处,共性较多,这个时候使用abstract class就可以简化代码逻辑。 再比如人,汽车,飞机相对于移动这个动作,就是has关系,接口强调的是个别的某种行为,共性较少,这个时 阅读全文
posted @ 2018-11-19 22:13 狂奔的骆驼 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 通用参数优化 -Xms35g 堆的最大内存 -Xmx35g 堆的最小内存 -Xss1024 线程栈内存大小,默认是1024单位是KB -Xmn10g 新生代内存大小 -XX:NewRatio=4 新生代(Eden和两个Survivor)和老年代内存大小比例 -XX:SurvivorRatio=4 E 阅读全文
posted @ 2018-11-15 17:24 狂奔的骆驼 阅读(687) 评论(0) 推荐(0) 编辑
摘要: [dig@dm5 ~]$ java -XX:+PrintFlagsFinal [Global flags] uintx AdaptiveSizeDecrementScaleFactor = 4 {product} uintx AdaptiveSizeMajorGCDecayTimeScale ... 阅读全文
posted @ 2018-11-13 14:57 狂奔的骆驼 阅读(1405) 评论(0) 推荐(0) 编辑
摘要: G1垃圾回收器介绍 首先要搞清楚G1垃圾回收的过程 主要分为下面4个步骤: 初始标记(Initial Marking) 由于常规标记对象是否直接关联到GC roots,过程简单,停顿时间短 并发标记(Concurrent Marking) 由于可达性性分析,存在较长停顿 最终标记(Final Mar 阅读全文
posted @ 2018-11-13 12:29 狂奔的骆驼 阅读(2750) 评论(0) 推荐(0) 编辑
摘要: 停顿现象 很多网上资料都会说到JAVA语言的一个劣势就是垃圾搜集时,整个进程会停顿。 到底是不是呢? 答案是确实存在。 为什么会停顿 垃圾收集的一个前提是要判断进程中的对象哪些是垃圾内存,哪些不是。 怎么判断呢,JVM里面使用了一种叫可达性分析的技术来枚举根节点。 一言以蔽之,JVM的内存空间里的若 阅读全文
posted @ 2018-11-11 12:19 狂奔的骆驼 阅读(867) 评论(0) 推荐(0) 编辑
摘要: 概念 垃圾收集是很多使用JAVA语言的IT从业者了解得比较少的地方。 但是涉及性能时非常重要。大公司面试除了算法,这部分也是会经常考察的地方。 《深入理解JAVA虚拟机》一书中讲到JVM的垃圾收集算法和垃圾收集器。 垃圾收集算法分为: 1、标记清除算法 通常用在回收老年代内存。 最早的搜集算法就是标 阅读全文
posted @ 2018-11-11 12:11 狂奔的骆驼 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 关于技术的反思 自以为搞技术多年,究竟什么才是技术? 掌握一种或者多种编程语言? 熟练Linux各类神操作? 深入研究某几种开源软件源码? 或者是根据业务诉求进行组件拼装,定义各种规范协议,美其名曰架构设计? 这些东西其实如果你会,别人迟早都可以做,只是时间问题,这还叫技术吗? 什么才是真正的技术呢 阅读全文
posted @ 2018-11-10 12:08 狂奔的骆驼 阅读(712) 评论(0) 推荐(0) 编辑
摘要: 一、java内存分区 一共分为6个区域: 1、方法区(也叫非堆区)和堆区,另外还有直接内存即堆外内存,这三个区域都是线程共享的内存区域。 2、虚拟机栈,本地方法栈,程序计数器。 这6个区域,出了程序计数器区域不可能发生内存问题,其他5个区域都可能发生内存问题。 这里指的内存问题包括内存泄漏和内存溢出 阅读全文
posted @ 2018-11-08 18:37 狂奔的骆驼 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 概念回顾 昨晚看到数据结构中的树部分,现在回顾一下。 树是数据结构里面比较复杂,也比较有趣的一种。 对应的名称很多,比如二叉树,红黑树,B树,B+树等等 对应排序也挺多,前序,中序等等。 排序回顾 最近看到《算法设计与应用》书里面提到书的排序方式印象较深。 分为前序,中序,后序,欧拉环游排序等等,他 阅读全文
posted @ 2018-11-08 17:56 狂奔的骆驼 阅读(167) 评论(0) 推荐(0) 编辑
摘要: HashTable, HashMap,TreeMap区别 HashTable, HashMap主要区别在于线程安全性,HashTable是线程安全的,另外继承的类不一样,HashTable继承自Dictionary,实际使用效果差不多。HashTable不允许空值,HashMap允许空值 Hashm 阅读全文
posted @ 2018-11-05 23:59 狂奔的骆驼 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 这本书是目前市面上唯一的一本关于flink的中文书。 作者是flink的创始团队的核心成员弗里德曼,翻译者是阿里巴巴的员工王邵翔。 这本书没有将flink的原理,API,具体用法等等,而是讲fink的使用场景、架构、用途,优势。应该说是非常适合入门和调研的一本书。 书很薄,但我觉得很值。 第一章、 阅读全文
posted @ 2018-11-04 12:53 狂奔的骆驼 阅读(1132) 评论(0) 推荐(0) 编辑
摘要: 最近在研究flink,发现较新版的flink支持sql,这下好了,我用spark两年了,对用法和性能算是踩过一些坑了。 听说flink挺快的,那么flinkSQL和sparkSQL到底哪个快呢? 想必很多人也想知道吧,那就拿数据说话(虽然不是自己做的基线测试,但好歹也找了好久) 下图是hive, s 阅读全文
posted @ 2018-10-30 18:50 狂奔的骆驼 阅读(11288) 评论(3) 推荐(0) 编辑
摘要: clone官方1.6.2版本flink,成功编译。(一般PC还真跑不动,我是用服务器编译的) 编译完后,略微修改了一下启动脚本后,成功跑起来。 sh bin/start-cluster.sh 红色部分是我改过的地方: vim start-cluster.sh bin=`dirname "$0"`bi 阅读全文
posted @ 2018-10-30 18:33 狂奔的骆驼 阅读(2341) 评论(0) 推荐(0) 编辑