大数据
文章平均质量分 77
lfdanding
这个作者很懒,什么都没留下…
展开
-
mahout环境搭建
环境: 操作系统:ubuntu12.04 JDK:1.6 maven:3.2.5 mahout:0.7 eclipse:4.2.2 1、因为mahout是基于maven搭建的,所以第一步需要安装maven 参考这篇文章http://www.cnblogs.com/dyllove98/archive/2013/07/08/3177900.html 下载地址是http://maven.a原创 2015-08-12 19:33:25 · 690 阅读 · 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 评论 -
MapReduce工作流程
MapReduce工作流程的经典流程如图所示 1)作业配置 当用户程序写下如下代码时Job job = new Job(conf,"word count") ;System.exit(job.waitForCompletion(true)?0:1) ;job.waitForCompletion(true)是调用org.apache.hadoop.mapreduce.Job.java中的wa原创 2016-05-04 21:35:01 · 2077 阅读 · 0 评论 -
Job和Task运行时信息的维护
JobTracker最重要的功能之一是状态监控,包括TaskTracker、Job和Task等运行时状态的监控,其中TaskTracker状态监控比较简单,只要记录其最近心跳汇报时间和健康状况(由TaskTracker端的监控脚本检测,并通过心跳将结果发送给JobTracker)即可。 作业描述模型 如下图所示 JobTracker在其内部以“三层多叉树”的方式描述和跟踪每个作业的运行状态原创 2016-05-09 17:49:20 · 1619 阅读 · 0 评论 -
Hadoop错误处理
出现的错误主要有以下三种: 1)Task失败 2)JobTracker失败 3)TaskTracker失败Task失败 1)当map或者reduce子任务中的代码抛出异常,JVM进程会在退出之前向主进程tasktracker进程发送错误报告,tasktracker会将此(任务尝试)task attempt标记为failed状态,释放一个槽以便运行另外一个任务。 2)对于流任务,如果流进程以原创 2016-05-09 20:40:58 · 2231 阅读 · 0 评论 -
java.util.BitSet使用与分析
BitSet使用: 问题:对40亿个数据进行排序,数据类型为 int,无相同数据。 思考:关于40亿个数据的排序,首先想如何存储呢?一个int 4个字节,也就是160亿个字节,也就是大概有16GB的数据,现在所有的计算机估计没有这么大的内存吧,所以我们就可以文件归并排序,也可以分段读入数据在进行Qsort,但是都需要不停地读入文件,可以想象不停地读取文件硬件操作会有多么浪费时间。我们这样都是用4原创 2016-06-04 22:01:12 · 1642 阅读 · 1 评论 -
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 评论 -
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运行过程分析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 评论 -
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运行过程分析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 评论 -
基于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
首先要下载安装hadoop,我下载的是hadoop-1.2.1然后安装hadoop-eclipse我用最简单的方法安装eclipsesudo apt-get install cdt-eclipse然后安装antsudo apt-get install ant然后配置hadoop修改配置文件在hadoop解压目录下,找到src\contrib\eclipse-原创 2015-05-19 17:47:29 · 577 阅读 · 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 评论 -
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 评论 -
Hadoop源码分析——数据节点写数据1
即使不考虑数据节点出错后的故障处理,文件写入也是HDFS中最复杂的流程。本章以创建一个新文件并向文件中写入数据,然后关闭文件为例,分析客户端写文件时系统各节点的配合,如下图所示。 客户端调用DistributedFileSystem的create()方法创建文件,上图的步骤1,这时,DistributedFileSystem创建DFSOutputStream,并由远程过程调用,让名字节点执行同名原创 2016-06-22 20:59:42 · 6850 阅读 · 0 评论