前言 最近面试过程中遇到问Elasticsearch的问题不少,这次总结一下,然后顺便也了解一下Elasticsearch内部是一个什么样的结构,毕竟总不能就只了解个倒排索引吧.本文标题就是我遇到过的两个问题,所以此次基本上只是围绕着这两个问题来总结. ES写入数据 在介绍写入数据的过程时,先明确一下ES中的一些关键性的概念: Clouster:集群,由一到N个Elasticsearch服务节点组成. Node:节点,组成Elasticsearch集群的基本单元,单个集群内节点名称唯一.通常一个…
elasticsearch与kibana安装 下载 Elasticsearch 官网:https://www.elastic.co/,elastic search应用本质就是一个jvm进程,所以需要Java环境,请先配置windows | linux中的Java环境.接着在https://www.elastic.co/downloads/elasticsearch页下载相应的es版本,Linux or Windows均有,我这里以linux为例,下载了elasticsearch-6.6.1. 为…
一.Elasticsearch写人数据的过程 1)客户端选择一个node发送请求过去,这个node就是coordinating node(协调节点)2)coordinating node,对document进行路由,将请求转发给对应的node(有primary shard)3)实际的node上的primary shard处理请求,然后将数据同步到replica node4)coordinating node,如果发现primary node和所有replica node都搞定之后,就返回响应结果…
面试题 es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗? 面试官心理分析 问这个,其实面试官就是要看看你了解不了解 es 的一些基本原理,因为用 es 无非就是写入数据,搜索数据.你要是不明白你发起一个写入和搜索请求的时候,es 在干什么,那你真的是...... 对 es 基本就是个黑盒,你还能干啥?你唯一能干的就是用 es 的 api 读写数据了.要是出点什么问题,你啥都不知道,那还能指望你什么呢? 面试题剖析 es 写数据…
ES读数据的过程: 1.ES客户端选择一个node发送请求,该请求作为协调节点(coordinating node): 2.corrdinating node 对 doc id 对哈希,找出该文档对应所在的shards,将请求转发到对应的node, 此时会使用round-robin 随机轮询算法,在primary shard 和 replica shard 之中选择一个 ,实现读请求的负载均衡: 3.接受请求的node 返回给document 给coordinate node: 4.coordi…
下面是个最简单的使用jdbc取得数据的应用.在例子之后我将分成4步,分别是①取得连接,②创建PreparedStatement,③设置参数,④执行查询,来分步分析这个过程.除了设置参数那一步之外,其他的我都画了时序图,如果不想看文字的话,可以对着时序图 .文中的第4步是组装MySQL协议并发送数据包的关键,而且在这部分的(b)环节,我对于PreparedStatement的应用有详细的代码注释分析,建议大家关注一下. Java代码 public class DBHelper { public s…
SparkStreaming 源码分析 一节中从源码角度,描述了Streaming执行时代码的调用过程.下边就接收转化阶段过程再简单分析一下,为分析backpressure作准备. SparkStreaming的全过程分为两个阶段:数据接收转化阶段和Job产生与执行阶段.两个阶段通过数据接收转化阶段产生的Block联系在一起.下图是依据对基于Recevier的数据接收源转化部分源码分析所做. 数据接收转化过程可以分为如下几个关键步骤: Receiver接收外部数据流,其将接收的数据流交由Bloc…
WebSocket 和 HTTP 相似,只是一个应用层协议,对下层透明,所以不涉及 TCP/IP. 由于浏览器支持了 WebSocket,所以在用 JS 写客户端的时候,是无需考虑数据的编码解码的. 以下主要针对服务器端而言. [ 接收数据,需要做的是解码,即 decode ] 要接收WebSocket数据,一个端点(endpoint)要监听底层网络连接. 进来的数据必须作为WebSocket帧(frame)解析.https://tools.ietf.org/html/rfc6455#secti…
简介 Kaggle 于 2010 年创立,专注数据科学,机器学习竞赛的举办,是全球最大的数据科学社区和数据竞赛平台.笔者从 2013 年开始,陆续参加了多场 Kaggle上面举办的比赛,相继获得了 CrowdFlower 搜索相关性比赛第一名(1326支队伍)和 HomeDepot 商品搜索相关性比赛第三名(2125支队伍),曾在 Kaggle 数据科学家排行榜排名全球第十,国内第一.笔者目前在腾讯社交与效果广告部任职数据挖掘工程师,负责 Lookalike 相似人群扩展相关工作.此文分享笔者在…
  DMA方式具有如下特点: 1. 外部设备的输入输出请求直接发给主储存器. 主存储器既可以被CPU访问,也可以被外围设备访问.因此,在主存储器中通常要有一个存储管理部件来为各种访问主存储器的申请排队,一般计算机系统把外围设备的访问申请安排在最高优先级. 2. 不需要做保存现场和恢复现场等工作,从而使DMA方式的工作速度大大加快. 由于在外围设备与主存储器之间传送数据不需要执行程序,因此,也不动用CPU中的数据寄存器和指令计数器等. 3.在DMA控制器中,除了需要设置数据缓冲寄存器.设备状态寄存…