
hadoop
文章平均质量分 63
JZ_Kaka
这个作者很懒,什么都没留下…
展开
-
Hadoop开发常用的InputFormat和OutputFormat(转)
Hadoop中的Map Reduce框架依赖InputFormat提供数据,依赖OutputFormat输出数据;每一个Map Reduce程序都离不开他们。Hadoop提供了一系列InputFormat和OutputFormat方便开发,本文介绍几种常用的。 TextInputFormat 用于读取纯文本文件,文件被分为一系列以LF或者CR结束的行,key是每一行的位置(偏移量,LongWrit...原创 2011-01-21 11:55:48 · 139 阅读 · 0 评论 -
Map/Reduce的GroupingComparator排序简述
一、背景排序对于MR来说是个核心内容,如何做好排序十分的重要,这几天写了一些,总结一下,以供以后读阅。二、准备1、hadoop版本是0.20.22、输入的数据格式(这个很重要,看清楚格式),名称是secondary.txt:abc 123acb 124cbd 523abc 234nbc 563fds 235khi 234cbd 675...原创 2010-10-27 09:36:34 · 150 阅读 · 0 评论 -
无法启动Datanode的问题
一、背景早上由于误删namenode上的hadoop文件夹,在主节点上重新安装hadoop之后,发现有2个datanode无法启动,经过排查,解决了这个问题,记下。二、现象及解决办法1、2个节点的Tasktracker启动了,但datanode死活起不来。2、使用sh hadoop-daemon.sh命令单独也无法启动。3、错误信息如下:2010-08-10 10:51:23,413 ERROR ...原创 2010-10-27 09:37:00 · 261 阅读 · 0 评论 -
Map/Reduce中公平调度器配置
一、背景一般来说,JOB的执行就是FIFO的过程(先进先出),这样的方式资源得不到充分的使用。所以配置了一下公平调度。二、配置实现1、环境:hadoop0.20.22、拷贝/jz/hadoop-0.20.2/contrib/fairscheduler/hadoop-0.20.2-fairscheduler.jar到hadoop的lib目录下,并复制到集群所有机器上。3、修改mapred-site....原创 2010-10-27 09:37:27 · 146 阅读 · 0 评论 -
Hadoop的MultipleOutputFormat使用
一、背景 Hadoop的MapReduce中多文件输出默认是TextOutFormat,输出为part-r- 00000和part-r-00001依次递增的文件名。hadoop提供了MultipleOutputFormat类,重写该类可实现定制自定义的文件名。二、技术细节1.环境:hadoop 0.19(目前hadoop 0.20.2对MultipleOutputFormat支持不好),li...原创 2010-10-27 09:37:57 · 197 阅读 · 0 评论 -
Hadoop中DBInputFormat和DBOutputFormat使用
一、背景 为了方便MapReduce直接访问关系型数据库(Mysql,Oracle),Hadoop提供了DBInputFormat和DBOutputFormat两个类。通过DBInputFormat类把数据库表数据读入到HDFS,根据DBOutputFormat类把MapReduce产生的结果集导入到数据库表中。二、技术细节1、DBInputFormat(Mysql为例),先创建表:CRE...原创 2010-10-27 09:38:27 · 181 阅读 · 0 评论 -
Map/Reduce中的Combiner的使用
一、作用1、combiner最基本是实现本地key的聚合,对map输出的key排序,value进行迭代。如下所示:map: (K1, V1) → list(K2, V2) combine: (K2, list(V2)) → list(K2, V2) reduce: (K2, list(V2)) → list(K3, V3)2、combiner还具有类似本地的reduce功能.例如hadoop自带的...原创 2010-10-27 09:38:53 · 148 阅读 · 0 评论 -
Map/Reduce中的Partiotioner使用
一、环境1、hadoop 0.20.22、操作系统Linux二、背景1、为何使用Partitioner,主要是想reduce的结果能够根据key再次分类输出到不同的文件夹中。2、结果能够直观,同时做到对数据结果的简单的统计分析。三、实现1、输入的数据文件内容如下(1条数据内容少,1条数据内容超长,3条数据内容正常):kaka 1 28hua 0 26chao ...原创 2010-10-27 09:39:44 · 202 阅读 · 0 评论 -
Hadoop中自定义计数器
一、环境1、hadoop 0.20.22、操作系统Linux二、背景1、最近写MR的代码,总在想统计一些错误的数据出现的次数,发现如果都写在reduce的输出里太难看了,所以想找办法专门输出一些统计数字。2、翻看《hadoop权威指南》第8章第1节的时候发现能够自定义计数器,但都是基于0.19版本写的,好多函数都不对,改动相对较大。3、基于上面2个理由,写个文档,记录一下。三、实现1、前提:写入一...原创 2010-10-27 09:40:11 · 221 阅读 · 0 评论 -
Map/Reduce使用杂记
一、硬件环境1、CPU:Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz2、内存:2G3、硬盘:500G4、网卡:百兆电卡5、网络:局域网络6、集群数量:10台机器,1个master,10个slaves(master也做slave了!呵呵)二、关于同时运行的map和reduce数量。1、同时运行的数量通过mapred.tasktracker.map.t...原创 2010-10-27 09:40:38 · 157 阅读 · 0 评论 -
Hadoop分布式安装
一、安装准备1、下载hadoop 0.20.2,地址:http://www.apache.org/dist/hadoop/core/hadoop-0.20.2/2、JDK版本:jdk-6u20-linux-i586.bin (必须是1.6)3、操作系统:Linux s132 2.6.9-78.8AXS2smp #1 SMP Tue Dec 16 02:42:55 EST 2008 x86_64 x...原创 2010-10-27 09:41:06 · 130 阅读 · 0 评论 -
Zookeeper分布式安装手册
一、安装准备1、下载zookeeper-3.3.1,地址:http://www.apache.org/dist/hadoop/zookeeper/zookeeper-3.3.1/2、JDK版本:jdk-6u20-linux-i586.bin3、操作系统:Linux s132 2.6.9-78.8AXS2smp #1 SMP Tue Dec 16 02:42:55 EST 2008 x86_64 x...原创 2010-10-27 09:41:36 · 151 阅读 · 0 评论 -
Map/Reduce中分区和分组的问题
一、为什么写分区和分组在排序中的作用是不一样的,今天早上看书,又有点心得体会,记录一下。二、什么是分区1、还是举书上的例子,在8.2.4章节的二次排序过程中,用气温举例,所以这里我也将这个例子说一下。源数据内容1900 35°C1900 34°C1900 34°C...1901 36°C1901 35°C书上的例子是为了去除一年当中气温最高的值,那么将年份和气温做了一个复合的key.2、通过设置了...原创 2010-10-27 09:35:57 · 165 阅读 · 0 评论 -
关于Map和Reduce最大的并发数设置
一、环境1、hadoop 0.20.22、操作系统 Linux二、设置1、因为hadoop的集群所有的机器不可能完全的配置一样,所以,不同节点机器上并发的最大map和reduce数量最好也不要相同。2、在对应的节点机器上修改mapreduce-sit.xml文件,添加参数如下:<property> <name>mapred.tasktracker.map.tasks.ma...原创 2010-10-27 09:34:31 · 530 阅读 · 0 评论 -
关于集群数据负载均衡
一、环境1、hadoop 0.20.22、操作系统 Linux二、关于负载均衡1、一般情况下,数据在录入集群的时候就进行负载均衡,根据各个节点的情况来做数据平衡分发存放。2、但是如果在新增节点之后,如果想做到负载均衡则需要使用balancer的命令。对于这个命令,一般是有一个阀值,默认是10%也就是说,节点之间差额不过10%,集群认为就是均衡的。3、当然,负载的越平均,查询相对也较快,但是均衡的过...原创 2010-10-27 09:33:49 · 170 阅读 · 0 评论 -
Map/Reduce的内存使用设置
一、背景今天采用10台异构的机器做测试,对500G的数据进行运算分析,业务比较简单,集群机器的结构如下:A:双核CPU×1、500G硬盘×1,内存2G×1(Slaver),5台B:四核CPU×2、500G硬盘×2,内存4G×2(Slaver),4台C:四核CPU×2、500G硬盘×2,内存4G×8(Master),1台软件采用Hadoop 0.20.2,Linux操作系统。二、过程1、制造了500...2011-01-21 11:57:34 · 251 阅读 · 0 评论 -
分布式集群中的硬件选择
一、背景最近2个月时间一直在一个阴暗的地下室的角落里工作,主要内容就是hadoop相关的应用。在这期间,Hadoop的应用确实得到认可,但是同时也带来了一些问题,软件方面我就不在这里说了,只说说一些物理方面的局限:1、众所周知,hadoop能够接受任何类型的机器加入集群,在多不在精。但是这带来一个问题,机房的空间开销以及电费。2、机器太多,人力维护成本也是增加的。机柜啊、物理空间都是个不小的负担和...原创 2011-01-21 11:58:23 · 255 阅读 · 0 评论 -
Hadoop的基准测试工具使用(部分转载)
一、背景由于以前没有细看hadoop提供的测试工具,只是在关注hadoop本身的内容,所以很多的性能测试都忽略了。最近花了一周的时间准备做个性能测试,但是都是采用自己的方法得出的抽象值。今天看淘宝的博客,提到hadoop自带的测试工具,遂试了一把,记录一下,供以后参考。二、使用我做基准测试主要是用了hadoop-0.20.2-test.jar这个工具jar包。主要是做了I/O的测试。在网上也找了一...原创 2011-01-21 11:58:55 · 281 阅读 · 0 评论 -
Map/Reduce中Join查询实现
一、背景早在8月份的时候,我就做了一些MR的Join查询,但是发现回北京之后,2个月不用,居然有点生疏,所以今天早上又花时间好好看了一下,顺便写下这个文档,以供以后查阅。二、环境JDK 1.6、Linux操作系统、hadoop0.20.2三、资料数据在做这个Join查询的时候,必然涉及数据,我这里设计了2张表,分别较data.txt和info.txt,字段之...2010-10-26 18:05:35 · 125 阅读 · 0 评论 -
JobClient应用概述
一、应用背景由于在设计中有一个模块是对Job的管理,所以,在这里我采用了JobClinet来进行简单的控制。二、应用点JobClient指的是org.apache.hadoop.mapred.JobClient这个类。里面有不少的方法,我这里列举一些我用到的和一些需要注意的方法。1、JobClient的实例化。这里有2中方法,一种是new JobClient(new...原创 2010-10-27 09:23:27 · 411 阅读 · 0 评论 -
通过Hadoop的API对Job进行管理
一、需求背景由于我们在做一些业务的时候,可能需要多个Job来组合才能满足一个也许需求,而每个Job之间都有依赖关系,所以产生了需要对Job顺序的控制。总结一下需求,大体如下:1、Job之间有先后的顺序执行问题。2、需要对每个Job的状态进行监控(是否完成以及失败情况处理等等)3、对可以并发执行的Job调整。4、每个Job处理时的信息的采集以及记录。5...原创 2010-10-27 09:24:02 · 147 阅读 · 0 评论 -
Hadoop应用设计的思考
最近的事确实很多,但大部分精力都放在了项目的设计方面,最近几天才完成了一些初步的编码的工作。在这个阶段,我发现,需要对数据的录入和Job执行的管理做细致的规划,否则在后期的扩展性上将有很大的局限。我设计的框架大体如下:在这个结构里面,可以明显的看到我采用了2种Client,一个是数据录入层,一个是Job管理层。这里我说明一下为什么需要这2种Client。1、数据录入主要接收数据,数据有多...原创 2010-10-27 09:27:31 · 161 阅读 · 0 评论 -
Eclipse下配置使用Hadoop插件
一、环境配置1、Eclipse 版本 3.3.X2、Hadoop版本 0.20.2二、配置流程1、将\hadoop-0.20.2\hadoop-0.20.2\contrib\eclipse-plugin\下的hadoop-0.20.2-eclipse-plugin.jar拷贝到eclipse-SDK-3.3.2-win32\eclipse\plugins\下。2、启动eclipse,点击Windo...2010-10-27 09:31:36 · 182 阅读 · 0 评论 -
Hadoop节点热拔插
一、 Hadoop节点热拔插在Hadoop集群中经常会进行增添节点操作,即实现节点的热拔插。在这些操作中不希望对集群进行重启。2.在集群中添加节点:a. 把新节点IP或者主机名字加入到主节点的slaves文件。b. 登录到新节点,执行:cd $HADOOP_HOME && bin/hadoop-daemon.sh start datanode && bin/hado...2010-10-27 09:32:10 · 166 阅读 · 0 评论 -
Hadoop集群中关于SSH认证权限的问题
今天回北京了,想把在外地做的集群移植回来,需要修改ip地址和一些配置参数,结果在配置的过程中,总是会有一些提示,说是我的机器之间的认证权限有问题。所以对照以前写的安装手册,把ssh重新配置了一遍。但是发现在启动的时候还是有提示,说是我的ssh有错误,还是需要输入yes和密码来登录。总结了一下,内容如下:1、hadoop的ssh配置namenode无密码访问datanode需要配置各个机器,详细步骤...原创 2010-10-27 09:32:36 · 193 阅读 · 0 评论 -
Map/Reduce执行流程简述
一、背景最近总在弄MR的东西,所以写点关于这个方面的内容,总结一下吧二、流程描述说实话,文字描述比较苍白,画了个图,贴出来,大家看看,有问题欢迎指出三、总结1、值得提出的是,一个map结束就马上会进行分区的操作。并非是等所有的map都结束才做分区的操作。2、分组的操作是对key的值进行比较分组。(可以是复合key,也可以是单一的key)3、关于job.setSortComparatorCl...原创 2010-10-27 09:33:23 · 211 阅读 · 0 评论 -
SecondaryNamenode应用摘记
一、环境Hadoop 0.20.2、JDK 1.6、Linux操作系统二、背景上周五的时候,由于操作系统的原因,导致JDK出现莫名的段错误。无论是重启机器还是JDK重装都无济于事。更可悲的是,出问题的机器就是Master。当时心里就凉了半截,因为secondarynamenode配置也是在这个机器上(默认的,没改过)。不过万幸的是这个集群是测试环境,所以问题不大。借这个缘由,我将...2010-11-04 15:54:26 · 316 阅读 · 0 评论