<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[rainforc]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/rainforc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; rainforc]]></copyright><item><title><![CDATA[Netty IO线程模型学习总结]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84803456</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84803456</guid><author>rainforc</author><pubDate>Fri, 20 May 2016 17:07:21 +0800</pubDate><description><![CDATA[
Netty框架的 主要线程是IO线程，线程模型的好坏直接决定了系统的吞吐量、并发性和安全性。
Netty的线程模型遵循了Reactor的基础线程模型。下面我们先一起看下该模型
Reactor线程模型
Reactor 单线程模型

单线程模型中所有的IO操作都在一个NIO线程上操作：
包含接受客户端的请求，读取客户端的消息和应答。由于使用的是异步非阻塞的IO，所有的IO操作不会阻塞，...]]></description><category></category></item><item><title><![CDATA[大数据即时计算产品的一般原理----列式存储]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84803455</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84803455</guid><author>rainforc</author><pubDate>Fri, 20 May 2016 17:04:48 +0800</pubDate><description><![CDATA[
一、什么是列式存储
讲列存储之前必须得先讲下行存储，因为行存储是大数据技术流行之前最为常见的一种数据存储方式，传统的关系数据库如Oracle、DB2、Mysql等都是将数据以行记录为单位进行组织，所以数据读写操作需要遍历行记录中所有的列，在存储机制上，行存储将行记录中各列的数据值串在一起进行存储，并且先存完第一行再存第二行，例如：1,Smith,Joe,40000;2,Jones,Mary,...]]></description><category></category></item><item><title><![CDATA[大数据即时计算产品的一般原理----技术纲要介绍]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84803454</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84803454</guid><author>rainforc</author><pubDate>Fri, 20 May 2016 17:03:12 +0800</pubDate><description><![CDATA[
前言：

   在数据部门工作已经是第三个年头，做过很多的数据产品，也接触了很多的业务数据和业务数据的生产。我的工作经历也大致分为这样几个阶段：第一阶段就是做数据产品，主要的工作就是把生产好的数据根据具体的业务把数据搬到网页上；第二个阶段开始尝试做了数据产品的产品，以配置化和平台化的方式玩出数据产品的页面；第三个阶段开始尝试做了数据仓库的产品，直接基于数据仓库模型组织的明细粒度数据进行即席...]]></description><category></category></item><item><title><![CDATA[大数据即时计算产品的一般原理介绍----MPP架构]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84803453</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84803453</guid><author>rainforc</author><pubDate>Fri, 20 May 2016 17:02:44 +0800</pubDate><description><![CDATA[
什么是MPP架构？
      众所周知，基于Map-Reduce模式的Hadoop擅长数据批处理，不是特别符合即时查询的场景。而业界当前做大数据实时查询一般都采用MPP架构，MPP全称Massively Parallel Processing，即大规模并行处理系统。大家都知道在数据库架构设计中，目前主要有Shared Everthing、和Shared Storage、Shared Not...]]></description><category></category></item><item><title><![CDATA[大数据即时计算产品的一般原理----索引]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84803452</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84803452</guid><author>rainforc</author><pubDate>Fri, 20 May 2016 17:02:26 +0800</pubDate><description><![CDATA[
一、基本概念
      索引相信大家多多少少都接触过，索引的目的说白了就是加快数据的检索、排序和计算等，尤其是对于海量数据的快速检索，索引起到了至关重要的作用。大家都知道，我们基于传统数据库开发经常会遇到一个问题，就是这个SQL查询变慢，是不是索引没加？数据库的索引好比一本书前面的目录，如果明确知道按哪个字段来进行索引查找，查询效率还是挺高的，数据库的索引实际上是一个单独的、物理的数据库结...]]></description><category></category></item><item><title><![CDATA[ job运行流程（4）---NodeManager运行CONTAINER]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84773749</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84773749</guid><author>rainforc</author><pubDate>Tue, 29 Mar 2016 21:00:46 +0800</pubDate><description><![CDATA[
16、接着上篇文章LocalizationEventType.INIT_CONTAINER_RESOURCES事件被触发，对应ResourceLocalizationService.handle()被执行，分别会创建public、private、application三种资源对应的LocalResourcesTrackerImpl服务，接着LocalResourcesTrackerImpl.h...]]></description><category></category></item><item><title><![CDATA[job运行流程（3）---NodeManager运行APPLICATION]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84773745</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84773745</guid><author>rainforc</author><pubDate>Tue, 29 Mar 2016 20:36:36 +0800</pubDate><description><![CDATA[
11、接着上篇文章ApplicationMasterLaunch.handle(AMLaunchEventType.LAUNCH)被触发，接着开始调用RPC服务向NodeManager请求启动container,并触发RMAppAttemptEventType.LAUNCHED事件;
 
12、调用ContainerManagementProtocolPBClientImpl.startC...]]></description><category></category></item><item><title><![CDATA[job运行流程（2）---ResourceManager调度job]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84773741</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84773741</guid><author>rainforc</author><pubDate>Tue, 29 Mar 2016 20:20:52 +0800</pubDate><description><![CDATA[
6、接着上篇文章中的最后一步：ResourceManager服务端执行ClientRMService.submitApplication()，接着开始调用RMAppManager.submitApplication()进而来触发RMAppEvent事件，成为job调度运行事件触发的源头；
（本系列文章主要分析job调度运行流程的主要事件流程，像其它的日志读写事件流程、container监控流...]]></description><category></category></item><item><title><![CDATA[job运行流程（1）---客户端提交job]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84773734</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84773734</guid><author>rainforc</author><pubDate>Tue, 29 Mar 2016 20:04:15 +0800</pubDate><description><![CDATA[
1、通过hadoop -jar命令提交一个job，并且解析提交的各个参数，保存对应的属性或内容到configuration；
 
优化点：这里可以通过修改GenerticOptionPaser类，来解析自定义的属性，比如public jar包更新等。2、调用waitForCompletion提交job并轮询job运行状态；
优化点：这里的job状态轮询在ResourceManager返回...]]></description><category></category></item><item><title><![CDATA[hadoop------applog读写流程]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84773721</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84773721</guid><author>rainforc</author><pubDate>Tue, 29 Mar 2016 19:36:15 +0800</pubDate><description><![CDATA[
1、NodeManager初始化时会先初始化ContainerManagerImpl服务，从而触发LogAggregationService也被初始化，而该服务是用于处理applog的读写流程的。
 
2、LogAggregationService会根据各种事件触发，从而读取本地的container log，然后写到hdfs上的app-log-dir，并删除本地的container log...]]></description><category></category></item><item><title><![CDATA[hadoop-----joblog读写流程]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84773026</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84773026</guid><author>rainforc</author><pubDate>Fri, 25 Mar 2016 21:03:23 +0800</pubDate><description><![CDATA[
1、job提交后，调用JobSubmitter的submitJobInternal方法提交job相关文件到hdfs
 
2、nodemanager启动时会初始化本地目录，并清除本地yarn.nodemanager.local-dirs下的filecache/usercache/nmprivate目录下的资源文件
 
3、nodemanager的container资源初始化：Resour...]]></description><category></category></item><item><title><![CDATA[谈谈数据库索引（转载）]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84769989</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84769989</guid><author>rainforc</author><pubDate>Sat, 12 Mar 2016 17:45:11 +0800</pubDate><description><![CDATA[
今天来聊聊数据库里的索引，你知道的，网上这样的文章一抓一大把的， 基本都是从索引的原理说起，讲到索引的分类， 物理组织和存储形式，如何找到对应的记录，如何构建复杂的索引等等 ，如果我再写一篇这样的就没意思了，而且这些未必真的是大家（尤其是开发同学）关心的。所以我今天打算以一个不同的角度来讲下索引，而且针对B+tree索引，希望大家看了会有所帮助。
对于一个SQL，开发同学最关心的啥？ 我觉得...]]></description><category></category></item><item><title><![CDATA[数据一致性-分区可用性-性能——多副本强同步数据库系统实现（转载）]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84769988</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84769988</guid><author>rainforc</author><pubDate>Sat, 12 Mar 2016 17:45:02 +0800</pubDate><description><![CDATA[
这篇博客文章接下来的部分，将跳出任何一种数据库，从原理的角度上来分析下面的几个问题：


问题一：数据一致性。在不使用共享存储的情况下，传统RDBMS（例如：Oracle/MySQL/PostgreSQL等），能否做到在主库出问题时的数据零丢失。

问题二：分区可用性。有多个副本的数据库，怎么在出现各种问题时保证系统的持续可用？

问题三：性能。不使用共享存储的RDBMS，为了保证多个副...]]></description><category></category></item><item><title><![CDATA[Storm线程进程分配方法]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84769983</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84769983</guid><author>rainforc</author><pubDate>Sat, 12 Mar 2016 17:44:54 +0800</pubDate><description><![CDATA[
运行中的Topology主要由以下三个组件组成的：

Worker processes（进程）
Executors (threads)（线程）
Tasks

其中进程数除以机器数可以得到每台机器的进程数，我们以一台机器为例：

Spout或者Bolt的Task个数一旦指定之后就不能改变了，而Executor的数量可以根据情况来进行动态的调整。默认情况下# executor = #t...]]></description><category></category></item><item><title><![CDATA[storm的ack机制]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84769982</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84769982</guid><author>rainforc</author><pubDate>Sat, 12 Mar 2016 17:44:38 +0800</pubDate><description><![CDATA[
我们知道，Storm保证发出的每条消息都能够得到完全处理，也就是说，对于从Spout发出的每个tuple，该tuple和其产生的所有tuple（整棵tuple树）都被成功处理。如果在应用设定的超时时间之内，这个tuple没有处理成功，则认为这个tuple处理失败了。tuple处理成功还是失败，Storm又是怎么知道的呢？
 
原来Storm中有一类叫Acker的task，它会对tuple树...]]></description><category></category></item><item><title><![CDATA[diamond源码学习总结]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84769981</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84769981</guid><author>rainforc</author><pubDate>Sat, 12 Mar 2016 17:43:41 +0800</pubDate><description><![CDATA[
介绍：[http://gitlab.alibaba-inc.com/middleware/diamond/wikis/Diamond-Intro]
客户端：
一、 client获取server地址
 diamond-client在使用时没有指定server地址的代码，地址获取对用户是透明的。
 server地址存储在一台具有域名的机器上的HTTP server中，我们称它为地址服务器，...]]></description><category></category></item><item><title><![CDATA[ConfigServer(一)]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84768995</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84768995</guid><author>rainforc</author><pubDate>Tue, 08 Mar 2016 10:06:18 +0800</pubDate><description><![CDATA[
是什么？
俗称：配置中心，是一个基于“发布-订阅”模型的分布式通信框架
常用应用场景

场景1. HSF服务 。服务发布者发布服务，服务调用者订阅服务，ConfigServer向订阅服务的调用者推送可访问的服务IP地址列表，服务调用者从中选一个发起远程调用。



场景2. notify 。消息发送和接收，都要通过notifyserver来完成。notifyclient端也是通过co...]]></description><category></category></item><item><title><![CDATA[数据库连接池（转载）]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84768992</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84768992</guid><author>rainforc</author><pubDate>Tue, 08 Mar 2016 10:05:58 +0800</pubDate><description><![CDATA[
这次我们来聊聊数据库的连接， 因为我觉得这是蛮有内容且蛮重要的一部分内容。首先会从单个的连接池讲起，重点考察下单连接池和数据库的交互情况， 然后探讨下大规模集群下数据库连接会遇到的问题，以及对应的解法。
首先什么是连接池，出现的原因是啥？我们可以从一个标准SQL的生命周期说起， 如果一个SQL要到DB上去执行， 那么首先要建立应用服务器和数据库的一个连接状态，连接建立后数据库会分配一个线程或...]]></description><category></category></item><item><title><![CDATA[zookeeper学习]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84768991</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84768991</guid><author>rainforc</author><pubDate>Tue, 08 Mar 2016 10:05:46 +0800</pubDate><description><![CDATA[
简介
ZooKeeper是由Yahoo! Research研发的一个分布式的协调系统，最初是Hadoop下的一个子项目，后来独立出来成为Apache的顶级项目。不了解Zookeeper的人会认为它只是一个分布式锁服务，分布式锁仅仅只是ZooKeeper的其中一个应用场景而已。ZooKeeper的定位是一个coordination kernel，仅仅提供一些简单的API，分布式应用的开发者再根...]]></description><category></category></item><item><title><![CDATA[redis]]></title><link>https://blog.youkuaiyun.com/rainforc/article/details/84768990</link><guid>https://blog.youkuaiyun.com/rainforc/article/details/84768990</guid><author>rainforc</author><pubDate>Tue, 08 Mar 2016 10:05:18 +0800</pubDate><description><![CDATA[
1 背景        Redis作为内存级别的存储或缓存，为一淘玩客(http://wanke.etao.com) 提供了Feed流，计数器，精细粒度缓存功能。2013年10月份上线，逐渐成为系统中重要的组成部分，我们已经将Redis集群抽象成为了一淘Redis平台级别的服务。       一淘Redis平台上线2年多的时间，我们遇到了很多问题。例如网络抖动，主从同步，机器宕机，节点迁移，内...]]></description><category></category></item></channel></rss>