Home

S4-IndicesModule

这个模块涉及检索相关的query builder的注入绑定, IndicesModule constructor query builder方法 query方法 其对应着query-DSL上的方法。 mapping数据类型 mapping 数据类型 其对应着mapping datatypes上的数据类型。 mapping元数据 mapping元数据 其对应着mapping metadata上的数据类型。 注入绑定项 IndicesModule所注入的服务 bind()中没有to(),这属于无目标绑定,无目标绑定是链接绑定的一种特例,在绑定的过程中不指明目标 Eager singleton...

Read more

S3-ClusterModule

这个模块主要将集群的默认配置加上(registerBuiltinClusterSettings和registerBuiltinIndexSettings),以及绑定一些集群服务(ClusterInfoService, DiscoveryNodeService, MetaDataCreateIndexService, RoutingService等)。 builtin cluster settings builtin index settings 最后通过interface的configure将以上2个settings的实例(DynamicSettings.class)绑定/注入到ClusterModule.class上。 bind setting a...

Read more

S2-DiscoveryModule

在new Bootstrap().setup()里实现了instance的初始化,其中主要一步是Node的new,在Node的构造函数当中,将很多module也挂靠上去了。下面简单看看DiscoveryModule模块。 DiscoveryModule constructor DiscoveryModule模块有2类,一个本地版/JVM版local,一个集群版zen。 LocalDiscovery 里面有几个重要的field,分别是ClusterService,RoutingService,ClusterState。自成master,final LocalDiscovery master = firstMaster。其中startInitialJoin用于启动触发,pu...

Read more

S0-Overview

希望用这个系列记录一下个人学习ES 2.4.7版本源码的总结,目录如下, 0. Overview 1. 分模块 2. Reference Overview 基于es2.4.7,分析其中的部分源码。 es core package 分模块 es package一共有26个,该系列先从下图的右侧的module开始分析, es_2.4.7 Reference zziawanblog naqin 飞来来 华安火车迷

Read more

<薛兆丰的经济学课>课程大纲

薛兆丰,薛老师自嘲说因为提议火车票涨价而被围观,个人觉得对于非经济学出身或者说不太懂经济学原理的,上下班通勤期间听听薛老师在得到上的音频课程《薛兆丰的经济学课》,眼界和思维应该会有所提升的,以下是摘自简介上的课程大纲, outline 个人不评论别的,只看自己能否在这个课程上有所斩获而已。

Read more

S1-Bootstrap模块

接下来开始Bootstrap模块的分析,目录如下, 1. Debug开启 2. Node启动 Debug开启 es的bootstrap如下, bootstrap模块 里面Elasticsearch.java上有main()方法,通过其来启动es集群。而main()方法的调用是通过elasticsearch.sh这个脚本里面的java -cp es集群的启动脚本 elasticsearch.sh 其中start是第一个手输入参;$@是脚本的所有参数汇总;<&-是输入重定向;&是设置为后台进程。 main入口 由此进入Elasticsearch的main(),初始化Bootstrap,之前的start在这里是一...

Read more

JetBrains IntelliJ IDEA个人设定

记录一下个人重置JetBrain的IntelliJ IDEA后的常用配置,当然最方便的仍是使用Import/Export Settings。 常用设置 Project Default Settings File Encodings Maven Line Separator Code line width Project Settings Font Shell替换 终端类型从Windows的cmd.exe替换为Linux的bash.exe Others Show Whitespaces enable...

Read more

Java集合与并发集合

画一下Java的集合collectionjava.util和并发集合java.util.concurrent的关系, jc_and_juc scala 非并发 不可变序列 可变序列 scala 并发 scala并发集合 java java集合 detail Type Class Description List ArrayList 数组,System.arraycopy   LinkedList 链表,node指向下一个node,如此循环,无容量限制...

Read more

Zookeeper关注点

自己没有尝试过Zookeeper(zk)的直接应用,但是在很多大数据栈/分布式系统当中,zk都充当着重要角色。如HDFS/YARN的HA,HBase存放regionServer心跳,Flume负载均衡和单点故障。那么参考网上的文章,希望将zk的架构和具体模块理清, Overview Zookeeper主要是一个分布式服务协调框架,实现同步服务,配置维护和命名服务等分布式应用,基于对Zab协议(ZooKeeper Atomic Broadcast,zk原子消息广播协议,分布式一致性算法)的实现,能够保证分布式环境中数据的一致性。 简单来看,zookeeper=文件系统+通知机制。 用途 集群管理 集群机器监控/负载均衡 在分布式的集群中,由于各种原因,...

Read more

Spark SQL Catalyst优化器

记录一下个人对sparkSql的catalyst这个函数式的可扩展的查询优化器的理解, Overview Spark SQL的核心是Catalyst优化器,是以一种新颖的方式利用Scala的的模式匹配和quasiquotes机制来构建的可扩展查询优化器。 sparkSql pipeline sparkSql的catalyst优化器是整个sparkSql pipeline的中间核心部分,其执行策略主要两方向, 基于规则优化/Rule Based Optimizer/RBO 一种经验式、启发式优化思路 对于核心优化算子join有点力不从心,如两张表执行join,到底使用broadcaseHashJoin还是sortMergeJoin...

Read more

Spark性能优化总结

总结一下个人看了一些Spark性能调优文章之后的理解,主要框架来自于meituantech,会在此框架上加入个人关注点, Overview Spark的瓶颈一般来自于集群(standalone, yarn, mesos, k8s)的资源紧张,CPU,网络带宽,内存。通过都会将数据序列化,降低其内存memory和网络带宽shuffle的消耗。 Spark的性能,想要它快,就得充分利用好系统资源,尤其是内存和CPU:核心思想就是能用内存cache就别spill落磁盘,CPU 能并行就别串行,数据能local就别shuffle。 —-xrzs 开发调优 避免创建重复的RDD 比如多次读可以persist;但如果input太大,persi...

Read more

es的三种缓存

https://www.elastic.co/guide/en/elasticsearch/reference/6.3/indices-clearcache.html 三种cache query cache 也称filter cache,作用是对一个查询中包含的过滤器执行结果进行缓存,满足了term, range过滤器的clause会被缓存(5.1.1版本term被取消了),bool不会被缓存,但是bool过滤器包含的子term会被缓存。 curl "http://$HOST/_nodes/stats/indices/query_cache,request_cache,fielddata?pretty&human" request cache 当一个查询发送到...

Read more

大数据文件格式与压缩算法小结

小结一下Hadoop/Hive的文件格式和压缩算法, Overview 文件格式和压缩算法在大数据系统里面是一个高关注的优化点,双方常常是配合着一起调优使用。 1. 文件格式 A file format is the way in which information is stored or encoded in a computer file. In Hive it refers to how records are stored inside the file. As we are dealing with structured data, each record has to be its own structure. How records are encoded in...

Read more

GitHub持续集成CI

记录一下个人是如何选择GitHub CI工具并进行相关配置, Overview CI的好处之一就是能够在每一次push的时候,检测新提交的code是否能够通过test case乃至是否能够顺利打包。 “持续集成并不能消除Bug,而是让它们非常容易发现和改正。” —- Martin Fowler 1. CI选择 GitHub上面默认推荐了7种CI供应商, CircleCI,个人首先选择的是CircleCI 2.0,但由于其Scala使用的是sbt来build,与个人当前项目所用Maven不一致,所以弃了 Travis,接着看到了Travis CI,点进去之后一看默认跑到收费试用栏,当然它可以选到FLOSS(Free/ Libre Open Source Sof...

Read more

大型网站与大数据系统的架构

记录一下个人看了一些大型网站架构文章后的理解, Overview 衡量一个网站是否为大型网站,访问量和数据量二者缺一不可。除了海量数据和高并发的访问量,本身业务和系统的复杂度也是考察的方面 大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,任何简单的业务一旦需要处理数以PB计的数据和面对数以亿计的用户,问题就会变的很棘手 大型网站架构主要就是解决这类问题 1. 大型网站系统的特点 1.1 高并发High Concurrency,大流量 需要面对高并发用户,大流量访问。Google日均PV数35亿,日均IP访问数3亿;腾讯QQ的最大在线用户数1.4亿(2011年数据);淘宝2012年“双十一”活动一天交易额超过192亿,活动开始第一分钟独立访问用户...

Read more