- 博客(50)
- 收藏
- 关注
原创 hadoop学习笔记(三)——浅析Google三大论文中MapReduce的流程
首先我们先来理清楚MR的工作流程,然后从流程中找到一些有疑问的地方,依次解决,再来看看一些细节处理。一.MR的工作流程: (1) Hadoop 1.0第一代Hadoop,由分布式存储系统HDFS和分布式计算框架MapReduce组成,其中,HDFS由一个NameNode和多个DataNode组成,MapReduce由一个JobTracker和多个TaskTracker组成,对应Hadoop版本为Hadoop 1.x和0.21.X,0.22.x。(2) Hadoo
2014-05-18 12:47:45
262
原创 hadoop学习笔记(二)——IO的5种模型
之前说了为了分析hadoopRPC机制,就要了解NIO,在说NIO之前我想先把IO的5种模式简要的记录下。 首先在Unix网络编程中IO大致分为5种: 1.阻塞IO 2.非阻塞IO 3.多路复用IO 4.信号驱动IO 5.异步IO 因为第四种不常用,所以我...
2014-05-16 12:37:55
238
原创 hadoop学习笔记(二)——IO的5种模型
1.阻塞IO 2.非阻塞IO 3.多路复用IO 4.信号驱动IO 5.异步IO 因为第四种不常用,所以我就分析剩下的四种模型。 当然我在研究这些模式的时候还是经常搞混一些东西,比如大家肯定听过什么同步IO,阻塞IO,同步非阻塞IO,当时我也对这些概念很模糊,现在就先来理一理。 在Unix中的同步和异步的定义先来看一看: 同步IO操作:IO操作将导致请
2014-05-16 12:37:55
197
原创 hadoop学习笔记(一)——java动态代理
为了分析HDFS,就要研究他的RPC机制,为了研究RPC机制,就要了解动态代理,反射机制和NIO,写篇文章就记录下学习动态代理的过程吧。 每一种技术的诞生都是为了解决一个问题,那么我们可以从这么几个问题来了解动态代理。 1.为什么要用动态代理? 2.有动态代理那么有静态代理吗? 3.什么是动态代理? ...
2014-05-14 17:13:55
176
原创 hadoop学习笔记(一)——java动态代理
每一种技术的诞生都是为了解决一个问题,那么我们可以从这么几个问题来了解动态代理。 1.为什么要用动态代理? 2.有动态代理那么有静态代理吗? 3.什么是动态代理? 4.动态代理就java来说怎么代码实现? 好的我们开始解决这些问题,首先是为什么要动态代理,解决这个问题的时候我们可能还要问为什么要用代理,大家可能都听说过java设计模式中的代理模式,那么首先为什么要代理呢?就像一个歌星需要经纪人一样,明星所要做的核心事情就是把歌唱
2014-05-14 17:13:55
133
原创 发篇文章觉醒下
感觉这两天效率有点低,发个文章觉醒下。 刚把mzd学长的博客又看了一遍,真是感觉激励人心。这学期到现在,先总结下做了什么事: 1.2月份的时候跟着丁少他们搞android游戏:那时候接触了android,同时才知道可以做的东西还有好多,IT行业是那么广泛。 2.3月开始陆陆续续做点android的练手的东西,同时也在一直想着自己要做什...
2014-05-14 01:13:11
140
原创 Java集合框架分析(十)——布隆过滤器的简单java实现
上一篇已经分析的很透彻了,代码应该很好实现了,来个简单版的,直接定义k=8,忽略P(error),直接上代码:/** * 简单的布隆过滤器实现,k值设为8,不计算P(error)值,测试的的时候输入10000个字符串,位集大小设成5000 << 10000 * @author lenovo * */class BloomFilterdemo { ...
2014-05-08 23:57:41
187
原创 Java集合框架分析(九)——布隆过滤器深入分析及其误判概率计算
上篇文章简单的介绍了下布隆过滤器,让大家知道了下其原理,现在我们进行下深入分析。 首先,我们要明确布隆过滤器的几个参数,之前 我们的例子是有一亿的网址要存储,要先建立一个16亿的bit array,然后以每个网址为键值得到8个value值,这里我们就有疑问了,为什么要16亿,为什么要8个value值?那我们不妨把这些都设成未知数,设我们要输入n个元素,生成m个...
2014-05-07 20:34:23
2644
原创 Java集合框架分析(九)——布隆过滤器深入分析及其误判概率计算
数,之前 我们的例子是有一亿的网址要存储,要先建立一个16亿的bit array,然后以每个网址为键值得到8个value值,这里我们就有疑问了,为什么要16亿,为什么要8个value值?那我们不妨把这些都设成未知数,设我们要输入n个元素,生成m个bit位,需要k个hash function得到value值。然后还有我们要分析的一个参数,误报率P(error)。这样一来我们再来看看布隆过滤器的算法。 首先系统要算出n个元素需要多少个 m bit位并且都设置成0,为了插入一个元素,要用hash算
2014-05-07 20:34:23
419
原创 Java集合框架分析(八)——从哈希到布隆过滤器
今天说一个新的数据结构,布隆过滤器。一.哈希的优缺点: 首先我们要从哈希说起,对于数据的存储,查询,插入,哈希表肯定是最好的选择,他的时间复杂度接近于O(1)。但是为了减少哈希冲突,也就是为了时间复杂度尽量小,就要空间利用率相对低。这就是用空间换时间。所以说哈希表的优点是速度快,准确,缺点是空间浪费。现在我们从一个经典问题来看,比如gmail需要过滤垃圾邮件...
2014-05-07 00:02:39
357
原创 Java集合框架分析(七)——自己实现hash表
开始之前先吐槽一下,妈蛋实现代码花了一个小时,调试起码花了一晚上,终于在这时候差不多了。和jdk的对比了下,10W以下的数据还好,10W以上就开始差别大了。不管怎么说还是实现了。原先是想把HashMap的源码分析一起弄上来的不过在实现的过程中就差不多把源码分析一遍了,其他小伙伴很多都分析了就不再出博客分析了,直接上代码:package com.hash.demo;/*...
2014-05-06 00:30:25
160
原创 Java集合框架分析(六)——Hash表深入分析
今天来分析数据结构的一个大头,哈希表。主要分析这么几个方面:1.哈希表的概念 2.哈希冲突 3.哈希冲突的解决方法 4.哈希表的时空复杂度 5.装载因子的分析 一.哈希表的概念: 我们先来看下官方的解释:散列表(Hash table,也叫哈希表),是根据关键字(Key value)而直接访问在内存存储位置的数据结构。也就是说,它通过把键值通过一个函数的计...
2014-05-05 14:17:39
168
原创 Java集合框架分析(六)——Hash表深入分析
5.装载因子的分析 一.哈希表的概念: 我们先来看下官方的解释:散列表(Hash table,也叫哈希表),是根据关键字(Key value)而直接访问在内存存储位置的数据结构。也就是说,它通过把键值通过一个函数的计算,映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。 就是说,对于每个元素,将他看成一个key值,通过一个散列函数,得到所对应的value值映射到一个表中。这种转换是一种压缩映射,也就是,
2014-05-05 14:17:39
149
Java集合框架分析(五)——List集合之自己实现一个数组栈
花了半个小时复习了下栈,自己用数组简单实现了下,也为之后要分析到的Vector和Stack做个准备,只是个简单的数组栈,还没有像Stack里面那么优化,代码如下: class Stack { // 定义一个数组来实现栈 private Object[] stack; // 栈内的元素个数,也可以当做栈顶元素的游标来用 private int size = 0...
2014-05-04 13:19:52
141
原创 Java集合框架分析(四)——List集合之LinkedList源码分析
继续说List集合的另一个大头,LinkedList,首先我们先对它有个整体的了解,首先看这段代码:public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java...
2014-05-03 23:56:08
123
原创 Java集合框架分析(四)——List集合之LinkedList源码分析
t<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable 这里我们可以看出LinkedList实现了List和Deque接口,并且继承了AbstractSequentialList,这里知道LinkedList的底层实现其实是一个双向链表,并且通过实现List和Deque接口,可以被当做队列和堆栈进行操作。还实现了Serializabl
2014-05-03 23:56:08
131
原创 详细版hadoop平台搭建常见问题总结(四)—— 一些漏掉的问题
安装ubantu遇到的问题:失败方法(不推荐):网上有许多方法,我首先采用了制作u盘系统启动盘来安装ubantu系统http://jingyan.baidu.com/article/60ccbceb18624464cab197ea.html,结果开机没出现引导界面。一开始,以为是系统有问题。用了两个版本的ubantu系统,重复安装了四五次都是这种情况。最后想到应该是主引导程序的配置的问...
2014-04-30 00:15:20
176
原创 详细版hadoop平台搭建常见问题总结(四)—— 一些漏掉的问题
464cab197ea.html,结果开机没出现引导界面。一开始,以为是系统有问题。用了两个版本的ubantu系统,重复安装了四五次都是这种情况。最后想到应该是主引导程序的配置的问题,也就是在用UltraISO软件将ubantu系统镜像文件写入到u盘时,设置便捷启动 百度上这篇文章是这样:在弹出的窗口中进行如下图设置,刻录校验:打上对号写入方式:USB-ZIP+便捷启动:写入新的硬盘主引导记录(MBR)-USB-ZIP+设置完毕后,单击“写入”如下图: 但很不幸,我
2014-04-30 00:15:20
114
原创 Java集合框架分析(三)——List集合之ArrayList实例和Iterator迭代器源码分析
继续之前的ArrayList分析,分析完源代码之后我们就实现一点实例来看看ArrayList中常用API的用法,不多说先上代码:public class ArrayListDemo2 { public static void main(String[] args) { ArrayList<Object> al = new ArrayList<Objec...
2014-04-29 20:23:50
153
原创 Java集合框架分析(三)——List集合之ArrayList实例和Iterator迭代器源码分析
static void main(String[] args) { ArrayList<Object> al = new ArrayList<Object>(); al.add(new Person("asdf", 25)); al.add(new Person("asdf1", 32)); al.add(new Person("asd2f", 44)); al.
2014-04-29 20:23:50
96
原创 Java集合框架分析(二)——List集合之ArrayList源码分析
Java集合框架分析(二)——List集合之ArrayList源码分析 因为复习集合框架的本意是要学习集合框架,因此我接下来做三个任务,分析源码,自己实现对应的数据结构,实现下集合中的大部分常用方法。 上一章说到List的特点:元素是有序的并且元素是可以重复的,因为该集合有索引,讲到这里学过数据结构的人就知道了其实这就是一个线性表,确实list的底层...
2014-04-29 01:28:34
165
原创 Java集合框架分析(二)——List集合之ArrayList源码分析
析源码,自己实现对应的数据结构,实现下集合中的大部分常用方法。 上一章说到List的特点:元素是有序的并且元素是可以重复的,因为该集合有索引,讲到这里学过数据结构的人就知道了其实这就是一个线性表,确实list的底层数据结构就是线性表。我们来看List接口的实现类,最常见的大概就四种,ArrayList, LinkedList, Vector, Stack.,这里我们就对ArrayList和LinkedList进行分析因为他们是最常用的并且代表了线性表的两个典型实现,顺序表(数组)和链表。
2014-04-29 01:28:34
98
原创 Java集合框架分析(一)——总体概述
Java集合框架分析(一)——总体概述 集合框架大家肯定都用过,但是什么事集合框架?他是基于什么数据结构?每个方法都实现了吗?相信很多人没有深入研究过,因为搞云计算要分析hadoop源码,就把java又重头复习了一遍,集合框架这部分我觉得有必要深入研究下。好了不说废话直接开始。首先集合框架...
2014-04-29 00:03:49
150
原创 详细版hadoop平台搭建常见问题总结(三)——hadoop的安装
三.关于安装hadoop时候的一些问题 这个就有的说了,很多人安装过程中只是按照教程来安装,不知道其中的一些步骤是什么意思,甚至很多都是照搬,连主机名都没有改。安装hadoop大概分为这么几步:1.解压hadoop安装包2.配置conf文件夹的配置文件(这个仅在hadoop0.20.2版本下讨论,之后版本文件的安装目录有修改)3.格式化HDFS4.启动脚本5.用jps...
2014-04-28 23:32:58
293
原创 详细版hadoop平台搭建常见问题总结(三)——hadoop的安装
搬,连主机名都没有改。安装hadoop大概分为这么几步:1.解压hadoop安装包2.配置conf文件夹的配置文件(这个仅在hadoop0.20.2版本下讨论,之后版本文件的安装目录有修改)3.格式化HDFS4.启动脚本5.用jps指令和浏览器查看进程是否运行。 这里出问题的一般是在第二步和第五步,第二步很多人没弄懂每个配置文件配置的东西,只是复制,很容易出错,第五步经常会少了几个进程。 (1)配置文件的问题:这个问题比较多很多人没弄懂这些配置文件具体是干嘛的,内容比
2014-04-28 23:32:58
140
原创 准备搞场大的
因为暑假要去金山实习了,虽然是个好机会但是因为才大一,感觉技术的积淀和深度都不够,所以要在这两个月把自己的技术来个完完整整的提升,准备就以博客的形式来记录这两个月的学习。当然这两个月估计困难重重,比如两天之后要考线代,比如五一爹娘要过来不然多了多好的三天黄金时间啊!!比如5.17还要街舞专场还要排练,比如最后还有考试周,就先来篇博客记录即将开始的玩命的两个月甚至三个四个月。...
2014-04-28 23:12:40
111
原创 准备搞场大的
提升,准备就以博客的形式来记录这两个月的学习。当然这两个月估计困难重重,比如两天之后要考线代,比如五一爹娘要过来不然多了多好的三天黄金时间啊!!比如5.17还要街舞专场还要排练,比如最后还有考试周,就先来篇博客记录即将开始的玩命的两个月甚至三个四个月。 好吧说到正题,大概会出这么几篇的博客: 个人方面: 1.java集合框架系列的分析 2.数据结构方面的堆,栈,表,树浅析(
2014-04-28 23:12:40
91
原创 详细版hadoop平台搭建常见问题总结(二)——jdk的安装
二.然后说说安装jdk的问题 1.首先我们用的是Ubuntu版本的Linux系统,Ubuntu自带会配置好jdk,没有的话可以输入指令 apt-get install sun-java6-jdk 来安装,默认路径是/etc/lib/jvm目录下。不过这种方法获得的jdk可能不是你想要的,你也可以自己去www.oracle.com官网下载jdk(java原先是sun公司的产品,但是...
2014-04-28 20:56:58
304
原创 详细版hadoop平台搭建常见问题总结(一)
最近在带团队搞hadoop这个东西,首先自然要从搭建平台开始,说实话当初自己搞得时候光光这个平台就搞了半天,也确实是个麻烦的事情,从刚开始的只会按照教程搭建到现在的已经可以熟练的搭建一个平台,说实话,没有把这玩意搭个十几二十遍,没有把其中的每一个步骤都搞清楚,没有深入研究过hadoop的运行机制,还真玩不转。中间团队搭建的时候真的是各种搭建各种问题,下面就先总结以下部分。一.首先搭建had...
2014-04-28 20:55:31
479
原创 详细版hadoop平台搭建常见问题总结(一)
只会按照教程搭建到现在的已经可以熟练的搭建一个平台,说实话,没有把这玩意搭个十几二十遍,没有把其中的每一个步骤都搞清楚,没有深入研究过hadoop的运行机制,还真玩不转。中间团队搭建的时候真的是各种搭建各种问题,下面就先总结以下部分。一.首先搭建hadoop我分为这么几个步骤:(所有问题都以hadoop0.20.2版本为例) 1.安装linux环境 2.创建hadoop用户组和hadoop用户(这步也可以省略,当然是为了以后跑集群方便) 3.安装jdk 4.安装s
2014-04-28 20:55:31
225
原创 PageRank算法的JAVA代码实现
PageRank算法的JAVA代码实现 前天峰哥突然给了一个任务,要我们一周之内搞定PageRank的算法,当时乍的一听觉得有点高大上,这两天查了点资料加上小半个通宵,终于还是给搞出来了。 搞PageRank算法首先就要了解这个算法的核心算法,这个以佩奇名字命名的算法,核心算法是这样的:PR(A) = (1-d) +...
2014-03-30 16:01:29
1380
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅