<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[thomas0yang的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/thomas0yang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; thomas0yang]]></copyright><item><title><![CDATA[elasticsearch源码分析之search查询(十一)]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/78572596</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/78572596</guid><author>thomas0yang</author><pubDate>Sun, 19 Nov 2017 08:23:03 +0800</pubDate><description><![CDATA[elasticsearch分布式查询的思路是scatter/gather思想，也是多数分布式查询的套路]]></description><category></category></item><item><title><![CDATA[elasticsearch源码分析之分片分配（十）]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/78485067</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/78485067</guid><author>thomas0yang</author><pubDate>Fri, 10 Nov 2017 18:20:14 +0800</pubDate><description><![CDATA[分片是把索引数据切分成多个小的索引块，这些小的索引块能够分发到同一个集群中的不同节点。这个把shard分发到node的过程就是分片的分配。分配的原则是主要还是基于提高读写性能，实现负载均衡，备份恢复快。]]></description><category></category></item><item><title><![CDATA[elasticsearch源码分析之索引操作（九）]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/78432748</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/78432748</guid><author>thomas0yang</author><pubDate>Sun, 05 Nov 2017 16:35:01 +0800</pubDate><description><![CDATA[介绍es索引的基本操作功能（create、exist、delete），用来进一步细化es集群是如果工作的]]></description><category></category></item><item><title><![CDATA[elasticsearch源码分析之集群服务(八)]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/78384348</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/78384348</guid><author>thomas0yang</author><pubDate>Sun, 29 Oct 2017 12:12:05 +0800</pubDate><description><![CDATA[elasticsearch是如何构建集群服务框架的呢？]]></description><category></category></item><item><title><![CDATA[并发总结]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/72934284</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/72934284</guid><author>thomas0yang</author><pubDate>Thu, 08 Jun 2017 19:51:45 +0800</pubDate><description><![CDATA[1、并发是什么？先说明一下什么是并发、什么是并行。 
 - 并发（concurrency）   并发的关注点在于任务切分。举例来说，你是一个创业公司的CEO，开始只有你一个人，你一人分饰多角，一会做产品规划，一会写代码，一会见客户，虽然你不能见客户的同时写代码，但由于你切分了任务，分配了时间片，表现出来好像是多个任务一起在执行。 
 -  并行（parallelism）   并行的关注点在于同时执行]]></description><category></category></item><item><title><![CDATA[Mesos入门整理]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/71549348</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/71549348</guid><author>thomas0yang</author><pubDate>Wed, 10 May 2017 16:45:51 +0800</pubDate><description><![CDATA[Mesos是什么Mesos —— 像用一台电脑（一个资源池）一样使用整个数据中心 
分布式操作系统内核 
Mesos是以与Linux内核同样的原则而创建的，不同点仅仅是在于抽象的层面。Mesos内核运行在每一个机器上，同时通过 API 为各种应用提供跨数据中心和云的资源管理调度能力。这些应用包括Hadoop、Spark、Kafka、Elastic Search。还可配合框架 Marathon 来管理]]></description><category></category></item><item><title><![CDATA[Kubernetes入门整理]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/71486824</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/71486824</guid><author>thomas0yang</author><pubDate>Tue, 09 May 2017 18:26:02 +0800</pubDate><description><![CDATA[一、Kubernetes是什么？Kubernetes是用于自动部署、扩展和管理容器集群的开源系统。它将组成应用程序的容器组合成逻辑单元，以便于管理和发现。 
特点：
自动包装。根据资源需求和其他约束自动放置容器，同时不会影响可用性。 混合关键和尽力而为的工作负载，以提高利用率并节省更多的资源。
水平扩展收缩。使用简单的命令，使用UI或基于CPU使用情况自动调整应用程序。
自动铺开和回滚。Kubern]]></description><category></category></item><item><title><![CDATA[elasticsearch的Doc Values 和 Fielddata]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/64905926</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/64905926</guid><author>thomas0yang</author><pubDate>Thu, 30 Mar 2017 10:11:48 +0800</pubDate><description><![CDATA[DocValues



什么是DocValues

简单说明DocValues就是一个种列式的数据存储结构（docid、termvalues）。 
倒排索引的优势在于查找包含某个项的文档，即通过Term查找对应的docid。

term的倒排




  Term
  Doc_1
  Doc_2
  Doc_3



  brown
  X
  X
  


  dog
  
  
  X]]></description><category></category></item><item><title><![CDATA[elasticsearch源码分析之discovery(七)]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/56496409</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/56496409</guid><author>thomas0yang</author><pubDate>Wed, 15 Mar 2017 20:39:19 +0800</pubDate><description><![CDATA[Discovery模块概述elasticsearch中的Discover模块，这个模块主要是发现模块负责发现集群中的节点，以及选取主节点。用作处理elasticsearch中的集群问题，是elasticsearch中比较复杂的一个模块。 
discovery有几类：
Azure discovery（类似于多播）,它可作为插件使用。
EC2 discovery,作为插件使用。
Google Compu]]></description><category></category></item><item><title><![CDATA[生产环境elasticsearch的配置建议]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/55518105</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/55518105</guid><author>thomas0yang</author><pubDate>Fri, 17 Feb 2017 17:38:48 +0800</pubDate><description><![CDATA[以下主要来自官方文档，主要分为几块：
硬件方面
内存
CPU
硬盘
网络
其他常用注意
操作系统
较大的文件描述符
设置MMap
管理工具
JVM虚拟机
请不要调整JVM设置
请不要修改垃圾收集器
给lucene留下一半的内存空间
不要超过32G
避免过大的使用内存
swapping是性能的死穴
ES参数配置
禁止调整线程池
设置集群和节点名称
设置路径
设置minimum_master_nodes]]></description><category></category></item><item><title><![CDATA[elasticsearch源码分析之Gateway(六)]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/52535604</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/52535604</guid><author>thomas0yang</author><pubDate>Wed, 14 Sep 2016 10:33:36 +0800</pubDate><description><![CDATA[一、es数据文件

1.1文件目录1.2broker文件1.3node文件1.4ClusterState类
二、Gateway写入（state文件的写入）三、Gateway恢复（state文件的读取）四、讨论附录



一、es数据文件

我们将探讨由es系统各个部分写入的目录文件，分别从broker(master)和node(data)的结构文件进行介绍，并给其一个简短说明。]]></description><category></category></item><item><title><![CDATA[elasticsearch源码分析之Transport（五）]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/52355798</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/52355798</guid><author>thomas0yang</author><pubDate>Mon, 29 Aug 2016 19:20:24 +0800</pubDate><description><![CDATA[一、基本介绍

1.1概念介绍

transport模块是es通信的基础模块，在elasticsearch中用的很广泛，比如集群node之间的通信、数据的传输、transport client方式的数据发送等等,只要数和通信、数据传输相关的都离不开transport模块的作用。

transport模块分为LocalTransport和NettyTransport两种，在Transpo]]></description><category></category></item><item><title><![CDATA[elasticsearch源码分析之服务端（四）]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/52253165</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/52253165</guid><author>thomas0yang</author><pubDate>Fri, 19 Aug 2016 17:56:00 +0800</pubDate><description><![CDATA[一、服务端接收

1.1接收消息1.2主要类UML图
二、服务端处理

2.1索引的处理2.2写入primary2.3refresh2.4flush





上篇博客说明了客户端的情况，现在继续分析服务端都干了些啥，es是怎么把数据插进去的，此处以transport的bulk为入口来探究，对于单个document的发送就忽略了。

一、服务端接收

1.1接收消息]]></description><category></category></item><item><title><![CDATA[elasticsearch源码分析之客户端（三）]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/52189215</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/52189215</guid><author>thomas0yang</author><pubDate>Fri, 12 Aug 2016 10:16:02 +0800</pubDate><description><![CDATA[与es通信有三种protocol分别是node、http和transport；其实对于其他client而言最终都是使用的http；而java是可以使用node和transport的，node方式一般很少用，此处我们只讨论transport client，采用bulk方式。

一、客户端初始化



1.1生成settings对象

代码很容易看懂，初始化了一些基本信息，生成sett]]></description><category></category></item><item><title><![CDATA[elasticsearch源码分析之集群管理（一）]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/52186772</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/52186772</guid><author>thomas0yang</author><pubDate>Thu, 11 Aug 2016 21:29:04 +0800</pubDate><description><![CDATA[一、背景

Elasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。本文主要介绍实现分布式搜索和分析的基础–存储，好的存储设计在根本上决定了查询的性能。

es的存储本质上是采用了lucene全文索引，在其基础上实现了分布式功能。

几个基本概念：

Cluster：集群，一个或多个节点的集合，通过名字唯一标识Node：节点，组成集群的服]]></description><category></category></item><item><title><![CDATA[elasticsearch源码分析之启动过程（二）]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/52186689</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/52186689</guid><author>thomas0yang</author><pubDate>Thu, 11 Aug 2016 21:21:55 +0800</pubDate><description><![CDATA[最近开始广泛的使用elasticsearch，也开始写一些java代码了，为了提高java代码能力，也为了更加深入一点了解elasticsearch的内部运作机制，所以开始看一些elasticsearch的源码了。对于这种广受追捧的开源项目，细细品读一定会受益匪浅，所以我会尽可能地细分成很多部分，下面我们从启动过程开始！

首先从main开始，从start脚本可以看出，从org.elastic]]></description><category></category></item><item><title><![CDATA[Spark任务处理流程]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/50352261</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/50352261</guid><author>thomas0yang</author><pubDate>Fri, 18 Dec 2015 15:45:56 +0800</pubDate><description><![CDATA[最近学习了spark，现根据任务提交分析处理过程总结一下相关的主要模块和任务提交处理流程。



一些重要术语


client，用户编写的spark任务提交程序
master，spark主节点，负责任务和资源调度、节点管理，类似于Yarn的ResourceManager
worker，spark工作节点，可以在上面启动Executor进程，类似于Yarn的NodeManager
driver，w...]]></description><category></category></item><item><title><![CDATA[HIVE数仓数据血缘分析工具-SQL解析]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/49449723</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/49449723</guid><author>thomas0yang</author><pubDate>Tue, 27 Oct 2015 16:05:42 +0800</pubDate><description><![CDATA[一、数仓经常会碰到的几类问题： 
1、两个数据报表进行对比，结果差异很大，需要人工核对分析指标的维度信息，比如从头分析数据指标从哪里来，处理条件是什么，最后才能分析出问题原因。 
2、基础数据表因某种原因需要修改字段，需要评估其对数仓的影响，费时费力，然后在做方案。二、问题分析： 
数据源长途跋涉，经过大量的处理和组件来传递，呈现在业务用户面前，对数据进行回溯其实很难。元数据回溯在有效决策、策略制定]]></description><category></category></item><item><title><![CDATA[HDFS工作解析]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/41211359</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/41211359</guid><author>thomas0yang</author><pubDate>Mon, 17 Nov 2014 16:24:56 +0800</pubDate><description><![CDATA[一、概述
一：NameNode



1：主要功能提供名称查询服务，内嵌jetty服务器；NameNode主要保存metadata信息；

2：metadata信息包括：文件的权限，某一上传文件包含哪些Block块，Bolck块有保存在哪些DataNode上面；

3：DataNode在启动时候也会上报block信息（此功能一些作用后面会写到）；

4：NameNode的me]]></description><category></category></item><item><title><![CDATA[Hadoop RPC框架]]></title><link>https://blog.youkuaiyun.com/thomas0yang/article/details/41211259</link><guid>https://blog.youkuaiyun.com/thomas0yang/article/details/41211259</guid><author>thomas0yang</author><pubDate>Mon, 17 Nov 2014 16:18:00 +0800</pubDate><description><![CDATA[1、RPC框架概述
1.1 RPC（Remote Procedure Call Protocol）——远程过程调用协议，它是一种通过网络从远程计算机程序上请求服务，而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在，如TCP或UDP，为通信程序之间携带信息数据。在OSI网络通信模型中，RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
1.2 ]]></description><category></category></item></channel></rss>