<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[辰辰爸的博客]]></title><description><![CDATA[持续关注前沿大数据技术，立志做一个优秀的大数据架构师！]]></description><link>https://blog.youkuaiyun.com/lipeng_bigdata</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lipeng_bigdata]]></copyright><item><title><![CDATA[Hhadoop-2.7.0中HDFS写文件源码分析（二）：客户端实现之DFSPacket]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53764809</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53764809</guid><author>lipeng_bigdata</author><pubDate>Tue, 20 Dec 2016 17:18:52 +0800</pubDate><description><![CDATA[一、简介      HDFS在数据传输过程中，针对数据块Block，不是整个block进行传输的，而是将block切分成一个个的数据包进行传输。而DFSPacket就是HDFS数据传输过程中对数据包的抽象。二、实现      HDFS客户端在往DataNodes节点写数据时，会以数据包packet的形式写入，且每个数据包包含一个包头，n个连续的校验和数据块checksum chunks和n个连续的]]></description><category></category></item><item><title><![CDATA[Hhadoop-2.7.0中HDFS写文件源码分析（二）：客户端实现（1）]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53738376</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53738376</guid><author>lipeng_bigdata</author><pubDate>Mon, 19 Dec 2016 16:12:57 +0800</pubDate><description><![CDATA[一、综述      HDFS写文件是整个Hadoop中最为复杂的流程之一，它涉及到HDFS中NameNode、DataNode、DFSClient等众多角色的分工与合作。      首先上一段代码，客户端是如何写文件的：Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
Path file]]></description><category></category></item><item><title><![CDATA[Hadoop-2.7.0中HDFS NameNode HA实现之DFSZKFailoverController、ZKFailoverController（一）]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53638017</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53638017</guid><author>lipeng_bigdata</author><pubDate>Wed, 14 Dec 2016 14:40:29 +0800</pubDate><description><![CDATA[一、简介      DFSZKFailoverController是Hadoop-2.7.0中HDFS NameNode HA实现的中心组件，它负责整体的故障转移控制等。它是一个守护进程，通过main()方法启动，继承自ZKFailoverController。二、实现流程      1、启动       通过main()方法启动，如下：  /**
   * 进程启动的main()方法
   */]]></description><category></category></item><item><title><![CDATA[Hadoop-2.7.0中HDFS NameNode HA实现综述]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53637562</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53637562</guid><author>lipeng_bigdata</author><pubDate>Wed, 14 Dec 2016 14:39:58 +0800</pubDate><description><![CDATA[一、原理      HDFS中NameNode等的HA是基于ZooKeeper实现的。它应用了ZooKeeper集群的如下功能或特性：      1、只要半数以上节点还存活，就继续能对外提供服务；      2、ZooKeeper通过Paxos算法提供了leader选举功能，其它follower learn leader；      3、ZooKeeper提供了watcher机制，只要ZooKee]]></description><category></category></item><item><title><![CDATA[Hadoop-2.7.0 HA实现细节分析之HealthMonitor]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53572188</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53572188</guid><author>lipeng_bigdata</author><pubDate>Sun, 11 Dec 2016 11:54:26 +0800</pubDate><description><![CDATA[一、HealthMonitor是什么      HealthMonitor是一个周期性工作的后台线程，它在一个循环中周期性的同HA服务进行心跳，负责跟踪NameNode服务的健康状况，并在健康状况变化时调用failover控制器的回调方法。二、HealthMonitor是如何实现的      1、成员变量            HealthMonitor内部有如下主要成员变量：]]></description><category></category></item><item><title><![CDATA[Java源码分析之CountDownLatch]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53556739</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53556739</guid><author>lipeng_bigdata</author><pubDate>Sat, 10 Dec 2016 12:26:49 +0800</pubDate><description><![CDATA[一、CountDownLatch介绍       CountDownLatch是一种同步手段，允许一个或者更多的线程等待，直到在其他线程正在执行的一组操作完成。给定count数目后CountDownLatch被初始化。await()方法阻塞，直到由于调用countDown()方法，当前count值达到0，之后所有等待线程被释放，而任何后续await()方法的调用会立即返回。这个是只有一次的现场，即]]></description><category></category></item><item><title><![CDATA[堆排序之Java实现]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53538135</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53538135</guid><author>lipeng_bigdata</author><pubDate>Fri, 09 Dec 2016 14:01:04 +0800</pubDate><description><![CDATA[一、堆排序算法① 先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区② 再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换，由此得到新的无序区R[1..n-1]和有序区R[n]，且满足R[1..n-1].keys≤R[n].key③由于交换后新的根R[1]可能违反堆性质，故应将当前无序区R[1..n-1]调整为堆。然后再次将R[1..n-1]中关键字最大的记录R[1]]></description><category></category></item><item><title><![CDATA[Java设计模式之单例模式]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53535264</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53535264</guid><author>lipeng_bigdata</author><pubDate>Fri, 09 Dec 2016 10:05:38 +0800</pubDate><description><![CDATA[一、懒汉模式package com.pengli.designmode.singleton;

public class Singleton1 {

	// 私有静态变量
	// 需要 用volatile修饰
	private static volatile Singleton1 singleton = null;

	// 私有构造函数，不能实例化
	private Singleton1() {]]></description><category></category></item><item><title><![CDATA[冒泡排序之Java实现]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53534967</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53534967</guid><author>lipeng_bigdata</author><pubDate>Fri, 09 Dec 2016 09:40:27 +0800</pubDate><description><![CDATA[一、冒泡排序算法      1、 比较相邻的元素。如果第一个比第二个大，就交换他们两个。      2、对每一对相邻元素作同样的工作，从开始第一对到结尾的最后一对。在这一点，最后的元素应该会是最大的数。      3、针对所有的元素重复以上的步骤，除了最后一个。      4、持续每次对越来越少的元素重复上面的步骤，直到没有任何一对数字需要比较。      二、Java实现package com.]]></description><category></category></item><item><title><![CDATA[Hadoop-2.7.0 HDFS DataXceiverServer两个参数的疑问]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53509428</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53509428</guid><author>lipeng_bigdata</author><pubDate>Wed, 07 Dec 2016 18:46:21 +0800</pubDate><description><![CDATA[1、TcpPeerServer的数据接收缓冲区大小        Hadoop-2.7.0的DataXceiverServer中，在DataNode中对其初始化时，会构造一个TcpPeerServer，并设置数据接收缓冲区大小如下：tcpPeerServer.setReceiveBufferSize(HdfsConstants.DEFAULT_DATA_SOCKET_SIZE);        这]]></description><category></category></item><item><title><![CDATA[HBase-1.2.4LruBlockCache实现分析（二）]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53428519</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53428519</guid><author>lipeng_bigdata</author><pubDate>Fri, 02 Dec 2016 00:01:45 +0800</pubDate><description><![CDATA[本文介绍LruBlockCache如何获取缓存数据。        缓存数据的获取是在方法getBlock()中实现的，代码如下：  /**
   * Get the buffer of the block with the specified name.
   * @param cacheKey block's cache key
   * @param caching true if the ]]></description><category></category></item><item><title><![CDATA[HBase-1.2.4 CombinedBlockCache和InclusiveCombinedBlockCache]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53428402</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53428402</guid><author>lipeng_bigdata</author><pubDate>Thu, 01 Dec 2016 23:54:23 +0800</pubDate><description><![CDATA[一、综述        在《HBase-1.2.4 Allow block cache to be external分析》一文的最后，讲解了如何实例化外部缓存MemcachedBlockCache。本文将对上文中提到的几种缓存中的InclusiveCombinedBlockCache和CombinedBlockCache做个综述。        上文中提到的缓存实现，有以下几种：        1]]></description><category></category></item><item><title><![CDATA[HBase-1.2.4 Allow block cache to be external分析]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53426879</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53426879</guid><author>lipeng_bigdata</author><pubDate>Thu, 01 Dec 2016 23:35:54 +0800</pubDate><description><![CDATA[从HBase-1.1.0起，HBase可以使用memcached作为外部BlockCache，这是一个在设备失效或者升级时不会发生完全的冷缓存的很好的特性。用句通俗的话讲，就是HBase出现故障或者升级时，缓存轻易不会丢失。]]></description><category></category></item><item><title><![CDATA[HBase-1.2.4LruBlockCache实现分析（一）]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53410373</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53410373</guid><author>lipeng_bigdata</author><pubDate>Thu, 01 Dec 2016 17:28:22 +0800</pubDate><description><![CDATA[BlockCache是HBase中的一个重要特性，相比于写数据时缓存为Memstore，读数据时的缓存则为BlockCache。
      LruBlockCache是HBase中BlockCache的默认实现，它采用严格的LRU算法来淘汰Block。]]></description><category></category></item><item><title><![CDATA[HDFS Archival Storage]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53374391</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53374391</guid><author>lipeng_bigdata</author><pubDate>Thu, 01 Dec 2016 14:45:25 +0800</pubDate><description><![CDATA[一、是什么二、怎么做      1、标记DataNode存储属性      2、重启DataNode      3、标记或查看HDFS路径存储策略      4、迁移数据      5、检查文件数据块三、测试四、我们可以用来做什么一、是什么      随着数据的日益增长，很多数据由热变冷，已经不再或者很少使用，而数据的存储需求越来越大，计算需求则相应增长不大。如何解耦这种急剧增长的存储需求和计算需]]></description><category></category></item><item><title><![CDATA[Hadoop-2.6.0 DFSClient Hedged Read实现分析]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53395941</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53395941</guid><author>lipeng_bigdata</author><pubDate>Tue, 29 Nov 2016 18:05:19 +0800</pubDate><description><![CDATA[一、简介      DFSClient Hedged Read是Hadoop-2.4.0引入的一个新特性，如果读取一个数据块的操作比较慢，DFSClient Hedged Read将会开启一个从另一个副本的hedged读操作。我们会选取首先完成的操作，并取消其它操作。这个Hedged读特性将有助于控制异常值，比如由于命中一个坏盘等原因而需要花费较长时间的异常阅读等。二、开启      DFSCli]]></description><category></category></item><item><title><![CDATA[《Redis设计与实现》阅读：Redis底层研究之哈希表hashtable]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/51433391</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/51433391</guid><author>lipeng_bigdata</author><pubDate>Tue, 29 Nov 2016 16:15:44 +0800</pubDate><description><![CDATA[字典是一种存储键值对的抽象数据结构，其又被称为符号表（symbol table）、关联数组（associative array）或映射（map）。Redis使用字典存储键值对，而Redis在底层是通过自定义的哈希表来实现字典这一数据结构的。本文，我们将研究Redis中哈希表的实现。]]></description><category></category></item><item><title><![CDATA[Hadoop-2.6.0NodeManager Restart Recover实现分析（二）]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53391809</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53391809</guid><author>lipeng_bigdata</author><pubDate>Tue, 29 Nov 2016 14:04:35 +0800</pubDate><description><![CDATA[继上篇《Hadoop-2.6.0NodeManager Restart Recover实现分析（二）》。      4、NMLeveldbStateStoreService实现分析      在      1）、initStorage()      initStorage()方法中，完成了存储相关的初始化，如下：  @Override
  protected void initStorage(Co]]></description><category></category></item><item><title><![CDATA[Hadoop-2.6.0NodeManager Restart Recover实现分析（一）]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53390788</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53390788</guid><author>lipeng_bigdata</author><pubDate>Tue, 29 Nov 2016 13:38:13 +0800</pubDate><description><![CDATA[一、简介      This document gives an overview of NodeManager (NM) restart, a feature that enables the NodeManager to be restarted without losing the active containers running on the node. At a high level,]]></description><category></category></item><item><title><![CDATA[NM Restart Design Overview]]></title><link>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53377161</link><guid>https://blog.youkuaiyun.com/lipeng_bigdata/article/details/53377161</guid><author>lipeng_bigdata</author><pubDate>Mon, 28 Nov 2016 14:27:51 +0800</pubDate><description><![CDATA[This document describes the design of the NodeManager restart work under YARN­1336 and its sub­JIRAs.  NM restart is a feature where the NodeManager can be restarted without losing the active containe]]></description><category></category></item></channel></rss>