- 浏览: 358595 次
- 性别:
- 来自: 上海
最新评论
-
希恩杰:
采样器的目的是啥?使数据均匀分布到所有分区?使key的数量均匀 ...
Hadoop深入学习:Hadoop全排序中的Sampler采样器 -
lawlietwf:
三篇文章中有两篇链接地址一样,po主看下
Hadoop中的快速排序算法 -
坏小四:
...
《Hbase权威指南》深入学习hbase:表,列族,列标识,版本和cell -
fbwfbi:
发现使用pika-0.9.13的版本依然出错:Tracebac ...
RabbitMQ:使用python发布/订阅消息 -
hehu158:
centos6.5 chmod +x qq2012.tra.g ...
CentOS 6.4安装qq2012
文章列表
在本节中我们主要来学习MapReduce作业的提交流程和作业的生命周期。
一个标准的MapReduce作业的执行包括的流程是:代码编写——>作业配置——>作业提交——>Map Task的分配与执行——>处理中间结果 ...
本节我们主要来学习Hadoop MapReduce分布式计算框架,它主要分为两部分:编程模型和运行时环境。
MapReduce编程模型为用户提供了简单易用的编程接口,可以让用户像编写不同的程序一向只要实现两个简单的函数(map()和reduce()函数)便实现一个分布式的应用程序,而其他的比价麻烦的和分布式相关的所有操作都由MapReduce的运行时环境来完成,用户并不需要关系这些细节——这当然是对编写MapReduce应用程序的初学者来说的,只需要关注业务就行了。
同HDFS一样,MapReduce也采用Master/Slaves架构,一个主节 ...
对于Hadoop中的所有服务器节点,从HDFS的角度来看,分为NameNode节点和DataNode节点,其中在整个集群中只有一个NameNode节点,其他都是DataNode节点;从MapReduce的角度看,分为JobTracker节点和TaskTracker节点,其中只有一个JobTracker节点,其他所有节点都是TaskTracker节点。
NameNode节点和JobTracker节点在集群中都由单一节点故障的问题,即这样的节点停机或失效后整个集群这都会出问题。
NameNode节点中不会保存数据块,数据全都在DateNo ...
本节我们主要写Secondary NameNode是如何合并命名空间文件和编辑日志文件。
客户端对HDFS的文件系统目录树进行的任何修改,都会被记录到编辑日志文件中,以保证系统出现故障后,能够根据这些日志进行恢复,但是随着日志不断地增长,这意味着系统从气候,需要进行恢复的时间也就越长。为了避免这一情况的发生,HDFS引入了检查点机制。
命名空间镜像(FSImage)文件文件系统的持久性检查点,和编辑日志不同,它不能再客户端度HDFS做的每次修改后都及时更新。故命名空间镜像再加上编辑日志,NameNode节点的元数据提供了安全保障。
在Nam ...
本节我们主要学习HDFS主流程中的写文件的整个流程。
向HDFS中写入数据,即使不考虑节点出戳后的故障处理,也是最复杂的流程。
相关的些命令有:
hadoop fs -put example.txt //写单个文 ...
本节我们将着重学习客户端是如何读取HDFS上的数据的操作过程。
查看HDFS上的文件内容的命令行操作:
hadoop fs -cat example.txt
整个“读”流程如下图所示:
1)、客户端通过FileSystem.op ...
上节中我们已经学习了HDFS的体系结构及其优缺点,本节我们将着重学习HDFS的几个主要流程。
客户端在NameNode上的文件与目录操作
创建文件目录
客户端命令:
hadoop fs -mkdir test
示意图如下:
当客户点通过命令行穿件文件目录时,实际上是调用HDFS的FileSystem实例,也就是DistributedFileSystem的mkdir方法时,DistributedFileSystem对象通过RPC调用NameN ...
Hadoop之所以成为能够让用户可以轻松架构和使用的分布式计算平台,用户可以在其上管理、开发和并行处理大数据的应用,其根本就是由于HDFS起的基础作用。
HDFS主要由以下优点:
1)、支持操 ...
从今天起,鄙人开始重温重去年九月份开始学习的Hadoop,并将之形成文字。一方面重温Hadoop的一些知识点,查漏补缺,加深印象;另一方面也希望能和他人有一些交流,由于本人能力有限,由理解不对或表达不清之处,望“内功深厚者”加以指点,当然但若能对初学者能由些许帮助,鄙人将十分荣幸!
当然,借此写博客的机会,也希望对Hadoop做更深入的理解,并一直专研下去!
今天,我们正被数据包围,对于很多公司特别是电商而言,数据是其很核心的资产,每天都会产生大量点击,每一次点击都产生数据。那么,这些公司是如何基于处理这些数据?如何使用这些数据呢?有如何从这些数据 ...
在软件设计中,特别是OOP的类设计中,有六大原则:
●开闭原则(Open-Closed Principle)
●依赖倒置原则(Dependence Inversion Principle)
●接口隔离原则(Interface Segregation Principle)
●里氏代换原则(Liskov Substitution Principle)
●迪米特原则(Law of Demeter)
●合成复用 ...
装饰模式是Java IO中使用到的一个主要的设计模式,又称为包装(Wrapper)模式。
装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案,以对客户端透明的方式动态的给一个对象附加上更多的责任和功能,但在添加这些额外的职责时不会控制该类的执行逻辑。
装饰模式可以在不创造更多的子类的模式下,将对象的功能加以扩展。那么,装饰模式与类继承有何区别呢?!区别有以下两点:
●装饰模式是一种动态行为,是对已有类的组合;而类的继承是一种静态的行为,一个类定义成什么样的,该类的对象便具有什么样的功能,无法动态的改变;
...
在Hadoop中,排序是MapReduce框架中最重要的操作之一,Map Task和Reduce Task都会对数据按照key排序,不管逻辑上是否真的需要排序,任何程序中的数据都会被排序,这是Hadoop的默认行为。
MapReduce中使用了两种排序算法:快速排序和优先队列。在Map和Reduce Task的缓冲区使用的是快速排序,而对磁盘上的IFile文件合并使用的是优先队列。
在学习Hadoop中实现的快速排序之前,我们先来回顾一下之前的三篇文章快速排序及改进、取中位数的算法和三向切分的快速排序算法:有大量重复元素的快速排序,MapReduc ...
插入排序是一中经常使用的算法,特别适合于部分有序和小规模数组的排序。相同情况下它比选择排序的速度要快一倍;在小规模数据集的排序中,也比快速排序要快。
插入排序是一种稳定的排序算法,其排序时间受待排序的数组中的元素顺序的影响较大。
其思想是:将整个待排序的数组分为有序和无序的两部分,每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,找出插入位置,将该元素插入到有序数列的合适位置中。
Java代码如下:
package org.test;
/**
* 经典的插入排序算法,特别适合于部分有序和小规模 ...
观察者模式是一种常用的依赖之间松耦合的设计模式,又叫发布-订阅(Publish/Subscribe)模式或监听模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象——被监听者——在 ...
代理是一种常用的设计模式,其目的是为其他对象提供一种代理以控制(外部对象)对这个被被代理对象的的访问。由代理类负责为委托类(即被代理类)对象做一些用户处理的操作(如权限限制)或执行完之后的后续操作。
代理模式的特征是:代理类与委托类(即被代理类)有同样的接口,代理类主要负责为委托类(即被代理类)预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。
线面我们来看一下代理模式的类 ...