随笔分类 -  Hadoop

摘要:这期折腾了比较长的时间,从稿件筹备到整理,都不容易,但总算还是出来了,希望能给大家带来些许帮助。在这里再次感谢为这期《Hadoop开发者》做出贡献的童鞋们,you're so nice!目 录mooon海量数据处理平台架构演变计算不均衡问题在Hive中的解决办法Join算子在Hadoop中的实现配置Hive元数据DB为PostgreSQLZooKeeper权限管理机制ZooKeeper服务器工作原理和流程ZooKeeper实现共享锁Hadoop最佳实践通过Hadoop的API管理JobHadoop集群的配置调优Hadoop平台的Java规范及经验MapReduce开发经验总结Hadoo 阅读全文
posted @ 2011-04-14 22:22 spork 阅读(2738) 评论(0) 推荐(0) 编辑
摘要:经过上一篇的分析,我们知道了Hadoop的作业提交目标是Cluster还是Local,与conf文件夹内的配置文件参数有着密切关系,不仅如此,其它的很多类都跟conf有关,所以提交作业时切记把conf放到你的classpath中。  因为Configuration是利用当前线程上下文的类加载器来加载资源和文件的,所以这里我们采用动态载入的方式,先添加好对应的依赖库和资源,然后再构建一个URLCla... 阅读全文
posted @ 2010-04-21 21:49 spork 阅读(13878) 评论(6) 推荐(5) 编辑
摘要:前面我们所分析的部分其实只是Hadoop作业提交的前奏曲,真正的作业提交代码是在MR程序的main里,RunJar在最后会动态调用这个main,在(二)里有说明。我们下面要做的就是要比RunJar更进一步,让作业提交能在编码时就可实现,就像Hadoop Eclipse Plugin那样可以对包含Mapper和Reducer的MR类直接Run on Hadoop。  一般来说,每个MR程序都会有这么... 阅读全文
posted @ 2010-04-21 20:31 spork 阅读(12280) 评论(0) 推荐(1) 编辑
摘要:通过前面两篇文章的分析,对Hadoop的作业提交流程基本明了了,下面我们就可以开始编写代码模拟这个流程。  第一步要做的是添加Hadoop的依赖库和配置文件到classpath。最常用的方法就是用一个容器先把各个要添加到classpath的文件或文件夹存储起来,后面再作为类加载器的URL搜索路径。  上面的classPath变量就是我们声明用来装载classpath组件的容器。[代码]  由于需要... 阅读全文
posted @ 2010-04-12 17:10 spork 阅读(6885) 评论(5) 推荐(1) 编辑
摘要:上一篇我们分析了bin/hadoop脚本,知道了提交一个Hadoop作业所需要的基本设置以及真正执行任务提交的类。这一篇我们就来分析这个提交任务的类org.apache.hadoop.util.RunJar,看它内部具体又做了些什么。 RunJar是Hadoop中的一个工具类,结构很简单,只有两个方法:main和unJar。我们从main开始一步步分析。 main首先检查传递参数是否符合要求,然后... 阅读全文
posted @ 2010-04-11 10:20 spork 阅读(9607) 评论(0) 推荐(0) 编辑
摘要:目录 1、Hadoop 业界资讯......................................... - 1 - 2、Nutch + Hadoop 构建商用分布式搜索引擎的问题探究....... - 5 -3、支持自定义爬虫的Nutch segment 文件存储接口改写.......... - 11 - 4、Nutch 中mapreduce 应用的几个特殊点................ 阅读全文
posted @ 2010-04-08 23:05 spork 阅读(2995) 评论(0) 推荐(0) 编辑
摘要:[代码]  这样的命令,各位玩Hadoop的估计已经调用过NN次了,每次写好一个Project或对Project做修改后,都必须打个Jar包,然后再用上面的命令提交到Hadoop Cluster上去运行,在开发阶段那是极其繁琐的。程序员是“最懒”的,既然麻烦肯定是要想些法子减少无谓的键盘敲击,顺带延长键盘寿命。比如有的人就写了些Shell脚本来自动编译、打包,然后提交到Ha... 阅读全文
posted @ 2010-04-07 11:43 spork 阅读(20052) 评论(2) 推荐(5) 编辑
摘要:最近看到调度器这一块,发现Hadoop官方文档中有关公平调度器(Fair Scheduler Guide)和容量调度器(Capacity Scheduler Guide)部分的文档还没有汉化,Google了下也未发现有相关汉化,So,我班门弄斧,抛砖引玉一下了。这里先奉上公平调度器的中文版。由于我一直用Cloudera Hadoop 0.20.1+152的版本,所以这个汉化也是基于里面的文档来的。... 阅读全文
posted @ 2010-04-02 21:44 spork 阅读(15321) 评论(2) 推荐(2) 编辑
摘要:Sort Benchmark是一个专门从事排序基准评估的非盈利机构,该机构每年都会举办一次排序基准评估比赛,很多公司和学术机构都会带着他们最新的研究成果来参加这个比赛,以评估他们的研究成果。在2007之前,该机构的排序基准评估比赛的主办和管理主要都是由Jim Gray来负责,他是数据库界的超级牛人、1998年图灵奖获得者。但不幸的是,JimGray在2007年1月28日早上独自乘船离开San Fr... 阅读全文
posted @ 2010-02-06 03:13 spork 阅读(5611) 评论(1) 推荐(1) 编辑
摘要:我们论坛出的第一期Hadoop电子杂志, 欢迎大家下载.目录1 Hadoop介绍2 Hadoop在国内应用情况3 Hadoop源代码eclipse编译教程7 在Windows上安装Hadoop教程13 在Linux上安装Hadoop教程19 在Windows上使用eclipse编写Hadoop应用程序24 在Windows中使用Cygwin安装HBase28 Nutch 与Hado... 阅读全文
posted @ 2010-01-28 17:39 spork 阅读(3965) 评论(0) 推荐(0) 编辑
摘要:额外的MapReduce功能图4.6 插入了Combiner的MapReduce数据流  Combiner:前面展示的流水线忽略了一个可以优化MapReduce作业所使用带宽的步骤,这个过程叫Combiner,它在Mapper之后Reducer之前运行。Combiner是可选的,如果这个过程适合于你的作业,Combiner实例会在每一个运行map任务的节点上运行。Combiner会接收特定节点上的... 阅读全文
posted @ 2010-01-11 19:54 spork 阅读(4593) 评论(0) 推荐(0) 编辑
摘要:接上一篇:MapReduce数据流(一)    输入块(InputSplit):一个输入块描述了构成MapReduce程序中单个map任务的一个单元。把一个MapReduce程序应用到一个数据集上,即是指一个作业,会由几个(也可能几百个)任务组成。Map任务可能会读取整个文件,但一般是读取文件的一部分。默认情况下,FileInputFormat及其子类会以64MB(与HDFS的Block默认大小相... 阅读全文
posted @ 2010-01-11 19:50 spork 阅读(10047) 评论(0) 推荐(1) 编辑
摘要:在上一篇文章中我们讲解了一个基本的MapReduce作业由那些基本组件组成,从高层来看,所有的组件在一起工作时如下图所示:图4.4高层MapReduce工作流水线  MapReduce的输入一般来自HDFS中的文件,这些文件分布存储在集群内的节点上。运行一个MapReduce程序会在集群的许多节点甚至所有节点上运行mapping任务,每一个mapping任务都是平等的:mappers没有特定&ld... 阅读全文
posted @ 2010-01-11 19:36 spork 阅读(11605) 评论(1) 推荐(2) 编辑
摘要:这篇文章翻译自Yahoo的Hadoop教程,很久之前就看过了,感觉还不错。最近想总结一下以前学的东西,看到现在关于Hadoop的中文资料还比较少,就有了把它翻译出来的想法,希望能帮助到初学者。这只是Yahoo的Hadoop教程中很小的一部分,我下去还会选一些来翻译,一般来说只翻译讲原理的,操作类的就不翻译了。水平有限,不妥之处,请指正(感觉翻译过来后,读起来倒是没英文的顺畅:)。废话说完,正文开始... 阅读全文
posted @ 2010-01-10 18:16 spork 阅读(7526) 评论(0) 推荐(4) 编辑
摘要:来自原小站,技术含量≈0,翻译整理自Hadoop-The Definitive Guide。Pig是yahoo捐献给apache的一个项目,它是SQL-like语言,是在MapReduce上构建的一种高级查询语言,把一些运算编译进MapReduce模型的Map和Reduce中,并且用户可以定义自己的功能。这是Yahoo开发的又一个克隆Google的项目:Sawzall。Pig是一个客户... 阅读全文
posted @ 2009-12-29 10:52 spork 阅读(9324) 评论(0) 推荐(0) 编辑
摘要:还是原小站的东西,学习Hadoop的一些心得,扔这里保管先吧。  HDFS也有块(Block)的概念,但它的块是一个很大的单元,默认是64MB。像硬盘中的文件系统一样,在HDFS中的文件将会按块大小进行分解,并作为独立的单元进行存储。但和硬盘中的文件系统不一样的是,存储在块中的一个比块小的文件并不会占据一个块大小的硬盘物理空间(HDFS中一个块只存储一个文件的内容)。  那为什么HDFS中的块如此... 阅读全文
posted @ 2009-12-29 10:47 spork 阅读(1593) 评论(0) 推荐(0) 编辑
摘要:从我小站转过来的,已经“牺牲”了,就放这吧,是我学习Hadoop中的一些心得。  HDFS是一个不错的分布式文件系统,它有很多的优点,但也存在有一些缺点。目前而言,它在以下几个方面就效率不佳:  低延时访问  HDFS不太适合于那些要求低延时(数十毫秒)访问的应用程序,因为HDFS是设计用于大吞吐量数据的,这是以一定延时为代价的。HDFS是单Master的,所有的对文件的请... 阅读全文
posted @ 2009-12-29 10:37 spork 阅读(3508) 评论(0) 推荐(0) 编辑