<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Spark Note Book]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/spark____</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; spark____]]></copyright><item><title><![CDATA[Pharser  CyclicBarrier  CountdownLatch  Semaphore]]></title><link>https://blog.youkuaiyun.com/spark____/article/details/84721382</link><guid>https://blog.youkuaiyun.com/spark____/article/details/84721382</guid><author>spark____</author><pubDate>Fri, 29 May 2015 15:22:40 +0800</pubDate><description><![CDATA[

1. CyclicBarrier : 初始化count是固定的， 通常用于多个线程同时等待彼此，当所有线程到达某一点时，同时继续进行。例子： 
Int N = 3；
final CyclicBarrier cb = new CyclicBarrier(N);
for (int i = 0; i &amp;lt; N; i++) {

    new Thread(new Runnable(...]]></description><category></category></item><item><title><![CDATA[一个例子看懂协变和LSP]]></title><link>https://blog.youkuaiyun.com/spark____/article/details/84720614</link><guid>https://blog.youkuaiyun.com/spark____/article/details/84720614</guid><author>spark____</author><pubDate>Tue, 26 May 2015 11:04:23 +0800</pubDate><description><![CDATA[
package org.spark;
public class app {
    
    public static void main(String[] args) {
       Convertor&amp;lt;Object&amp;gt; objConvertor = new Convertor&amp;lt;Object&amp;gt;();
       String result = conver...]]></description><category></category></item><item><title><![CDATA[Hadoop学习笔记——Hadoop 读写文件过程剖析]]></title><link>https://blog.youkuaiyun.com/spark____/article/details/84422100</link><guid>https://blog.youkuaiyun.com/spark____/article/details/84422100</guid><author>spark____</author><pubDate>Tue, 23 Apr 2013 10:22:57 +0800</pubDate><description><![CDATA[
读取文件：
 
下图是HDFS读取文件的流程：

 
这里是详细解释：
 
 
 
1.当客户端开始读取一个文件时，首先客户端从NameNode取得这个文件的前几个block的DataNode信息。（步骤1,2）
 
2.开始调用read()，read()方法里，首先去读取第一次从NameNode取得的几个Block，当读取完成后，再去NameNode拿下一批Block的D...]]></description><category></category></item><item><title><![CDATA[Hadoop学习笔记——NameNode 和 DataNode 以及容错处理]]></title><link>https://blog.youkuaiyun.com/spark____/article/details/84420927</link><guid>https://blog.youkuaiyun.com/spark____/article/details/84420927</guid><author>spark____</author><pubDate>Fri, 19 Apr 2013 15:00:04 +0800</pubDate><description><![CDATA[概念：HDFS会把一个很大的文件分块（与传统的文件系统类似），存放在不同的DataNode上。不过这个块是个逻辑概念，比较大，默认是64M。Hadoop以“管理者-工作者”模式运行。NameNode就是管理者，它保存了文件系统中所有文件以及目录信息。也记录了每个文件的分块信息。但这些分块具体在哪些机器上存储则由DataNode自己上报。容错:NameNode的容错：所有的文件访问都要通过NameN...]]></description><category></category></item><item><title><![CDATA[Hadoop学习笔记——哪些场景适用，哪些不适用。]]></title><link>https://blog.youkuaiyun.com/spark____/article/details/84420759</link><guid>https://blog.youkuaiyun.com/spark____/article/details/84420759</guid><author>spark____</author><pubDate>Fri, 19 Apr 2013 09:20:36 +0800</pubDate><description><![CDATA[
Hadoop不是万能的，有些场景适用，有些不适用。
Hadoop设计的目的主要包括下面几个方面，也就是所谓的适用场景：
1：超大文件
     可以是几百M，几百T这个级别的文件。
2：流式数据访问
      Hadoop适用于一次写入，多次读取的场景，也就是数据复制进去之后，长时间在这些数据上进行分析。
3：商业硬件
      也就是说大街上到处都能买到的那种硬件，这样的硬件...]]></description><category></category></item><item><title><![CDATA[Hadoop学习笔记——如何把Mapper/Reducer的代码分发到节点上去。]]></title><link>https://blog.youkuaiyun.com/spark____/article/details/84420226</link><guid>https://blog.youkuaiyun.com/spark____/article/details/84420226</guid><author>spark____</author><pubDate>Wed, 17 Apr 2013 20:38:47 +0800</pubDate><description><![CDATA[
在Hadoop中实现Map/Reduce模型，我们需要继承如下两个类：
 
public class MaxTemperatureMapper extends MapReduceBase
implements Mapper&amp;lt;LongWritable, Text , Text , IntWritable&amp;gt; 
 
 
 
public class MaxTemperatur...]]></description><category></category></item><item><title><![CDATA[源码分析——在ASP.Net MVC 中，如何在Global.asax中配置一个指向Area内部的默认Route...]]></title><link>https://blog.youkuaiyun.com/spark____/article/details/84418981</link><guid>https://blog.youkuaiyun.com/spark____/article/details/84418981</guid><author>spark____</author><pubDate>Sun, 14 Apr 2013 16:55:33 +0800</pubDate><description><![CDATA[
ASP.Net MVC 中配置Route的时候可以设置一个默认的Route。比如我要在输入http://localhost的时候默认进入http://localhost/home/index。可以在Global.asax中这么配置：
 
            routes.MapRoute(
                &quot;Default&quot;, // Route name
     ...]]></description><category></category></item><item><title><![CDATA[Ibatis中关于事务的一个疑问的刨析——startTransaction的时候到底有没有与数据库交互。...]]></title><link>https://blog.youkuaiyun.com/spark____/article/details/84414026</link><guid>https://blog.youkuaiyun.com/spark____/article/details/84414026</guid><author>spark____</author><pubDate>Sun, 31 Mar 2013 00:05:40 +0800</pubDate><description><![CDATA[
在Ibatis中我们要执行一个事务，代码是这样的:
 
sqlMapClient.startTransaction ();   

sqlMapClient.add (xxxxx);   
sqlMapClient.update (xxxxx);   

sqlMapClient.commitTransaction ();  
看到这段代码你会不会有一个问题，sqlMapCli...]]></description><category></category></item><item><title><![CDATA[Asp.net MVC 源码debug时发现的一个bug（WebPage WebViewPage错乱了）。]]></title><link>https://blog.youkuaiyun.com/spark____/article/details/84413404</link><guid>https://blog.youkuaiyun.com/spark____/article/details/84413404</guid><author>spark____</author><pubDate>Thu, 28 Mar 2013 20:21:40 +0800</pubDate><description><![CDATA[
Razor的模板文件.cshtml会在运行时被编译为一个C#的class，基类为WebViewPage。
也就是说在cshtml中选中一个变量，比如说@Html 然后按F12. 会跳到WebViewPage的类定义中。
 我在下载了MVC的源码，并把web工程中的引用指向源码的工程后，再在cshtml中F12过去的话，就跑到WebPage类中去了。困扰了好久，发现是个bug。正常引用官方的...]]></description><category></category></item><item><title><![CDATA[为什么我们需要IOC框架, 与依赖倒置原则有什么关系？]]></title><link>https://blog.youkuaiyun.com/spark____/article/details/84411545</link><guid>https://blog.youkuaiyun.com/spark____/article/details/84411545</guid><author>spark____</author><pubDate>Sat, 23 Mar 2013 20:32:21 +0800</pubDate><description><![CDATA[
大部分企业应用开发和互联网项目的开发都在应用IOC框架。
但是大部分时候，我们也就是这么用用，很少人有去考虑用的到底对不对，合适不合适。
 
大家都知道依赖倒置原则，这里给出定义：
高层模块不能依赖于底层模块，两者都应该依赖于抽象。
 
是不是有点颠覆三观！！ 难道业务层不应该依赖数据访问层吗。难道是数据访问层依赖业务层吗?
 
下面是一个最常见的设计，业务层依赖 数据访问层，...]]></description><category></category></item><item><title><![CDATA[学习笔记——Maven如何管理项目间依赖，与Visual studio的对比。]]></title><link>https://blog.youkuaiyun.com/spark____/article/details/84408925</link><guid>https://blog.youkuaiyun.com/spark____/article/details/84408925</guid><author>spark____</author><pubDate>Sun, 17 Mar 2013 19:02:40 +0800</pubDate><description><![CDATA[
用习惯Visual Studio的人一开始学习Maven可能很难以理解。
VS里面有个solution的概念，一个sln可以包含多个project，这些project之间的依赖都可以通过可视化的方式添加。如下图：
这里有三个项目，main依赖dao和domain，dao依赖domain。
 
在Maven中没有solution的概念，一般是通过一个父工程来充当管理子工程的角色，达到和s...]]></description><category></category></item><item><title><![CDATA[依赖注入的三种方式以及优缺点。]]></title><link>https://blog.youkuaiyun.com/spark____/article/details/84408828</link><guid>https://blog.youkuaiyun.com/spark____/article/details/84408828</guid><author>spark____</author><pubDate>Sun, 17 Mar 2013 11:22:09 +0800</pubDate><description><![CDATA[
依赖注入是指在创建一个对象时，自动地创建它依赖的对象，并注入。大家都知道有三种途径来实现依赖注入，我这里总结一下这三种方式的优缺点：
 
1.构造方法注入:
优点：

在构造方法中体现出对其他类的依赖，一眼就能看出这个类需要其他那些类才能工作。
脱离了IOC框架，这个类仍然可以工作，POJO的概念。
一旦对象初始化成功了，这个对象的状态肯定是正确的。

缺点：

构造函数会有很...]]></description><category></category></item></channel></rss>