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