
Hadoop
文章平均质量分 72
dajuezhao
这个作者很懒,什么都没留下…
展开
-
Nutch-1.0分布式安装手册
有些图片不好上传,如果大家想看可以发邮件给我,我把word文件可以发给大家。另外需要说明的是,这个安装对于检索实现了分布式,对抓取不是分布式的,以后我做了分布式抓取再贴出来大家一起学习。 编写这个文档的过程中得到了若冰的大力支持和帮助!鸣谢!~Nutch-1.0分布式安装手册 1 、安装准备1.1 从http://lucene.apache.org/n原创 2010-03-18 11:44:00 · 2574 阅读 · 0 评论 -
分布式集群中的硬件选择
一、背景 最近2个月时间一直在一个阴暗的地下室的角落里工作,主要内容就是hadoop相关的应用。在这期间,Hadoop的应用确实得到认可,但是同时也带来了一些问题,软件方面我就不在这里说了,只说说一些物理方面的局限: 1、众所周知,hadoop能够接受任何类型的机器加入集群,在多不在精。但是这带来一个问题,机房的空间开销以及电费。 2、机器太多,人力维护成本也是增加的。机柜啊、物理空间都是个不小的负担和开销。 刚好,在这个问题产生的同时,十分幸运的被一同事叫出来,去参加一个会议,得以有机会走上地面。原创 2010-12-21 10:30:00 · 3117 阅读 · 3 评论 -
SecondaryNamenode应用摘记
一、环境 Hadoop 0.20.2、JDK 1.6、Linux操作系统 二、背景 上周五的时候,由于操作系统的原因,导致JDK出现莫名的段错误。无论是重启机器还是JDK重装都无济于事。更可悲的是,出问题的机器就是Master。当时心里就凉了半截,因为secondarynamenode配置也是在这个机器上(默认的,没改过)。不过万幸的是这个集群是测试环境,所以问题不大。借这个缘由,我将secondarynamenode重新配置到其他机器上,并做namenode挂掉并恢复的测试。 三、操作 1、关于原创 2010-11-04 15:59:00 · 5769 阅读 · 3 评论 -
Hadoop的基准测试工具使用(部分转载)
一、背景 由于以前没有细看hadoop提供的测试工具,只是在关注hadoop本身的内容,所以很多的性能测试都忽略了。最近花了一周的时间准备做个性能测试,但是都是采用自己的方法得出的抽象值。今天看淘宝的博客,提到hadoop自带的测试工具,遂试了一把,记录一下,供以后参考。 二、使用 我做基准测试主要是用了hadoop-mapred-test-0.21.0.jar这个工具jar包。主要是做了I/O的测试。在网上也找了一些资料,抄抄谢谢记录如下: DFSCIOTest 测试libhdfs中的分布式原创 2011-01-07 10:53:00 · 6135 阅读 · 2 评论 -
Hadoop开发常用的InputFormat和OutputFormat
Hadoop中的Map Reduce框架依赖InputFormat提供数据,依赖OutputFormat输出数据;每一个Map Reduce程序都离不开他们。Hadoop提供了一系列InputFormat和OutputFormat方便开发,本文介绍几种常用的。 TextInputFormat 用于读取纯文本文件,文件被分为一系列以LF或者CR结束的行,key是每一行的位置(偏移量,LongWritable类型),value是每一行的内容,Text类型。 KeyValueTextInputForm转载 2010-11-23 10:29:00 · 8549 阅读 · 0 评论 -
关于Hadoop数据块Miss在页面提示的问题
这个文档转至台湾的已了论坛,地址是:http://hadoop.nchc.org.tw/phpbb/viewtopic.php?f=4&t=1938請教一個hadoop運行維護中的問題:背景:調整hadoop配置:1. hadoop的dfs.replication之前設置為1,現在改為3;2. 去掉一個節點,增加6個節點。現狀50070頁面出現提示:WARNING : There are about 900 missing blocks. Please check the log or run fsck.運转载 2011-04-13 10:06:00 · 15839 阅读 · 0 评论 -
通过web页面查看HDFS文件系统
一、背景 因为做hadoop的开发,所以有些时候需要通过web对hdfs文件系统进行查看。如果开发机器是Linux系统,那么只要更改/etc/hosts文件就可以了,但是在Windows下,通过web页面查看,通常会报错,说是找不到域名。因此带来十分不方便。 二、操作 修改C:/WINDOWS/system32/drivers/etc/hosts文件,内容同样和Linux下修改方式一下。例如我现在有三台机器构成的测试集群: Master:10.0.14.110 机器名称:m110 Slave:原创 2011-04-26 15:26:00 · 26072 阅读 · 0 评论 -
基于CentOS安装CDH3Beta4版的Hadoop和HBase
一、背景 因为最近使用hadoop发现了一些问题,而且也没有太多的时间去对其本身进行修改,所以,在朋友的建议下采用了cloudera的CDH3版本。相对来说比较稳定和可靠,官网的地址如下:http://www.cloudera.com/ 二、CentOS和JDK安装步骤 1、进入到centOS的官方网址http://isoredirect.centos.org/centos/5/isos/x86_64/。 2、选一个镜像点击进去,下载CentOS-5.5-x86_64-bin-DVD.torrent原创 2011-04-26 15:46:00 · 3830 阅读 · 0 评论 -
使hadoop支持Splittable压缩lzo
在hadoop中使用lzo的压缩算法可以减小数据 的大小和数据的磁盘读写时间,不仅如此,lzo是基于block分块的,这样他就允许数据被分解成chunk,并行的被hadoop处理。这样的特点,就可以让lzo在hadoop上成为一种非常好用的压缩格式。由于压缩的数据通常只有原始数据的1/4,在HDFS中存储压缩数据,可以使集群能保存更多的数据,延长集群的使用寿命。不仅如此,由于 mapreduc转载 2011-06-29 13:09:00 · 10151 阅读 · 0 评论 -
Hadoop集群的配置调优
一、背景Hadoop的集群使用也有些时候了,不过都是小集群的使用(数量小于30台)。在这个过程中不断的进行着配置调优的操作。最早的时候,在网上也没有找到一些合适的配置调优方法,于是,我在这里列举一些基本的调优配置,以供参考。最后,还有一个我自己的测试环境的配置说明,也可以参看一下原创 2011-07-07 17:53:53 · 31598 阅读 · 2 评论 -
通过Hadoop的API管理Job
一、背景前些时候写了一篇这样的文档,由于当时的时间比较紧,且有些细节内容不太好细说,于是写的比较粗。之后也有些朋友发邮件给我,问我要详细的过程以及管理方式。于是,今天就像把这个内容细化,写在这里,供大家参考。二、环境简述Ø 操作系统Linux、JDK1.6Ø Hadoop 0原创 2011-07-07 18:01:38 · 18950 阅读 · 10 评论 -
生成HFile以及入库到HBase
一、MR生成HFile文件package insert.tools.hfile;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.ha原创 2011-04-26 18:38:00 · 22661 阅读 · 9 评论 -
在多硬盘情况下的Hadoop配置注意项
一、背景1、最近在做hadoop的性能测试,采用了自带的Terasort的方式,但是在运行的过程中发现如果数据量过大,对硬盘I/O需求不小(通过Ganglia监控发现),因此,打算找找看是否有合适的配置来解决这样一类的问题,所以才有了这篇记录的文档。2、在做修改之前,当然原创 2011-09-21 14:04:34 · 18683 阅读 · 1 评论 -
HBase入库性能问题
这个文档置顶很久了,还是写点东西吧。HBase这个东西的入库速度说实在的,在多列族的情况下表现很一般,实在是不值得提。具体的原因是由于多列族在hbase的写入机制决定的,有兴趣的可以在网上找找资料,这里我只说单列族的情况下的我的测试结果:集群的规模为9(S)+原创 2011-04-13 11:05:00 · 6354 阅读 · 3 评论 -
Map/Reduce的GroupingComparator排序简述
一、背景排序对于MR来说是个核心内容,如何做好排序十分的重要,这几天写了一些,总结一下,以供以后读阅。二、准备1、hadoop版本是0.20.22、输入的数据格式(这个很重要,看清楚格式),名称是secondary.txt:abc 12原创 2010-08-10 17:23:00 · 10057 阅读 · 4 评论 -
Map/Reduce中Join查询实现
一、背景早在8月份的时候,我就做了一些MR的Join查询,但是发现回北京之后,2个月不用,居然有点生疏,所以今天早上又花时间好好看了一下,顺便写下这个文档,以供以后查阅。二、环境JDK 1.6、Linux操作系统、hadoop0.20.2三、资料数据在做这个J原创 2010-10-25 15:12:00 · 5861 阅读 · 8 评论 -
Hadoop中自定义计数器
一、环境1、hadoop 0.20.22、操作系统Linux二、背景1、最近写MR的代码,总在想统计一些错误的数据出现的次数,发现如果都写在reduce的输出里太难看了,所以想找办法专门输出一些统计数字。2、翻看《hadoop权威指南》第8章第1节的时候发现能够自定义计数器,但都是基于0.19版本写的,好多函数都不对,改动相对较大。3、基于上面2个理由,写个文档原创 2010-08-04 17:57:00 · 8794 阅读 · 3 评论 -
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、制造了500G的数据存放到集群中。 2、修改配置,主要是并发原创 2010-12-15 15:27:00 · 6770 阅读 · 0 评论 -
JobClient应用概述
一、应用背景 由于在设计中有一个模块是对Job的管理,所以,在这里我采用了JobClinet来进行简单的控制。 二、应用点 JobClient指的是org.apache.hadoop.mapred.JobClient这个类。里面有不少的方法,我这里列举一些我用到的和一些需要注意的方法。 1、JobClient的实例化。这里有2中方法,一种是new JobClient(new JobConf);另外一种是实例化IP地址和端口。 2、通过JobClient获取Job列表。 JobClient.job原创 2010-10-21 16:07:00 · 5567 阅读 · 0 评论 -
通过Hadoop的API对Job进行管理
一、需求背景 由于我们在做一些业务的时候,可能需要多个Job来组合才能满足一个也许需求,而每个Job之间都有依赖关系,所以产生了需要对Job顺序的控制。总结一下需求,大体如下: 1、Job之间有先后的顺序执行问题。 2、需要对每个Job的状态进行监控(是否完成以及失败情况处理等等) 3、对可以并发执行的Job调整。 4、每个Job处理时的信息的采集以及记录。 5、能够灵活添加或删除要执行的Job队列。 如果以上需求去掉2和4,那么,我们通过脚本就可以做到(如shell)。但是如果要获取Job的原创 2010-10-20 10:42:00 · 3031 阅读 · 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 x86_64 x86_64 GNU/Linux4、默认前提是安装完hadoop 0.20.2版本: 192.原创 2010-07-07 09:10:00 · 2626 阅读 · 2 评论 -
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 x86_64 x86_64 GNU/Linux 4、三台机器,192.168.3原创 2010-07-07 11:04:00 · 5107 阅读 · 5 评论 -
Map/Reduce使用杂记
一、硬件环境 1、CPU:Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz 2、内存:2G 3、硬盘:500G 4、网卡:百兆电卡 5、网络:局域网络 6、集群数量:10台机器,1个master,10个slaves(master也做slave了!呵呵) 二、关于同时运行的map和reduce数量。 1、同时运行的数量通过mapred.tasktracker.map.tasks.maximum和mapred.tas原创 2010-07-14 14:44:00 · 2615 阅读 · 0 评论 -
Map/Reduce中的Partiotioner使用
一、环境 1、hadoop 0.20.2 2、操作系统Linux 二、背景 1、为何使用Partitioner,主要是想reduce的结果能够根据key再次分类输出到不同的文件夹中。 2、结果能够直观,同时做到对数据结果的简单的统计分析。 三、实现 1、输入的数据文件内容如下(1条数据内容少,1条数据内容超长,3条数据内容正常): kaka 1 28hua 0 26chao 1tao原创 2010-08-05 09:41:00 · 3968 阅读 · 5 评论 -
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自带的wordcount的例子和找出value的最大值的程序,原创 2010-08-05 14:19:00 · 2505 阅读 · 0 评论 -
Hadoop的MultipleOutputFormat使用
一、背景 Hadoop的MapReduce中多文件输出默认是TextOutFormat,输出为part-r- 00000和part-r-00001依次递增的文件名。hadoop提供了 MultipleOutputFormat类,重写该类可实现定制自定义的文件名。 二、技术细节 1.环境:hadoop 0.19(目前hadoop 0.20.2对MultipleOutputFormat支持不好),linux。 2.实现MultipleOutputFormat代码例子如下:原创 2010-08-09 17:14:00 · 8518 阅读 · 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 org.apache.hadoop.hdfs.ser原创 2010-08-10 13:48:00 · 10066 阅读 · 0 评论 -
Map/Reduce中分区和分组的问题
一、为什么写 分区和分组在排序中的作用是不一样的,今天早上看书,又有点心得体会,记录一下。 二、什么是分区 1、还是举书上的例子,在8.2.4章节的二次排序过程中,用气温举例,所以这里我也将这个例子说一下。 源数据内容 1900 35°C1900 34°C1900 34°C...1901 36°C1901 35°C 书上的例子是为了去除一年当中气温最高的值,那么将年份和气温做了一个复合的key. 2、通过设置了part原创 2010-08-11 14:02:00 · 7514 阅读 · 2 评论 -
Map/Reduce中公平调度器配置
一、背景 一般来说,JOB的执行就是FIFO的过程(先进先出),这样的方式资源得不到充分的使用。所以配置了一下公平调度。 二、配置实现 1、环境:hadoop0.20.2 2、拷贝/jz/hadoop-0.20.2/contrib/fairscheduler/hadoop-0.20.2-fairscheduler.jar到hadoop的lib目录下,并复制到集群所有机器上。 3、修改mapred-site.xml,内容如下:原创 2010-08-09 17:51:00 · 1926 阅读 · 0 评论 -
关于Map和Reduce最大的并发数设置
一、环境 1、hadoop 0.20.2 2、操作系统 Linux 二、设置 1、因为hadoop的集群所有的机器不可能完全的配置一样,所以,不同节点机器上并发的最大map和reduce数量最好也不要相同。 2、在对应的节点机器上修改mapreduce-sit.xml文件,添加参数如下: mapred.tasktracker.map.tasks.maximum 2 The maximum number of map tasks that w原创 2010-08-13 14:56:00 · 7595 阅读 · 1 评论 -
关于集群数据负载均衡
一、环境 1、hadoop 0.20.2 2、操作系统 Linux 二、关于负载均衡 1、一般情况下,数据在录入集群的时候就进行负载均衡,根据各个节点的情况来做数据平衡分发存放。 2、但是如果在新增节点之后,如果想做到负载均衡则需要使用balancer的命令。对于这个命令,一般是有一个阀值,默认是10% 也就是说,节点之间差额不过10%,集群认为就是均衡的。 3、当然,负载的越平均,查询相对也较快,但是均衡的过程会耗时不少。 三、操作 1、新添加节点到原创 2010-08-13 15:32:00 · 1578 阅读 · 0 评论 -
Map/Reduce执行流程简述
一、背景 最近总在弄MR的东西,所以写点关于这个方面的内容,总结一下吧 二、流程描述 说实话,文字描述比较苍白,画了个图,贴出来,大家看看,有问题欢迎指出 三、总结 1、值得提出的是,一个map结束就马上会进行分区的操作。并非是等所有的map都结束才做分区的操作。 2、分组的操作是对key的值进行比较分组。(可以是复合key,也可以是单一的key) 3、关于job.setSortComparatorClass(a.class);这个是自定义的比较器,对原原创 2010-08-14 10:50:00 · 1957 阅读 · 1 评论 -
Hadoop 0.20.2 源码阅读(一)
org.apache.hadoop.conf.configuration: 1、初始化调用,一般来说都是调用的无参构造函数,无参构造默认是加在default的配置,除非是传入boolean参数为false,表示不加在default的配置。 /** A new configuration. */ public Configuration() { this(true); } 2、默认资源的加在顺序是首先在加载core-default.xml,然后加载addDefault原创 2010-08-18 18:26:00 · 2627 阅读 · 0 评论 -
Hadoop集群中关于SSH认证权限的问题
今天回北京了,想把在外地做的集群移植回来,需要修改ip地址和一些配置参数,结果在配置的过程中,总是会有一些提示,说是我的机器之间的认证权限有问题。所以对照以前写的安装手册,把ssh重新配置了一遍。但是发现在启动的时候还是有提示,说是我的ssh有错误,还是需要输入yes和密码来登录。总结了一下,内容如下: 1、hadoop的ssh配置namenode无密码访问datanode需要配置各个机器,详细步骤可以参看安装手册。 2、需要配置本地的无密码访问,因为默认情况下secondaryname原创 2010-09-03 15:25:00 · 2189 阅读 · 0 评论 -
Hadoop节点热拔插
一、 Hadoop节点热拔插 在Hadoop集群中经常会进行增添节点操作,即实现节点的热拔插。在这些操作中不希望对集群进行重启。 2.在集群中添加节点: a. 把新节点IP或者主机名字加入到主节点的slaves文件。 b. 登录到新节点,执行: cd $HADOOP_HOME && bin/hadoop-daemon.sh start datanode && bin/hadoop-daemon.sh start tasktracker 3. 从集群中移走节点,且对移走节点的数据进行备份: a.原创 2010-09-09 11:36:00 · 3489 阅读 · 0 评论 -
Eclipse下配置使用Hadoop插件
一、环境配置 1、Eclipse 版本 3.3.X 2、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,点击Window->Show View->Other,点击MapReudce Tools->Map/Red原创 2010-09-27 12:54:00 · 5423 阅读 · 0 评论 -
Hadoop应用设计的思考
最近的事确实很多,但大部分精力都放在了项目的设计方面,最近几天才完成了一些初步的编码的工作。在这个阶段,我发现,需要对数据的录入和Job执行的管理做细致的规划,否则在后期的扩展性上将有很大的局限。我设计的框架大体如下: 在这个结构里面,可以明显的看到我采用了2种Client,一个是数据录入层,一个是Job管理层。这里我说明一下为什么需要这2种Client。 1、数据录入主要接收数原创 2010-09-30 10:15:00 · 1545 阅读 · 1 评论 -
Hadoop中DBInputFormat和DBOutputFormat使用
一、背景 为了方便MapReduce直接访问关系型数据库(Mysql,Oracle),Hadoop提供了DBInputFormat和DBOutputFormat两个类。通过DBInputFormat类把数据库表数据读入到HDFS,根据DBOutputFormat类把MapReduce产生的结果集导入到数据库表中。二、技术细节1、DBInputFormat(Mys原创 2010-08-09 17:10:00 · 15137 阅读 · 2 评论