随笔分类 -  hadoop

摘要:cache:在默认情况下,如果你需要从hbase中查询数据,在获取结果ResultScanner时,hbase会在你每次调用ResultScanner.next()操作时对返回的每个Row执行一次RPC操作。即使你使用ResultScanner.next(int nbRows)时也只是在客户端循环调用RsultScanner.next()操作,你可以理解为hbase将执行查询请求以迭代器的模式设计,在执行next()操作时才会真正的执行查询操作,而对每个Row都会执行一次RPC操作。 因此显而易见的就会想如果我对多个Row返回查询结果才执行一次RPC调用,那么就会减少实际的通讯开销。这个就.. 阅读全文
posted @ 2013-04-22 16:18 editice 阅读(5972) 评论(0) 推荐(0)
摘要:1.首先需要明白的是将编译后build文件夹目录下的的hadoop-core-0.20.205.1.jar 修改为hadoop-core-0.20.205.0.jar(可以在build.xml文件中修改即可) 并替换所有节点上的share/hadoop/目录下的同名称文件。2.在MapTask.java文件中添加log信息,重新编译后发现输出的log日志中没有变化,其原因暂不了解。3.在hadoop/src目录下,修改saveVersion.sh文件,可以修改编译的作者。4.若是想使用egit来进行版本控制,但是又不能上网,可以离线下载egit包,并且在eclipse中选择help->i 阅读全文
posted @ 2012-09-10 20:27 editice 阅读(434) 评论(0) 推荐(0)
摘要:1.在iterator遍历的时候,没有设置诸如iter=iter.next,也就是说指针一直没有向后移动,造成死循环的问题。2.hadoop 0.20.205.0的版本,其datajoin包需要注意一个maxNumOfValuesPerGroup的参数,这个参数主要是设置对于每一个joinkey其含有的value的数量的最大个数,你需要手动设置好其值,要不然iterator的游标会一直停留在第101个value的位置上而造成死循环。 阅读全文
posted @ 2012-09-08 19:12 editice 阅读(131) 评论(0) 推荐(0)
摘要:这篇论文主要提供了equi-join的多种join的算法:文章给出的假定:1.每个map和reduce都实现了init()和close()2.有实现好的partition.3.中间文件都存储在HDFS中。1.Repartition Joinmapreduce框架中该算法是最常使用的,L和R按照join key分区,从而每个分区中对应的pair进行join操作。 Standard Repartition Join: 并行关系数据库中的partitioned sort-merge join和hadoop中的默认datajoin包也是这样做连接的,在map过程中,每个map任务处理一条R或者L的.. 阅读全文
posted @ 2012-08-21 20:27 editice 阅读(681) 评论(0) 推荐(0)
摘要:我最近在研究有关图相似度算法的东西,其中一个简单的步骤是要实现一个join的功能,第一个方法是采用了系统默认的包,采用的是修改后的hadoop in action中的源码,如下所示:import java.io.DataInput;import java.io.DataOutput;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.conf.Configured;import org.apache.hadoop.contrib.utils.join.Da 阅读全文
posted @ 2012-05-15 22:03 editice 阅读(762) 评论(0) 推荐(0)
摘要:将wiki的数据构造成图:View Code将构成的图统计pr值View Code import java.io.IOException;import java.util.*;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.LongWr 阅读全文
posted @ 2012-05-03 20:51 editice 阅读(343) 评论(0) 推荐(0)
摘要:之前在学习mapreduce 的过程中一直不能够完全准确的理解shuffle,partition,combiner的作用,其实简单来说:shuffle: 是描述着数据从map端传输到reduce端的过程,而且我们知道的是hadoop的集群环境中,大部分map task和reduce task是在不同的node上执行,主要的开销是网络开销和磁盘IO开销,因此shuffle的主要作用相当于是 1.完整的从map task端传输到reduce task端。 2.跨节点传输数据时,尽可能减少对带宽的消耗.(注意是reduce执行的时候去拉取map端的结果) 3.减少磁盘IO开销对task的... 阅读全文
posted @ 2012-05-03 20:42 editice 阅读(688) 评论(0) 推荐(0)
摘要:平台基于hadoop 0.20.205.0,redhat linux server 6.0实验过程生成数据hadoop jar hadoop-examples-0.20.205.0.jar teragen 1000000 tera1000000-input注:这里也可以写成hadoop jar hadoop-examples-0.20.205.0.jar teragen –Dmapred.map.tasks=16 1000000 tera1000000-input 从而手动设定map task的个数加入参数hadoop jar ... -Dmapred.reduce.slowstart.com 阅读全文
posted @ 2012-03-05 19:46 editice 阅读(1877) 评论(3) 推荐(0)
摘要:Hadoop-0.21.0源码编译editice@gmail.com环境虚拟机环境下,redhat enterprise linux 6.1,jdk1.6(注意jdk1.7无法识别,必须要用1.6),在hadoop的home目录下新建hadoop_compile文件夹,从apache官网下载hadoop源代码,置于该文件夹下。下载ant,并设置好ant_home。(.bash_profile)编译前言关于win下的编译Win下编译会出现不少奇怪的问题,主要报错是提示 不能运行”tr”等等,可以直接注释build.xml中的对应行。并且新建lib文件夹。最后出现的问题是不能再对应网页上正确显示v 阅读全文
posted @ 2012-02-26 21:51 editice 阅读(1980) 评论(0) 推荐(0)
摘要:注:将版本从0.21.0 切换到 0.20.205.0 ,或者反过来切换,没有办法用自带的upgrade命令(文中的许多操作最好能够写成脚本,手动操作过于麻烦)转载请注明出处,谢谢,实现出来确实挺累的测试之前的情况测试采用三台机器作为测试:Namenode/secondarynamenode:192.168.1.39 slave039(该节点连接外网114.212.190.92)。Datanode:192.168.1.33 slave033 192.168.1.34 slave034集群的用户除了root外,在hadoop用户组下有三个用户,分别是hadoop,user001,user002, 阅读全文
posted @ 2012-01-13 21:52 editice 阅读(1996) 评论(0) 推荐(0)
摘要:该部分代码采用的hadoop 0.21.0的库,使用的API都是最新的1.实现最简单的wordcount,这个部分map函数的key输入应该设置为longwritable类型,object类型就不够规范了View Code import java.io.IOException;import java.util.StringTokenizer;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org. 阅读全文
posted @ 2012-01-13 21:36 editice 阅读(926) 评论(0) 推荐(0)
摘要:今天花了一个下午终于将整个集群的操作系统全部安装ok,在此我阐述下所有的配置。机器的配置: 我们的集群全部是dell的刀片机,每个节点内存为24GB,拥有两块1TB的硬盘,DDR3-1066MHZ.安装过程: 安装系统为redhat server 6.0版本。采用网络安装的方法,因为之前机架中的192.168.1.1的节点已经做好了源,因此后面的工作就简单很多。首先重启后按F12进入网络安装,选择对应的选项,再选择NFS directory后,NFS的地址为192.168.1.1,目录为/mnt(因为我们的install.img文件在该目录下).即可进行安装。 后面就涉及到了磁盘分区的... 阅读全文
posted @ 2011-12-13 21:28 editice 阅读(558) 评论(0) 推荐(0)
摘要:其实hadoop单机版(包括用于实验的集群版)的安装还是非常简单的,虽然这个结论是被各种小问题恶心了好几天后得出来的。。。操作系统安装: 系统使用redhat enterprise server 6.0版本(32位),安装的时候因为对linux的操作程度不够熟练,所以选择还是安装了桌面。本来安装基本服务器只有600个软件包左右,但是加了桌面就接近1100个包了。中间遇到的问题:1.vbox无法使用自动调整显示尺寸。这个需要安装扩展包,并且要安装linux kernel-devel。后来选用vmware 8.系统部署:1.安装java(本次使用jdk 7)。这里直接下载的rpm包,在redhat 阅读全文
posted @ 2011-11-21 22:18 editice 阅读(2374) 评论(0) 推荐(1)