
hadoop
文章平均质量分 73
mango_song
专注大数据处理技术
展开
-
MapReduce:详解Shuffle(copy,sort,merge)过程
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里转载 2014-12-29 11:51:47 · 1325 阅读 · 0 评论 -
Hadoop中Speculative Task调度策略
1. 背景Speculative Task,又叫推测式任务,是指在分布式集群环境下,因为程序bug,负载不均衡或者资源分布不均,造成同一个job的多个task运行速度不一致,有的task运行速度明显慢于其他task(比如:一个job的某个task进度只有10%,而其他所有task已经运行完毕),则这些task拖慢了作业的整体执行进度,为了避免这种情况发生,Hadoop会为该task启动spec转载 2014-01-05 18:46:30 · 941 阅读 · 0 评论 -
Hadoop Exit Code 含义
经常遇到的exception是:1.PipeMapRed.waitOutputThreads(): subprocess failed with code N ............2.Task process exit with nonzero status of N ............java.lang.Throwable: Child Errorat原创 2013-08-15 15:25:38 · 9979 阅读 · 0 评论 -
hadoop 分布式缓存
概念:reduce-side join技术是灵活的,但是有时候它仍然会变得效率极低。由于join直到reduce()阶段才会开始,我们将会在网络中传递shuffle所有数据,而在大多数情况下,我们会在join阶段丢掉大多数传递的数据。因此我们期望能够在map阶段完成整个join操作。主要技术难点:在map阶段完成join的主要困难就是mapper可能需要与一个它自己不能获得的数据进行j原创 2013-08-13 16:11:37 · 963 阅读 · 0 评论 -
Hadoop distcp 跨集群迁移数据
Hadoop中一个distcp 2011-05-27 13:47:51| 分类:默认分类 |字号 订阅hadoop中有一个叫做distcp(分布式复制)的有用程序,能从hadoop的文件系统并行复制大量数据。distcp一般用于在两个HDFS集群中传输数据。如果集群在hadoop的同一版本上运行,就适合使用hdfs方案: % hadoop d转载 2013-08-01 14:28:42 · 5155 阅读 · 1 评论 -
基于Hadoo的日志收集框架---Chukwa的安装部署
chukwa是解决在集群环境中收集各节点增量日志的一种基于hadoop的实现方案,其主要有如下四个组成部分。1. Agents 运行在每个客户端上,负责发送数据。2. Collectors 接收Agents发送的数据并写入稳定存储。3. MapReduce jobs 分析和归档数据。4. HICC 数据中心,用于显示数据的web界面。它的系统架构如下图以单机部署为例,前转载 2013-07-13 15:48:46 · 835 阅读 · 0 评论 -
MapReduce处理HBase中的数据
MapReduce 中如何处理HBase中的数据?如何读取HBase数据给Map?如何将结果存储到HBase中?MapReduce 中如何处理HBase中的数据?如何读取HBase数据给Map?如何将结果存储到HBase中?Mapper类:包括一个内部类(Context)和四个方法(setup,map,cleanup,run); setup,cle转载 2013-03-26 13:29:38 · 1424 阅读 · 0 评论 -
Hadoop Job Tunning
Hadoop平台已经成为了大多数公司的分布式数据处理平台,随着数据规模的越来越大,对集群的压力也越来越大,集群的每个节点负担自然就会加重,而且集群内部的网络带宽有限,数据交换吞吐量也在面临考验,由此引发了人们对大规模数据处理进行优化的思考。本文仅从实践经验出发,针对Hadoop Job优化提出了一些观点,不包含HDFS的优化。Job Tracker Related严格来说,转载 2013-04-02 14:31:04 · 862 阅读 · 0 评论 -
hadoop作业调优参数整理及原理
1 Map side tuning参数1.1 MapTask运行内部原理当map task开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘。这中间的过程比较复杂,并且利用到了内存buffer来进行已经产生的部分结果的缓存,并在内存buffer中进行一些预排序来优化整个map的性能。如上图所示,每一个map都会对应存在一个内存buffer(MapOutpu转载 2013-04-02 13:45:43 · 719 阅读 · 0 评论 -
Map Reduce 数量设置
JobConf.setNumMapTasks(n)是有意义的,结合block size会具体影响到map任务的个数,详见FileInputFormat.getSplits源码。假设没有设置mapred.min.split.size,缺省为1的情况下,针对每个文件会按照min (totalsize[所有文件总大小]/mapnum[jobconf设置的mapnum], blocksize)为大小来转载 2013-04-02 11:41:53 · 5155 阅读 · 0 评论 -
[Hadoop]ERROR security.UserGroupInformation:PriviledgedActionException as:Administrator
原:http://blog.youkuaiyun.com/shiqidide/article/details/7585048hadoop1.0.4在windows远程调试linux的程序时,报错:12/04/24 15:32:44 WARNutil.NativeCodeLoader: Unable to load native-hadoop library foryour platform..原创 2012-12-18 14:53:31 · 13035 阅读 · 6 评论 -
[HBase] HBase Block Cache实现机制分析
本文结合HBase 0.94.1版本源码,对HBase的Block Cache实现机制进行分析,总结学习其Cache设计的核心思想。1. 概述HBase上Regionserver的内存分为两个部分,一部分作为Memstore,主要用来写;另外一部分作为BlockCache,主要用于读。写请求会先写入Memstore,Regionserver会给每个region提供一个M转载 2013-01-17 23:48:23 · 856 阅读 · 0 评论 -
[Java] Java NIO 详解
关于JavaNIO的API,可以看我上篇博文有详细描述:http://blog.youkuaiyun.com/mango_song/article/details/8561427下面是大牛逸情公子中关于NIO的解读,结合小例子更容易理解NIO原理,原文地址http://weixiaolu.iteye.com/blog/1477774Java NIO原理图文分析及代码实现 前言:转载 2013-02-01 12:42:29 · 1758 阅读 · 2 评论 -
MapReduce 中的两表 join 几种方案简介
1. 概述在传统数据库(如:MYSQL)中,JOIN操作是非常常见且非常耗时的。而在HADOOP中进行JOIN操作,同样常见且耗时,由于Hadoop的独特设计思想,当进行JOIN操作时,有一些特殊的技巧。本文首先介绍了Hadoop上通常的JOIN实现方法,然后给出了几种针对不同输入数据集的优化方法。2. 常见的join方法介绍假设要进行join的数据分别来自File转载 2014-01-05 16:53:04 · 917 阅读 · 0 评论 -
hadoop对于压缩文件的支持及算法优缺点
hadoop对于压缩格式的是透明识别,我们的MapReduce任务的执行是透明的,hadoop能够自动为我们 将压缩的文件解压,而不用我们去关心。 如果我们压缩的文件有相应压缩格式的扩展名(比如lzo,gz,bzip2等),hadoop就会根据扩展名去选择解码器解压。压缩格式工具算法文件扩展名多文件可分割性DEFLATE无D转载 2014-01-23 10:27:01 · 1297 阅读 · 0 评论 -
线上Spark处理Bzip2引出Hadoop Bzip2线程安全问题
我们的Hadoop生产环境有两个版本,其中一个是1.0.3,为了支持日志压缩和split,我们添加了hadoop-1.2中关于Bzip2压缩的feature. 一切运行良好。为了满足公司对迭代计算的需求(复杂HiveSQL,广告推荐算法,机器学习 etc), 我们构建了自己的Spark集群,最初是Standalone Mode,版本spark-0.9.1,支持Shark。上线后,问题接踵而原创 2015-01-14 10:17:02 · 1919 阅读 · 0 评论 -
一次JobTracker拥堵问题排查过程
Hadoop版本 1.0.3问题描述:随着每日MR作业数目渐增,用户反映提交作业时经常阻塞,也就是JobTracker发生了拥堵。这种情况开始频繁出现,我们调大JobTracker端的RPC Handler线程个数,并定时对JobTracker的栈信息进行分析,如果RPC Handler线程全部被BLOCKED住了,就Dump出栈信息,并及时发出报警。原因及解决办法:经过分析几次抓原创 2015-01-12 15:44:49 · 1064 阅读 · 0 评论 -
Hadoop0.21内存泄漏问题:数据块映射管理的一个bug
我们的HDFS生产环境是Hadoop-0.21,机器规模200台,block在7KW左右. 集群每运行几个月,NameNode就会频繁FGC,最后不得不restart NameNode. 因此怀疑NameNode存在内存泄漏问题,我们dump出了NameNode进程在重启前后的对象统计信息。07-10重启前:num #instances #byt原创 2015-01-09 10:49:02 · 1418 阅读 · 0 评论 -
HDFS write流程与代码分析(Hadoop 2.0)
1 ReplyWrite操作是HDFS最基本的操作之一,一般是先create一个文件然后write内容。这篇文章主要讲用户调用FileSystem APT向HDFS写入数据时,HDFS是怎么工作的。1,client发起create请求。通过DistributedFileSystem.create()方法创建文件,其实就是通过DistributedFileSystem内部wrap原创 2014-11-24 16:49:39 · 2578 阅读 · 0 评论 -
[Java] Java 动态代理
NIO API 主要集中在 java.nio 和它的 subpackages 中: java.nio定义了 Buffer 及其数据类型相关的子类。其中被 java.nio.channels 中的类用来进行 IO 操作的 ByteBuffer 的作用非常重要。 java.nio.channels定义了一系列处理 IO 的 Channel 接口以及这些接口在文件系统和网络通讯上转载 2013-01-31 23:32:12 · 1093 阅读 · 0 评论 -
hadoop Partition使用实例
1、为何使用Partitioner,主要是想reduce的结果能够根据key再次分类输出到不同的文件夹中。2、结果能够直观,同时做到对数据结果的简单的统计分析。1、输入的数据文件内容如下(1条数据内容少,1条数据内容超长,3条数据内容正常):kaka 1 28hua 0 26chao 1tao 1转载 2013-05-23 18:34:41 · 1468 阅读 · 0 评论 -
Hadoop RPC详解-RMI
Hadoop RPC 远程过程调用是Hadoop中的核心概念。在深入研究RPC之前,先看看远程调用的鼻祖Java RMI.1.什么是RMIJava远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用原创 2014-03-20 21:51:45 · 2151 阅读 · 0 评论 -
[HBase] HBase client-side buffer 客户端缓存
HBase Client 通过table.put(Put put)方法向Server端写数据,默认情况下,每次调用table.put()方法 ,就会触发一次RPC将数据提交到Server端在批量写数据的情况下,过多的时间都浪费在RPC上了。HBase Table 类提供了一个setAutoFlush(boolean) 方法,能够控制是否开启client side buffer(客户端缓存,原创 2013-01-17 22:51:26 · 4082 阅读 · 0 评论 -
[Hadoop] HDFS分布式文件系统设计详解
虽然本文已经比较旧远了,但是在很多方面还是有一定学习的价值,中文版译者为killme。一、前提和设计目标硬件错误是常态,而非异常情况,HDFS可能是有成百上千的server组成,任何一个组件都有可能一直失效,因此错误检测和快速、自动的恢复是HDFS的核心架构目标。跑在HDFS上的应用与一般的应用不同,它们主要是以流式读为主,做批量处理;比之关注数据访问的低延迟问题,更关键的翻译 2012-12-18 14:51:34 · 725 阅读 · 0 评论 -
[Hadoop] DFSClient: Could not complete file ...
dir1目录下有上千个小文件,通过脚本将hdfs中目录dir1中的内容拷贝到dir2中时,报错:INFO hdfs.DFSClient: Could not complete file /test/input/myuba/uba320-329/University327_12.owl.N-Triple retrying...原因是脚本执行时,我在ecliplse的DFS插件原创 2013-04-03 16:33:21 · 5997 阅读 · 0 评论 -
[Hadoop] 云计算管理三大利器:Nagios、Ganglia和Splunk
摘 自:http://bbs.watchstor.com/thread-168866-1-3.html发表于:2013-2-19综合利用Nagios、Ganglia和Splunk搭建起的云计算平台监控体系,具备错误报警、性能调优、问题追踪和自动生成运维报表的功能。有了这套系统,就可轻松管理Hadoop/HBase云计算平台。云计算早已不是停留在概念阶段了,各大公司都购买转载 2013-07-11 21:51:19 · 1434 阅读 · 0 评论 -
linux系统中oom killer策略
最近经常出现datanode被内核oom-killer干掉的情况,下面追查下原因:(todo...)什么是Overcommit和OOM? overcommit的策略 当oom-killer发生时,linux会选择杀死哪些进程在Unix中,当一个用户进程使用malloc()函数申请内存时,假如返回值是NULL,则这个进程知道当前没有可用内存空间,就会做相应的处理工作。许多进程原创 2014-03-22 21:44:45 · 2470 阅读 · 0 评论 -
HDFS源码学习(1)——NameNode主要数据结构
FSNameSystemFSNameSystem是HDFS文件系统实际执行的核心,提供各种增删改查文件操作接口。其内部维护多个数据结构之间的关系:fsname->block列表的映射所有有效blocks集合block与其所属的datanodes之间的映射(该映射是通过block reports动态构建的,维护在namenode的内存中。每个datanode在启动时向namenode转载 2014-04-28 11:18:03 · 2641 阅读 · 0 评论 -
Hadoop RPC概述
Hadoop作为一个存储与服务的基础性平台,同时它的内部有采用了master/slave架构,那么其内部通信和与客户端的交互就是必不可少的了。Hadoop在实现时抛弃了JDK自带的一个RPC实现——RMI,而自己基于IPC模型实现了一个高效的轻量级RPC。整体结构 在IPC包中,最重要的3个类是ServerC,lient和RPC,它们具有层次化的结构。 1.RPC转载 2014-03-20 22:53:29 · 831 阅读 · 0 评论 -
Hadoop Snappy压缩算法简介
本篇文章做了小部分更改,仅介绍了Snappy,去掉了安装过程,不过不必叹气,更加详细的Hadoop Snappy及HBase Snappy的安装步骤已经另起了一篇文章专门来介绍:Hadoop HBase 配置 安装 Snappy 终极教程 通过这篇文章,相信你一定会几乎毫无困难的成功安装Snappy。Compression就是在用CPU换IO吞吐量/磁盘空间,如果没有什么特殊原因推荐针转载 2014-01-23 10:38:00 · 9949 阅读 · 0 评论 -
Hadoop Snappy安装终极教程
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://shitouer.cn/2013/01/hadoop-hbase-snappy-setup-final-tutorial/ 因为产品需要,这两天研究了一下Hadoop Snappy。先不说什么各个压缩算法之间的性能对比,单是这个安装过程,就很痛苦。网上有很多博友写H转载 2014-01-23 10:39:50 · 3087 阅读 · 4 评论 -
hbase MapReduce程序样例入门(一)
1、先看一个标准的hbase作为数据读取源和输出源的样例:Configuration conf = HBaseConfiguration.create();Job job = new Job(conf, "job name ");job.setJarByClass(test.class);Scan scan = new Scan();TableMapReduceUtil.initT原创 2012-12-18 14:53:51 · 686 阅读 · 0 评论 -
hbase MapReduce程序样例入门(二)
接上一篇3、最后就是从hbase中的表作为数据源读取,hdfs作为数据输出,简单的如下:Configuration conf = HBaseConfiguration.create();Job job = new Job(conf, "job name ");job.setJarByClass(test.class);Scan scan = new Scan();Table原创 2012-12-18 14:53:54 · 794 阅读 · 0 评论 -
[Hadoop] hadoop运维篇(一)
1.重启坏掉的DataNode或JobTracker节点,单个Hadoop节点出现问题时,我们没必要重启整个集群,只需重启单个节点,它就能自动的连接到集群。 在故障节点做如下操作: bin/hadoop-daemon.shstart datanode bin/hadoop-daemon.shstart jobtracker2.动态加入DataNod原创 2012-12-18 14:53:35 · 983 阅读 · 0 评论 -
博客搬家
大家好,今天起我将博客搬到优快云,我的新博客地址:http://blog.youkuaiyun.com/mango_song,感谢优快云提供博客搬家服务,期待加入优快云,和神一样存在的大牛们共同进步~原创 2012-12-18 14:53:47 · 387 阅读 · 0 评论 -
HDFS基本概念
一、HDFS的基本概念1.1、数据块(block)HDFS(Hadoop Distributed File System)默认的最基本的存储单位是64M的数据块。和普通文件系统相同的是,HDFS中的文件是被分成64M一块的数据块存储的。不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间。1.2、元数据节点(Namenode)和数据节点(d原创 2012-12-18 14:51:36 · 489 阅读 · 0 评论 -
HTablePool的实现分析
1)基本概念HTablePool3种类型PoolType.Reusable(默认)一个实例池,多线程复用,内部是每个table一个ConcurrentLinkedQueue装多个实例PoolType.ThreadLocal,很奇怪的实现,每个线程只能有一个实例,感觉在多线程的场景没有意义PoolType.RoundRobin(没有被使用,就算设置了该类型也转载 2013-01-27 18:51:55 · 761 阅读 · 0 评论 -
[HBase] Hbase Coprocessors
本文是笔者学习过程中的简单笔记,日后会逐渐增加内容,主要参考资料是《Hbase The Definitive Guide》。我们可以通过Filter来减少从Server到Client在网络上传输的数据总量,以提升效率。通过HBase的Coprocessor特性,我们甚至可以将计算(computation)移动到数据所在的节点。Introduction to Coprocessors原创 2013-01-25 14:00:31 · 3206 阅读 · 0 评论 -
[HBase] HBase性能优化方法总结
本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法。有关HBase系统配置级别的优化,这里涉及的不多,这部分可以参考:淘宝Ken Wu同学的博客。 原文出自量子恒道官方博客:http://blog.linezing.com/2012/03/hbase-performance-optimization1. 表的设计1.1 Pre-Creating Re转载 2013-01-18 00:39:22 · 887 阅读 · 0 评论 -
[HBase] HBase 之TableOutputFormat
MapReducer的输出导入到HBase有多种方式可以实现, TableOutputFormat就是其中一种.1. hbase建表hbase(main):132:0* create 't1','f1' 0 row(s) in 1.4890 seconds hbase(main):133:0> scan 't1' ROW CO转载 2012-12-18 14:53:49 · 2766 阅读 · 1 评论