11 快乐程序员

尚未进行身份认证

从事hadoop/hbase/hive/impala运维和研究

等级
TA的排名 8k+

一次因为数据问题引起的reduce被卡住streaming作业问题排查

广告产品技术部有一个作业总是卡在某个reduce上,运行了好几个小时也运行不完,经过他们初步排查找不着问题原因,发邮件让我帮看看,我看了一下这个streaming作业是用python实现的,而且听他们描述,3月17之前该作业是没问题的,以下是可能存在问题的地方:

2015-03-21 11:27:05

Yarn shuffle OOM错误分析及解决

前两周和同事一起分析了一下yarn shuffle oom的问题,最后他写了一个blog,我这里就不重复写了,把他的转载过来,他的blog写得都很有深度,推荐大家去看看。原文地址:http://dj1211.com/?p=358最近集群中一些任务经常在reduce端跑出Shuffle OOM的错误,具体错误如下:2015-03-09 16:19:13,646 W

2015-03-19 13:27:08

hive中使用正则表达式不当导致运行奇慢无比

业务保障部有一个需求,需要用hive实时计算上一小时的数据,比如现在是12点,我需要计算11点的数据,而且必须在1小时之后运行出来,但是他们用hive实现的时候发现就单个map任务运行都超过了1小时,根本没法满足需求,后来打电话让我帮忙优化一下,以下是优化过程:

2015-03-19 13:20:42

Spark Streaming容错的改进和零数据丢失

转载地址:http://www.csdn.net/article/2015-03-03/2824081       实时流处理系统必须要能在24/7时间内工作,因此它需要具备从各种系统故障中恢复过来的能力。最开始,Spark Streaming就支持从driver和worker故障恢复的能力。然而有些数据源的输入可能在故障恢复以后丢失数据。在Spark 1.2版本中,我们已经在Spark 

2015-03-04 18:31:38

Spark RDD API详解(一) Map和Reduce

转载地址:https://www.zybuluo.com/jewes/note/35032RDD是什么?RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD。从编程的角度来看,RDD可以简单看成是一个数组。和普通数组的区别是,RDD中的数据是分区存储的,这样不同分区的数据就可以分布在不同的机器上,同时可以被并行处理。因此,Spark应用程序所做的无

2015-03-02 17:19:51

理解Spark的核心RDD

转载地址:http://www.infoq.com/cn/articles/spark-core-rdd与许多专有的大数据处理平台不同,Spark建立在统一抽象的RDD之上,使得它可以以基本一致的方式应对不同的大数据处理场景,包括MapReduce,Streaming,SQL,Machine Learning以及Graph等。这即Matei Zaharia所谓的“设计一个通用的

2015-03-02 14:38:58

通过sed和awk获取集群最新挂掉的DataNode信息

由于之前远程桌面不好使,集群出现了missing block的时候没法登陆远程桌面查看是那些节点由于重启导致DataNode进程挂掉。同时简单的用命令hdfs dfsadmin -report查看又不方便,信息量太多,以下是一个用sed和awk实现的简单的脚本:

2015-02-26 10:40:14

MapReduce中使用字符串拼接导致的问题

今天在帮业务方优化mapreduce作业时遇到一个用字符串拼接的问题。

2015-02-25 16:09:59

Linux下显示IP地理位置信息的小工具-nali

一、简介  nali,名字取自中文“哪里”的拼音。nali包含一组命令行程序,其主要功能就是把一些网络工具的输出的IP字符串,附加上地理位置信息(使用纯真数据库QQWry.Dat)。例如74.125.128.104会变成74.125.128.104[美国 加利福尼亚州山景市谷歌公司]。查询是在本地进行,并不会进行联网查询,所以效率方面不会对原始命令产生什么影响。  目前包含以下几个

2015-02-14 21:24:46

hive-0.13固化自定义UDF

之前帮业务方固化过hive-0.7的自定义的UDF,由于现在大部分业务数据都已经迁移到hadoop2.4.0,hive使用的版本是0.13,之前固化的UDF不能用了,让在0.13上面也固化一下,以下是固化过程:

2015-02-06 18:40:08

Hive部署UDF的四种方法

在向Hive添加自定义的UDF或者添加Hive自带的类,如GenericUDFDBOutput时,需要将包含UDF类的Jar包添加到Hive环境中,这样就可以使用Create [temporary]function创建函数了,添加UDF Jar包有四种方法,下面分别进行介绍。       第一种是最常见但也不招人喜欢的方式是使用ADD JAR(s)语句,之所以说是不招人喜欢是,通过该方式添

2015-02-05 14:43:08

DistributedRaidFileSystem引起的HDFS RAED不准问题

在测试环境和线上运行相同的hql,而且表对应的数据量都是95G左右,但是发现在测试环境和线上的counter:HDFS RAED不一致,而且差一个数量级,线上只有8G左右,而测试环境达到95G,基本上就是全文件扫描,没有体现出RCFile的优势。

2015-01-18 22:57:19

RCFile存储格式

本文介绍了Facebook公司数据分析系统中的RCFile存储结构,该结构集行存储和列存储的优点于一身,在MapReduce环境下的大规模数据分析中扮演重要角色。Facebook曾在2010 ICDE(IEEE International Conference on Data Engineering)会议上介绍了数据仓库Hive。Hive存储海量数据在Hadoop系统中,提供了一套类数据库

2015-01-15 16:53:08

hive rcfile存储格式

Hive的三种文件格式:TEXTFILE、SEQUENCEFILE、RCFILE中,TEXTFILE和SEQUENCEFILE的存储格式都是基于行存储的,RCFILE是基于行列混合的思想,先按行把数据划分成N个row group,在row group中对每个列分别进行存储。另:Hive能支持自定义格式,详情见:Hive文件存储格式基于HDFS的行存储具备快速数据加载和动态负载的高适应能力,

2015-01-15 16:51:59

hadoop2.4.0的distcp引起的问题

最近在支持业务部门将数据从hadoop0.20.203迁移到hadoop2.4.0的时候,distcp报了几个错误,在这里记录一下:

2015-01-06 12:46:14

linux中shell变量$#,$@,$0,$1,$2的含义解释:

linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出

2014-12-27 23:27:27

hadoop2.0的mapreduce作业classpath研究

hdfs raid从facebook移植过来很久了,包括hadoop0.20.203和hadoop2.4.0版本,但是最近才准备上线hadoop2.4.0版本的hdfs raid,上线前准备在好好测试测试,确保上线顺利,hdfs raid代码分成两部分,一部分是hdfs下面的代码,这部分代码上一次和其他patch一起已经上线,另外一部分是raid自己比较独立的代码,按照之前的计划,后一部分代码准备只部署在RaidNode节点和gateway上面,这样对集群的影响是最小的,不需要重启hadoop进程,在测试R

2014-12-25 13:14:46

hadoop2.4 支持snappy

我们hadoop2,4集群默认不支持snappy压缩,但是最近有业务方说他们的部分数据是snappy压缩的(这部分数据由另外一个集群提供给他们时就是snappy压缩格式的)想迁移到到我们集群上面来进行计算,但是直接运行时报错:

2014-12-22 23:14:07

hadoop2.0的DataNode与NameNode交互机制相关代码分析

HDFS Federation是为解决HDFS单点故障而提出的NameNode水平扩展方案,该方案允许HDFS创建多个Namespace以提高集群的扩展性和隔离性。在Federation中新增了block-pool的概念,block-pool就是属于单个Namespace的一组block,每个DataNode为所有的block-pool存储block,可以理解block-pool是一个重新将blo

2014-12-18 22:30:46

Hadoop 2.0 Datanode

转载地址:http://dj1211.com/?cat=10&paged=2Hadoop 2.0 Datanode 更加细分,将结构分为两个大部分。DataNode相当于一个包装转发器,将请求发送给相应的处理单元。DataNode 分为以下两部分:1、与NameNode汇报的逻辑,block report,heartbeat2、底层与文件

2014-12-17 15:49:47

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!