hadoop
文章平均质量分 75
快乐程序员
从事hadoop/hbase/hive/impala运维和研究
展开
-
hadoop1.0 TaskTracker因为分布式缓存导致内存泄露的一次问题排查
hadoop1.0 TaskTracker因为分布式缓存导致内存泄露的一次问题排查原创 2014-11-29 18:36:18 · 2062 阅读 · 0 评论 -
namenode崩溃的数据恢复测试
前言用second namenode 数据恢复测试。datanode由于采用2-3个备份,即使一台设备损坏,还是能自动恢复并找回全部数据。hadoop 1.0.3和0.20之前的版本,namenode存在单点问题。如果namenode损坏,会导致整个系统数据彻底丢失。所以second namenode就显得特别重要。本文主要探讨namenode损坏的数据恢复实践,包括配置文件,部署,nam转载 2013-10-22 17:59:15 · 2642 阅读 · 0 评论 -
NameNode不能启动报 NullPointerException
hadoop 1.02,hbase 0.92.系统所有node改了ip地址后,second name node过了一段时间退出,报如下错误:2012-12-17 17:09:05,646 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.lang.NullPointerException at org.apa原创 2013-10-22 17:33:43 · 2471 阅读 · 0 评论 -
Hadoop上线下线节点
添加节点1.修改host 和普通的datanode一样。添加namenode的ip 2.修改namenode的配置文件conf/slaves 添加新增节点的ip或host 3.在新节点的机器上,启动服务 [root@slave-004 hadoop]# ./bin/hadoop-daemon.sh start datanode[root@原创 2013-10-21 11:08:34 · 3285 阅读 · 0 评论 -
论hadoop的balancer
其实很多人都知道hadoop自带一个hadoop balancer的功能,作用于让各个datanode之间的数据平衡.比如说node-A有100GB数据,占用磁盘99%空间;而node-B只有10GB数据占用磁盘10%空间~那么当我们以hdfs身份运行hadoop balance的时候,hadoop将会平衡这两个node之间的数据.至于多少叫做平衡,hadoop的d原创 2013-10-21 10:53:26 · 1228 阅读 · 0 评论 -
hadoop集群问题跟踪
1、no room for reduce task错误日志:2013-07-30 12:40:23,186 WARN org.apache.hadoop.mapred.JobInProgress: No room for reduce task. Node tracker_zw-hadoop-slave-80-125.:zw_80_125/127.0.0.1:15436 has 49630原创 2013-07-31 11:08:53 · 1528 阅读 · 0 评论 -
Hadoop管理命令实践
Dfsamin是一个用来获取HDFS文件系统实时状态信息的多任务工作,具有对于HDFS文件系统管理操作的功能。在拥有超级用户权限的前提下,管理员可以在终端中通过Hadoop dfsadmin对于其进行功能方法的调用。主要命令如下:-report 主要用来获取文件系统的基本信息和统计信息-safemodeenter!leave!get!wait 安全模式的维护命令。安全模式是NameNode原创 2013-10-25 16:19:44 · 1091 阅读 · 0 评论 -
设置hadoop Job允许map task失败的比例
hadoop任务分为map task和reduce task,当map task执行失败后会重试,超过重试次数(mapred.map.max.attempts指定,默认为4),整个job会失败,这是我们不想看到的。解决办法:hadoop提供配置参数“mapred.max.map.failures.percent”解决这个问题。如果一个Job有200个map task,该原创 2013-10-16 16:36:02 · 2710 阅读 · 0 评论 -
hadoop对于压缩文件的支持及算法优缺点
hadoop对于压缩格式的是透明识别,我们的MapReduce任务的执行是透明的,hadoop能够自动为我们 将压缩的文件解压,而不用我们去关心。 如果我们压缩的文件有相应压缩格式的扩展名(比如lzo,gz,bzip2等),hadoop就会根据扩展名去选择解码器解压。压缩格式工具算法文件扩展名多文件可分割性DEFLATE无D转载 2013-10-15 09:29:28 · 1220 阅读 · 0 评论 -
hadoop优化
Hadoop平台已经成为了大多数公司的分布式数据处理平台,随着数据规模的越来越大,对集群的压力也越来越大,集群的每个节点负担自然就会加重,而且集群内部的网络带宽有限,数据交换吞吐量也在面临考验,由此引发了人们对大规模数据处理进行优化的思考。本文仅从实践经验出发,针对Hadoop Job优化提出了一些观点,不包含HDFS的优化。Job Tracker Related严格来说,转载 2013-10-09 10:42:29 · 1424 阅读 · 0 评论 -
hadoop,hive启用lzo压缩和创建lzo索引
启用lzo压缩对于小规模集群还是很有用的,压缩比率大概能达到原始日志大小的1/3。同时解压缩速度也比较快,Hadoop原生是支持gzip和bzip2压缩的,这两种压缩虽然压缩比率比lzo更大,但是在做map reduce解压缩的时候,慢的不能忍,所以通常不会用gzip或者bzip2。相同数据量,gzip的mr速度大概是lzo的1.5-2倍,而bzip2是lzo的3-4倍。不过lzo不比gz转载 2013-10-15 00:10:44 · 2615 阅读 · 0 评论 -
使hadoop支持Splittable压缩lzo
在hadoop中使用lzo的压缩算法可以减小数据 的大小和数据的磁盘读写时间,不仅如此,lzo是基于block分块的,这样他就允许数据被分解成chunk,并行的被hadoop处理。这样的特点,就可以让lzo在hadoop上成为一种非常好用的压缩格式。lzo本身不是splitable的,所以当数据为text格式时,用lzo压缩出来的数据当做job的输入是一个文件作为一个map。但是seque转载 2013-10-15 00:00:08 · 1465 阅读 · 0 评论 -
Map/Reduce中Join查询实现
一、背景早在8月份的时候,我就做了一些MR的Join查询,但是发现回北京之后,2个月不用,居然有点生疏,所以今天早上又花时间好好看了一下,顺便写下这个文档,以供以后查阅。二、环境JDK 1.6、Linux操作系统、hadoop0.20.2三、资料数据在做这个Join查询的时候,必然涉及数据,我这里设计了2张表,分别较data.txt和info.txt,字段之间以/t划分。d转载 2013-10-15 10:29:36 · 987 阅读 · 0 评论 -
通过Hadoop的API管理Job
一、背景前些时候写了一篇这样的文档,由于当时的时间比较紧,且有些细节内容不太好细说,于是写的比较粗。之后也有些朋友发邮件给我,问我要详细的过程以及管理方式。于是,今天就像把这个内容细化,写在这里,供大家参考。二、环境简述Ø 操作系统Linux、JDK1.6Ø Hadoop 0.20.2Ø 开发工具选择eclipse 3.3.2(可配合使用hadoop的转载 2013-10-15 10:28:09 · 1338 阅读 · 0 评论 -
Hadoop MapReduce进阶 使用分布式缓存进行replicated join
概念:reduce-side join技术是灵活的,但是有时候它仍然会变得效率极低。由于join直到reduce()阶段才会开始,我们将会在网络中传递shuffle所有数据,而在大多数情况下,我们会在join阶段丢掉大多数传递的数据。因此我们期望能够在map阶段完成整个join操作。主要技术难点:在map阶段完成join的主要困难就是mapper可能需要与一个它自己不能获得的数据进转载 2013-09-27 15:03:35 · 1132 阅读 · 0 评论 -
Hadoop公平调度器指南
最近看到调度器这一块,发现Hadoop官方文档中有关公平调度器(Fair Scheduler Guide)和容量调度器(Capacity Scheduler Guide)部分的文档还没有汉化,Google了下也未发现有相关汉化,So,我班门弄斧,抛砖引玉一下了。这里先奉上公平调度器的中文版。由于我一直用Cloudera Hadoop 0.20.1+152的版本,所以这个汉化也是基于里面的文档来的。转载 2013-07-15 12:56:22 · 1194 阅读 · 0 评论 -
CentOS 6.2及最新操作系统部署Hadoop存在的问题
最近新采购的一批机器,由于intel cpu体系架构的改变,新机器的系统需要升级,选择了CentOS 6.2系统。1 在新机器上将MR业务开启后,导致整个集群都反应很慢,运行的job几乎都被卡住;通过ganglia监控发现,机器的system cpu超过30%,机器几乎是满负载的情况。原因分析:RHEL 6.2和6.3系统中包含了一个新特性,被称为“transparent转载 2013-09-07 21:20:53 · 2316 阅读 · 1 评论 -
hadoop job 重要性能参数
mapred.task.profile是否对任务进行profiling,调用java内置的profile功能,打出相关性能信息mapred.task.profile.{maps|reduces}对几个map或reduce进行profiling。非常影响速度,建议在小数据量上尝试mapred.job.reuse.jvm.num.tasks1表示不reuse,-转载 2013-11-07 17:05:33 · 1332 阅读 · 0 评论 -
大象的崛起:Hadoop七年发展风雨录
在互联网这个领域一直有这样的说法:“如果老二无法战胜老大,那么就把老大赖以生存的东西开源吧”。当年Yahoo!与Google还是处在强烈竞 争关系时候,招聘了Doug(Hadoop创始人),把Google老大赖以生存的DFS与Map-Reduce开源了,开始了Hadoop的童年时期。 差不多在2008年的时候,Hadoop才算逐渐成熟。从初创到现在,Hadoop经过了至少7年的积累,现在的转载 2013-11-11 23:29:07 · 1228 阅读 · 0 评论 -
Hadoop RPC
转载地址:http://dj1211.com/?p=102#more-102一、说明 Hadoop无论是1.x还是2.x机器不同角色之间的通信全部是通过RPC完成的,RPC底层都是通过Dynamic Proxy完成,无外乎就是TCP连接,验证协议,提取字段等等。所不同的是1.x采用的是plain java自己完成序列化与反序列化,而2.x底层采用的是PB序列化与反序列化,造成转载 2014-12-17 15:18:59 · 1085 阅读 · 0 评论 -
hadoop1.0脚本解析-留着备用
“兵马未动,粮草先行”,要想深入的了解hadoop,我觉得启动或停止hadoop的脚本是必须要先了解的。说到底,hadoop就是一个分布式存储和计算框架,但是这个分布式环境是如何启动,管理的呢,我就带着大家先从脚本入手吧。说实话,hadoop的启动脚本写的真好,里面考虑的地方非常周全(比如说路径中有空格,软连接等)。1、hadoop脚本简单介绍 hadoop的脚本分转载 2014-11-29 22:46:28 · 703 阅读 · 0 评论 -
Erasure code 原理
1. 什么是erasure code?erasure code可以认为是RAID的通式,任何RAID都可以转换为特定的erasure code。在传统的RAID中,仅支持少量的磁盘分布,当系统中存在多个分发点和多节点时,RAID将无法满足需求。比如RAID5只支持一个盘失效,即使是RAID6也仅支持两个盘失效,所以支持多个盘失效的算法也就是erasure code是解决这一问题的办转载 2014-11-02 18:08:48 · 1947 阅读 · 0 评论 -
MapReduce:详解Shuffle过程
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里转载 2014-11-03 12:28:09 · 731 阅读 · 0 评论 -
hadoop开启namenode审计日志
hadoop开启namenode审计日志,需要单独配置log4j相关信息,以下是原创 2014-05-08 17:04:54 · 8298 阅读 · 2 评论 -
怎样贡献hadoop代码
转自Hadooper论坛:http://www.hadooper.cn/dct/page/65789获得源码 首先,你需要Hadoop的 源码。 你可以用SVN获得源码,大部分的开发都在”trunk”下。svn checkout http://svn.apache.org/repos/asf/hadoop/core/trunk/ hadoop-core-tru原创 2014-01-22 12:44:38 · 1975 阅读 · 0 评论 -
hadoop任务运行源代码深究
1、TaskTracker.TaskInProgress.launchTask():创建并启动TaskRunner,对于MapTask,创建的是MapTaskRunner,对于ReduceTask,创建的是ReduceTaskRunner2、调用TaskRunner.start():设置child进程的classpath、启动命令、标准输出、错误输出、启动参数、日志大小限制、工作目录等3、原创 2014-03-24 18:08:44 · 1069 阅读 · 0 评论 -
map获取输入文件名称和GenericOptionsParser使用
该文章中实现业务需求的方法不可取(其实可以使用hadoop提供的多输入来实现),但是该例子去能很好的展现在map函数中怎么拿到输入文件的名称:原文地址:http://datamachine.iteye.com/blog/1963256选择Hadoop,低成本和高扩展性是主要原因,但但它的开发效率实在无法让人满意。 以关联计算为例。 假设:HDFS上有2个文件,分别是转载 2014-03-20 18:37:29 · 3712 阅读 · 0 评论 -
深入理解SetUID
最近在看hadoop关于map/reduce任务运行部分的代码,看到任务启动时的权限涉及到linux的setuid,以下是关于介绍setuid的一篇很好的文章,贴出来以备后用。==============================================================================================================转载 2014-02-12 16:20:02 · 1409 阅读 · 0 评论 -
Hadoop管理员的十个最佳实践
前言接触Hadoop有两年的时间了,期间遇到很多的问题,既有经典的NameNode和JobTracker内存溢出故障,也有HDFS存储小文件问题,既有任务调度问题,也有MapReduce性能问题.遇到的这些问题有些是Hadoop自身的缺陷(短板),有些则是使用的不当。在解决问题的过程中,有时需要翻源码,有时会向同事、网友请教,遇到复杂问题则会通过mail list向全球各地Hado转载 2014-01-22 12:32:10 · 1155 阅读 · 0 评论 -
Hadoop MapReduce开发最佳实践(上篇)
本文是Hadoop最佳实践系列第二篇,上一篇为《Hadoop管理员的十个最佳实践》。MapRuduce开发对于大多数程序员都会觉得略显复杂,运行一个WordCount(Hadoop中hello word程序)不仅要熟悉MapRuduce模型,还要了解Linux命令(尽管有Cygwin,但在Windows下运行MapRuduce仍然很麻烦),此外还要学习程序的打包、部署、提交job、调试等技转载 2014-01-22 12:34:13 · 1371 阅读 · 0 评论 -
Hadoop工具生态系统指南
Hadoop工具生态系统生长迅速,以下是IT经理网整理的最新Hadoop工具资源,供IT经理日常参考,欢迎读者来信或留言补充。 HadoopApache hadoop项目负责开发可靠的、可扩展的分布式计算开源软件。网址:hadoop.apache.org HDFS分布式文件系统提供高速的应用数据访问。网址:hadoop.apache.转载 2013-12-04 14:28:42 · 1389 阅读 · 0 评论 -
Hadoop实现Secondary Sort (三)
一、背景排序对于MR来说是个核心内容,如何做好排序十分的重要,这几天写了一些,总结一下,以供以后读阅。二、准备1、hadoop版本是0.20.22、输入的数据格式(这个很重要,看清楚格式),名称是secondary.txt:[java] view plaincopyabc 123 acb 124 cbd 523 abc转载 2013-10-15 10:34:58 · 995 阅读 · 0 评论 -
Hadoop实现Secondary Sort (二)
在hadoop中每个reduce的输入的key都是有序的,而value则是无序的。而且同一个job运行多次,由于map完成顺序不同,reduce收到的value顺序是不固定的。那如何才能实现reduce收到有序的value呢?这就需要Secondary Sort。Secondary Sort要解决的问题:reduce收到的value有序。这里举一个场景,来说明Secondary S转载 2013-10-18 18:11:09 · 946 阅读 · 0 评论 -
Hadoop实现Secondary Sort(一)
Hadoop的MapReduce模型支持基于key的排序,即在一次MapReduce之后,结果都是按照key的大小排序的。但是在很多应用情况下,我们需要对映射在一个key下的value集合进行排序,即“secondary sort”。 在《hadoop the definate guide》的P227的“secondary sort”章节中,以为例,在map阶段按照year来分发t原创 2013-10-18 18:00:46 · 1221 阅读 · 0 评论 -
Hadoop DistributedCache
概览DistributedCache 是一个提供给Map/Reduce框架的工具,用来缓存文件(text, archives, jars and so on)文件的默认访问协议为(hdfs://). DistributedCache将拷贝缓存的文件到Slave节点在任何Job在节点上执行之前。文件在每个Job中只会被拷贝一次,缓存的归档文件会被在Slave节点中解压缩。转载 2013-09-27 15:00:32 · 1120 阅读 · 0 评论 -
Hadoop的MultipleOutputFormat使用
一、背景 Hadoop的MapReduce中多文件输出默认是TextOutFormat,输出为part-r- 00000和part-r-00001依次递增的文件名。hadoop提供了MultipleOutputFormat类,重写该类可实现定制自定义的文件名。二、技术细节1.环境:hadoop 0.19(目前hadoop 0.20.2对MultipleOutp转载 2013-09-25 19:19:03 · 1034 阅读 · 0 评论 -
hadoop之failed task和killed task
failed task可理解为自杀,也就是task本身出了问题而自杀;killed task可理解为是他杀,也就是jobtracker认为这个任务的执行是多余的,所以把任务直接杀掉。起初用hadoop的时候经常在一个complete的job中看到几个failed 或者是 killed task,还经常好奇为什么有的时候task的失败不会影响到整个job的失败,而有的时候就会使整个job的失败,到底原创 2013-10-09 14:17:53 · 7779 阅读 · 0 评论 -
JobTracker心跳优化
马上要开始第二阶段优化了,赶快把第一阶段优化内容及结果贴下。•背景–繁忙时段98%~100%的handler线程被BLOCK–RPC请求堆积•Profiling工具 (定位瓶颈)–jstack线上环境使用–yjp测试环境使用优化一:避免频繁调用加锁方法•500次连续jstack结果分析转载 2013-08-21 10:01:22 · 1047 阅读 · 0 评论 -
Hadoop 中的两表join
作为数据分析中经常进行的join 操作,传统DBMS 数据库已经将各种算法优化到了极致,而对于hadoop 使用的mapreduce 所进行的join 操作,去年开始也是有各种不同的算法论文出现,讨论各种算法的适用场景和取舍条件,本文讨论hive 中出现的几种join 优化,然后讨论其他算法实现,希望能给使用hadoop 做数据分析的开发人员提供一点帮助. Facebook 今年在转载 2013-08-07 17:41:33 · 812 阅读 · 0 评论 -
Hadoop查看目录空间使用情况
查看目录空间使用情况命令:hadoop fs -count [-q] 统计出目录数、文件数及指定路径下文件的大小,输出列为:DIR_COUNT, FILE_COUNT, CONTENT_SIZE FILE_NAME.带上-q选项后的输出列为:QUOTA, REMAINING_QUOTA, SPACE_QUOTA, REMAINING_SPACE_QUOTA,转载 2013-08-19 13:57:19 · 7488 阅读 · 0 评论