hadoop
文章平均质量分 77
lfdanding
这个作者很懒,什么都没留下…
展开
-
HDFS客户端
刚自学完hadoop,想做个小项目练练手,看到网上普天盖地的基于hdfs的网盘设计,也就想实现一个,写着写着发现这根本就不是网盘,这明明就是HDFS客户端嘛。。。 这个客户端其实很简陋,学生嘛,可以理解,也就实现了文件的上传、下载、文件夹的创建、文件的删除以及还原,底层逻辑很简单,其实复杂的还是界面的更新。 多说无用,直接上图: 客户端的整体布局如图所示: 这个垃圾箱界面啦,其实都是一样原创 2015-08-10 14:05:02 · 4702 阅读 · 2 评论 -
Task运行过程分析5——ReduceTask内部实现
与MapTask一样,ReduceTask也分为四种,即Job-setup Task,Job-cleanup Task,Task-cleanup Task和Reduce Task。本文重点介绍第四种——普通Reduce Task。 Reduce Task要从各个Map Task上读取一片数据,经排序后,以组为单位交给用户编写的reduce()函数处理,并将结果写到HDFS上。本文将深入剖析Redu原创 2016-05-16 16:05:17 · 2928 阅读 · 0 评论 -
Task运行过程分析4——Map Task内部实现2
在Task运行过程分析3——MapTask内部实现中,我们分析了MapTask的Collect阶段,并且解读了环形缓冲区使得MapTask的Collect阶段和Spill阶段可并行执行。。。接下来分析Spill阶段和Combine阶段。。。Spill过程分析 Spill过程由SpillThread线程完成,SpillThread线程实际上是缓冲区kvbuffer的消费者 protected cl原创 2016-05-16 10:42:08 · 7750 阅读 · 0 评论 -
Hadoop 计数器
计数器 1)计数器主要用来收集系统信息,以及相关作业的运行时候的统计数据,用于知道作业成功、失败等情况。 2)相比而言,计数器方式比日志更易于分析内置计数器 1)Hadoop内置的计数器,主要用来记录作业的执行情况 2)内置计数器包括: A、MapReduce框架计数器(Map-Reduce Framework) B、文件系统计数器(FileSystemCounters) C、作业计数原创 2016-05-17 11:11:06 · 1284 阅读 · 0 评论 -
Hadoop应用——Reduce端Join操作
联接 使用案例 Table EMP:Name Sex Age DepNozhang male 20 1li female 25 2wang female 30 3zhou male 35 2Table DEP:DepNo DepName1 Sales2 Dev3 Mgtreduce端联接比map端联接更普遍,因为输入的原创 2016-05-17 15:36:53 · 712 阅读 · 0 评论 -
Hadoop应用——Map端Join操作
联接 使用案例 Table EMP:Name Sex Age DepNozhang male 20 1li female 25 2wang female 30 3zhou male 35 2Table DEP:DepNo DepName1 Sales2 Dev3 MgtMap端联接是指数据到达map处理函数之前进行原创 2016-05-17 16:41:24 · 1881 阅读 · 0 评论 -
Hadoop应用——sort
hadoop排序可以分为以下四种排序: 1、普通排序 1)MapReduce本身自带排序功能 2)IntWritable,LongWritable,Text等实现了WritableComparable类型的对象,都是可以排序的。 2、部分排序 map和reduce处理过程中包含了默认对key的排序,那么如果不要求全排序,可以直接把结果输出,每个输出文件中包含的就是按照key进行排序的结果原创 2016-05-17 20:00:02 · 1778 阅读 · 0 评论 -
hadoop 2.x 版本安装与配置
哈哈,终于把1.x版本的hadoop源码搞明白了,现在开始搞2.x。。。ubuntu版本12.04 64位 1、创建hadoop管理员账号、ssh无密码登陆、安装JDK可以参考我的另一篇文章http://blog.csdn.net/lfdanding/article/details/45847629,这里就不多说了。。。 2、首先要下载安装hadoop,我下载的是hadoop-2.2.0.t原创 2016-06-26 20:33:31 · 900 阅读 · 0 评论 -
YARN 的服务库和事件库及其使用
YARN采用了基于事件驱动的并发模型,该模型能够大大增强并发性,从而提高系统整体性能。为了构件模型,YARN将各种处理逻辑抽象成事件和对应事件调度器,并将每类事件的处理过程分割成多个步骤,用有限状态机表示。YARN中的事件处理模型可概括为下图所示。 整个处理过程大致为:处理请求会作为事件进入系统,由中央异步调度器(AsyncDispatcher)负责传递给相应事件调度器(Event Handl原创 2016-06-29 16:37:08 · 1644 阅读 · 0 评论 -
YARN 的状态机库及其使用
状态机由一组状态组成,这些状态分为三类:初始状态、中间状态和最终状态。状态机从初始状态开始运行,经过一系列中间状态后,到达最终状态并退出。在一个状态机中,每个状态都可以接收一组特定事件,并根据具体的事件类型转换到另一个状态。当状态机转换到最终状态时,则退出。YARN状态转换方式 在YARN中,每种状态转换由一个四元组表示,分别是转换前状态(preState)、转换后状态(postState)、事件原创 2016-06-29 21:33:48 · 1547 阅读 · 0 评论 -
Java使用Protocol Buffers入门四步骤
参考文章:http://blog.csdn.net/xiao__gui/article/details/36643949 Protocol Buffers(简称protobuf)是谷歌的一项技术,用于将结构化的数据序列化、反序列化,经常用于网络传输。这货实际上类似于XML生成和解析,但protobuf的效率高于XML,不过protobuf生成的是字节码,可读性比XML差。类似的还有json、Jav转载 2016-07-02 15:22:44 · 814 阅读 · 1 评论 -
Hadoop源码分析——数据节点数据发送
客户端读数据 下图显示了在读取HDFS上的文件时,客户端、名字节点和数据节点间发生的一些事件以及事件的顺序。 客户端通过FileSystem.open()打开文件,对应的HDFS具体文件系统,DistributedFileSystem创建输出流FSDataInputStream,返回给客户端,客户端使用这个输入流读取数据。FSDataInputStream需要和具体的输入流结合,一起原创 2016-06-22 15:11:58 · 1908 阅读 · 0 评论 -
Hadoop源码分析——数据节点写数据2
数据接收 客户端写往数据节点的数据由org.apache.hadoop.hdfs.server.datanode.BlockReceiver.java中的receiveBlock方法接收 void receiveBlock( DataOutputStream mirrOut, // output to next datanode DataInputStream mirrIn原创 2016-06-22 22:06:53 · 6979 阅读 · 0 评论 -
Task运行过程分析3——Map Task内部实现
Map Task内部实现 在Task运行过程分析2中提到,MapTask分为4种,分别是Job-setup Task、Job-cleanup Task、Task-cleanup Task和Map Task。其中,Job-setup Task和Job-cleanup Task分别是作业运行时启动的第一个任务和最后一个任务,主要工作分别是进行一些作业初始化和收尾工作,比如创建和删除作业临时输出目录;而原创 2016-05-15 15:46:51 · 11712 阅读 · 0 评论 -
Task运行过程分析2
上篇文章Task运行过程1讲到脚本会运行org.apache.hadoop.mapred.Child类。。。 Child类包含一个入口主方法main,在运行的时候需要传递对应的参数,来运行MapTask和ReduceTask,通过命令行输入如下5个参数: host:表示TaskTracker节点的主机名称 port:表示TaskTracker节点RPc端口号 taskID:表示启动的Task原创 2016-05-14 20:00:12 · 8128 阅读 · 0 评论 -
基于hadoop1.2.1的hbase伪分布式安装
今天安装了一下hbase,主要参考一下这几个博客,其实都大同小异,配置起来还是很简单的。 http://www.linuxidc.com/Linux/2015-03/114670.htm http://www.bubuko.com/infodetail-665716.html http://blog.csdn.net/wind520/article/details/39856353 我主要参原创 2015-08-17 16:47:17 · 1567 阅读 · 0 评论 -
hadoop分布式集群搭建
参考的文章为: http://blog.csdn.net/ab198604/article/details/8250461 1)下载hadoop1.2.1源码 2)下载JDK,可以使用如下命令 sudo apt-get install cdt-eclipse 3)创建hadoop管理员帐号 sudo adduser hadoop 4)修改hostname文件 可以使用如下命令 vi原创 2015-08-05 15:54:36 · 523 阅读 · 0 评论 -
基于hadoop1.2.1的hive伪分布式安装
基于hadoop1.2.1的hive伪分布式搭建原创 2015-08-19 22:13:34 · 1483 阅读 · 0 评论 -
Hadoop作业调度
1)先进先出调度器(FIFO) 2)公平调度器(FairScheduler) 3)容量调度器(CapacityScheduler)FIFO调度器 1)FIFO调度器是hadoop中默认的调度器,它先遵循高优先级优先,然互按照作业到来的顺序进行调度 2)这种默认的调度器的一个缺点是:高优先级以及需要长时间运行的作业一直在被处理,而低优先级以及短作业将长时间得不到调度FairScheduler(原创 2016-05-09 21:14:55 · 3750 阅读 · 0 评论 -
Hadoop资源管理
Hadoop资源管理由两部分组成:资源表示模型和资源分配模型。其中,资源表示模型用于描述资源的组织方式,Hadoop采用“槽位”(slot)组织各节点上的资源;而资源分配模型则决定如何将资源分配给各个作业/任务,在Hadoop中,这一部分由一个插拔式的调度器完成。 Hadoop引入了“slot”概念表示各个节点上的计算资源。为了简化资源管理,hadoop将各个节点上的资源(CPU、内存和磁盘等)等原创 2016-05-10 09:20:08 · 4503 阅读 · 0 评论 -
hadoop基于文件的数据结构
基于文件的数据结构 两种文件格式 1)SequenceFile SequenceFile 1、SequenceFile文件是Hadoop用来存储二进制形式的import java.net.URI;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apa原创 2016-05-11 20:06:50 · 1424 阅读 · 0 评论 -
MapReduce类型与格式
输入格式 1)输入分片与记录 a)JobClient通过指定的输入文件的格式来生成数据分片InputSpilit 输入格式概览如图所示: 抽象类:FileInputFormat 1、FileInputFormat是所有使用文件作为数据源的InputFormat实现的基类 2、FileInputFormat输入数据格式的分片大小由数据块大小决定 在org.apache.hadoop.原创 2016-05-10 21:04:03 · 1493 阅读 · 0 评论 -
Hadoop RPC基本框架
1、Hadoop RPC使用 在正式介绍Hadoop RPC基本框架之前,先介绍怎么样使用它。Hadoop RPC主要对外提供了两种接口。 public static VersionedProtocol getProxy/waitForProxy():构造一个客户端代理对象(该对象实现了某个协议),用于向服务器端发送RPC请求。public static Server getServer():为原创 2016-04-30 18:39:54 · 1600 阅读 · 0 评论 -
Hadoop Combiner组件
1、Combiner的作用是把一个map产生的多个(key,value)合并成一个新的(key,value),然后再将新的(key,value)作为reduce的输入 2、在map函数与reduce函数多了一个combine函数,目的是为了减少map输出的中间结果,这样减少了reduce复制map输出的数据,减少网络传输负载。 3、并不是所有情况下都能使用Combiner,Combiner使用于原创 2016-05-12 10:30:20 · 688 阅读 · 0 评论 -
Hadoop Partitioner组件
1、Partitioner组件可以让Map对Key进行分区,从而可以根据不同key来分发到不同的reduce中去处理。 2、你可以自定义key的一个分发规则,如数据文件包含不同的省份,而输出的要求是每个省份输出一个文件 3、提供了一个默认的HashPartitioner 在org.apache.hadoop.mapreduce.lib.partition.HashPartitioner.jav原创 2016-05-12 15:56:20 · 1612 阅读 · 0 评论 -
Hadoop RecordReader
自定义RecordReader 步骤: 1)继承抽象类RecordReader,实现RecordReader的一个实例 2)实现自定义InputFormat类,重写InputFormat中的createRecordReader()方法,返回值是自定义的RecordReader实例 3)配置job.setInputFormatClass()设置自定义的InputFormat实例RecordRe原创 2016-05-12 21:27:54 · 2540 阅读 · 0 评论 -
Task运行过程分析1
1、Task运行过程概述 在MapReduce计算框架中,一个应用程序被划分成Map和Reduce两个计算阶段,它们分别由一个或者多个Map Task和Reduce Task组成。其中,每个Map Task处理输入数据集合中的一片数据(InputSplit),并将产生的若干个数据片段写到本地磁盘上,而Reduce Task则从每个Map Task上远程拷贝相应的数据片段,经分组聚集和归约后,将结果原创 2016-05-14 13:29:45 · 9673 阅读 · 5 评论 -
Hadoop源码分析——数据节点写数据1
即使不考虑数据节点出错后的故障处理,文件写入也是HDFS中最复杂的流程。本章以创建一个新文件并向文件中写入数据,然后关闭文件为例,分析客户端写文件时系统各节点的配合,如下图所示。 客户端调用DistributedFileSystem的create()方法创建文件,上图的步骤1,这时,DistributedFileSystem创建DFSOutputStream,并由远程过程调用,让名字节点执行同名原创 2016-06-22 20:59:42 · 6850 阅读 · 0 评论