Hadoop
liuzx32
这个作者很懒,什么都没留下…
展开
-
Hadoop作业提交分析(三)
通过前面两篇文章的分析,对Hadoop的作业提交流程基本明了了,下面我们就可以开始编写代码模拟这个流程。第一步要做的是添加Hadoop的依赖库和配置文件到classpath。最常用的方法就是用一个容器先把各个要添加到classpath的文件或文件夹存储起来,后面再作为类加载器的URL搜索路径。/** * Add a directory or file to classpa转载 2012-08-01 13:16:12 · 1257 阅读 · 0 评论 -
Hadoop重启需要格式化的问题
hadoop安装完成后,必须要用haddop namenode format格式化后,才能使用;如果重启机器,在启动hadoop后,用hadoop fs -ls命令老是报 10/09/25 18:35:29 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:9000. Already tried 0 time(s)转载 2012-07-28 19:48:43 · 1675 阅读 · 0 评论 -
Hadoop入门(2)
这是Hadoop学习全程记录第2篇,在这篇里我将介绍一下如何在Eclipse下写第一个MapReduce程序。新说明一下我的开发环境:操作系统:在windows下使用wubi安装了ubuntu 10.10 hadoop版本:hadoop-0.20.2.tar.gzEclipse版本:eclipse-jee-helios-SR1-linux-gtk.tar.gz为了学转载 2012-07-29 19:30:19 · 517 阅读 · 0 评论 -
Hadoop入门(1)
几天前开始学习hadoop,从今天起,想把我学习hadoop全过程记录一下。我会记录在学习过程中碰到的问题、困难以及解决方法等等,如果你也是刚学hadoop,我们可以一起讨论。学了几天,好像入门了,在这里和大家分享,就当全程笔记的第一篇吧。新说明一下我的开发环境操作系统:在windows下使用wubi安装了ubuntu 10.10hadoop版本:hadoop-0.20转载 2012-07-29 19:29:12 · 480 阅读 · 0 评论 -
HDFS中的名称空间ID不一致问题 分享
当重新format namenode之后,会在namenode结点生成新的namenode namespaceID,如果这时启动HDFS集群,在datanode结点会出现如下的错误提示:datanode namespaceID与namenode namespaceID不一致结点test132009-10-13 18:41:33,117 INFO org.apache.hadoop.hdfs转载 2012-07-29 22:29:35 · 776 阅读 · 0 评论 -
关于Hadoop,你得知道的12个事实
现如今,Apache Hadoop已经无人不知无人不晓。当年雅虎搜索工程师Doug Cutting开发出这个用以创建分布式计算机环境的开源软件库,并以自己儿子的大象玩偶为其命名的时候,谁能想到它有一天会占据“大数据”技术的头把交椅呢。 虽然Hadoop伴随大数据一同火爆起来,但相信还是有许多用户对于它不甚了解。在上周名的TDWI解决方案峰会中, TDWI研究主任兼行业分析师Philip Ru转载 2012-07-31 17:42:33 · 1460 阅读 · 0 评论 -
Map个数与Reduce个数的应用
1.coderplay 写道sorry,理解能力太差, 我不是很明白你的意思.如果你是需要控制单个节点同时在执行的的mapper/reducer数.你可以通过修改slave节点配置中的mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.tasks.maximum.至于总的mapper任务数,是由splits决定的,当然可以通转载 2012-08-01 18:04:28 · 552 阅读 · 0 评论 -
辅助类GenericOptionsParser,Tool和ToolRunner
为了简化命令行方式运行作业,Hadoop自带了一些辅助类。GenericOptionsParser是一个类,用来解释常用的Hadoop命令行选项,并根据需要,为Configuration对象设置相应的取值。通常不直接使用GenericOptionsParser,更方便的方式是:实现Tool接口,通过ToolRunner来运行应用程序,ToolRunner内部调用GenericOptionsPars转载 2012-08-01 19:46:58 · 1285 阅读 · 0 评论 -
Hadoop作业提交分析(一)
Hadoop作业提交分析(一) bin/hadoop jar xxx.jar mainclass args…… 这样的命令,各位玩Hadoop的估计已经调用过NN次了,每次写好一个Project或对Project做修改后,都必须打个Jar包,然后再用上面的命令提交到Hadoop Cluster上去运行,在开发阶段那是极其繁琐的。程序员是“最懒”的,既然麻烦肯定是要想些法子减少无谓的键盘敲击,转载 2012-08-01 13:22:28 · 502 阅读 · 0 评论 -
MapReduce执行的几个例子
在Google的《MapReduce: Simpli ed Data Processing on Large Clusters》论文中,作者向世界阐述了什么是MapReduce。其中的几个关于MapReduce的例子很简单,但是很有代表性。拿来分享一下。 分布式Grep:map函数检查输入行,如果匹配给定的模板(类似于正则表达式的匹配),就把该行输出。reduce函数是一个标识函数转载 2012-08-01 13:47:52 · 641 阅读 · 0 评论 -
Hadoop的Shuffle过程(1)
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里转载 2012-08-01 18:10:18 · 1176 阅读 · 0 评论 -
Hadoop作业提交分析(二)
上一篇我们分析了bin/hadoop脚本,知道了提交一个Hadoop作业所需要的基本设置以及真正执行任务提交的类。这一篇我们就来分析这个提交任务的类org.apache.hadoop.util.RunJar,看它内部具体又做了些什么。 RunJar是Hadoop中的一个工具类,结构很简单,只有两个方法:main和unJar。我们从main开始一步步分析。 main首先检查传转载 2012-08-01 13:15:01 · 1059 阅读 · 0 评论 -
Hadoop作业提交的几种方案
前言: 提交hadoop作业时我们遇到了许多的问题,在网上也查过许多的文章,有许多对hadoop提交作业原理进行分析的文章,却总看不到对具体操作过程讲解的文章,导致我们在eclipse提交的作业总是在eclipse虚拟的云环境中运行。慢慢摸索中,一个一个的作业提交方法被我们发现,呵呵,现在总结一下吧。方案: 1、用命令行方式提交2、在eclipse中提交作业3、采用转载 2012-08-01 13:45:56 · 813 阅读 · 0 评论 -
HBase与MongoDB的区别(1)
1、HBase依赖于HDFS;MongoDB直接存储在本地磁盘中。2、HBase按照列族将数据存储在不同的文件中;MongoDB不分列,整个文档都存储在一个(或者说一组)文件中,通过一个有一个通用的.ns文件保存名称空间(Column-based和Document-Based之间的区别应该是指这个地方吧)。即HBase是列式存储而MongoDB是文档存储3、HBase一个region只有一转载 2013-02-20 09:43:13 · 927 阅读 · 0 评论 -
MongoDB与HBase的区别(2)
1.Mongodb bson文档型数据库,整个数据都存在磁盘中,hbase是列式数据库,集群部署时每个familycolumn保存在单独的hdfs文件中。2.Mongodb 主键是“_id”,主键上面可以不建索引,记录插入的顺序和存放的顺序一样,hbase的主键就是row key,可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes),在hbase内部,ro转载 2013-02-20 09:45:42 · 1000 阅读 · 0 评论 -
MapReduce之计数器
(1)计数器主要用来收集系统信息,以及相关作业的运行时候的统计数据,用于知道作业成功、失败等情况;(2)相比而言,计数器方式比日志更易于分析。内置计数器:(1)Hadoop内置的计数器,主要用来记录作业的执行情况(2)内置计数器包括MapReduce框架计数器(Map-Reduce Framework) ——文件系统计数器(转载 2015-04-29 11:59:33 · 1275 阅读 · 0 评论 -
Hadoop自定义InputFormat
接触hadoop一年多了,但是自己一直没有用hadoop写过什么程序。最近,由于项目需要,将一些文件转换成hadoop的MapFile。网上的例子基本是直接处理文本输入,自定义输入格式的见到两个,但是都是用的旧的API,用新API写的还没有,可能高手不屑于写这些。但是处理自定义输入是每个用hadoop的人都要学会才行的,因为不是每个人的输入都是文本文件。数据输入是hadoop的第一步,不能读自转载 2012-08-08 23:46:53 · 616 阅读 · 0 评论 -
Hadoop OutputFormat浅析
在Hadoop中,OutputFormat和InputFormat是相对应的两个东西。相比于InputFormat,OutputFormat似乎没有那么多细节。InputFormat涉及到对输入数据的解析和划分,继而影响到Map任务的数目,以及Map任务的调度(见《Hadoop InputFormat浅析》)。而OutputFormat似乎像其字面意思那样,仅仅是完成对输出数据的格式化。对于输转载 2012-08-09 00:02:57 · 848 阅读 · 0 评论 -
Hadoop的Shuffle过程(2)
4. 每次溢写会在磁盘上生成一个溢写文件,如果map的输出结果真的很大,有多次这样的溢写发生,磁盘上相应的就会有多个溢写文件存在。当map task真正完成时,内存缓冲区中的数据也全部溢写到磁盘中形成一个溢写文件。最终磁盘中会至少有一个这样的溢写文件存在(如果map的输出结果很少,当map执行完成时,只会产生一个溢写文件),因为最终的文件只有一个,所以需要将这些溢写文件归并到一起,这转载 2012-08-01 19:49:00 · 728 阅读 · 0 评论 -
第一章 Hadoop启动Shell启动脚本分析
第一节 start-all.sh脚本此脚本很简单,就是根据运行此脚本的目录进入安装hadoop目录下的bin目录,然后运行启动hdfs和mapred的启动脚本。 [plain] view plaincopybin=`dirname "$0"` bin=`cd "$bin"; pwd` . "$bin"/hadoop-config.sh # sta转载 2012-08-02 15:45:50 · 899 阅读 · 0 评论 -
实现mapreduce多文件自定义输出
普通maprduce中通常是有map和reduce两个阶段,在不做设置的情况下,计算结果会以part-000*输出成多个文件,并且输出的文件数量和reduce数量一样,文件内容格式也不能随心所欲。这样不利于后续结果处理。 在hadoop中,reduce支持多个输出,输出的文件名也是可控的,就是继承MultipleTextOutputFormat类,重写generateF转载 2012-08-02 20:16:46 · 593 阅读 · 0 评论 -
Hadoop使用常见问题以及解决方法(3)
单个node新加硬盘1.修改需要新加硬盘的node的dfs.data.dir,用逗号分隔新、旧文件目录2.重启dfs同步hadoop 代码hadoop-env.sh# host:path where hadoop code should be rsync'd from. Unset by default.# export HADOOP_MASTER=master:/h转载 2012-07-22 17:09:19 · 805 阅读 · 0 评论 -
Hadoop使用常见问题以及解决方法(1)
1:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-outAnswer:程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。修改办法:修改2个文件。 /etc/security/limits.conf转载 2012-07-22 17:10:18 · 385 阅读 · 0 评论 -
Hadoop使用常见问题以及解决方法(4)
Hadoop添加节点的方法自己实际添加节点过程:1. 先在slave上配置好环境,包括ssh,jdk,相关config,lib,bin等的拷贝;2. 将新的datanode的host加到集群namenode及其他datanode中去;3. 将新的datanode的ip加到master的conf/slaves中;4. 重启cluster,在cluster中看到新的datanode转载 2012-07-22 17:12:16 · 366 阅读 · 0 评论 -
Hive入门之Hive与HBase整合
开场白:Hive与HBase的整合功能的实现是利用两者本身对外的API接口互相进行通信,相互通信主要是依靠hive_hbase-handler.jar工具类 (Hive Storage Handlers), 大致意思如图所示:口水: 对 hive_hbase-handler.jar 这个东东还有点兴趣,有空来磋磨一下。一、2个注意事项:1、需要的软件有 Hadoop、Hiv转载 2012-07-18 14:55:35 · 395 阅读 · 0 评论 -
Hadoop使用常见问题以及解决方法(2)
3:处理速度特别的慢 出现map很快 但是reduce很慢 而且反复出现 reduce=0% Answer:结合第二点,然后修改 conf/hadoop-env.sh 中的export HADOOP_HEAPSIZE=4000 4:能够启动datanode,但无法访问,也无法结束的错误在重新格式化一个新的分布式文件时,需要将你NameNode上所配置的dfs.name.di转载 2012-07-22 17:08:11 · 449 阅读 · 0 评论 -
Hadoop使用常见问题以及解决方法5
hadoop的job显示webThere are web-based interfaces to both the JobTracker (MapReduce master) and NameNode (HDFS master) which display status pages about the state of the entire system. By default, these转载 2012-07-22 17:13:13 · 512 阅读 · 0 评论 -
Hadoop的运行痕迹
在使用hadoop的时候,可能遇到各种各样的问题,然而由于hadoop的运行机制比较复杂,因而出现了问题的时候比较难于发现问题。本文欲通过某种方式跟踪Hadoop的运行痕迹,方便出现问题的时候可以通过这些痕迹来解决问题。一、环境的搭建为了能够跟踪这些运行的痕迹,我们需要搭建一个特殊的环境,从而可以一步步的查看上一节提到的一些关键步骤所引起的变化。我们首先搭建一个拥有一个NameNo转载 2012-07-22 17:16:43 · 503 阅读 · 0 评论 -
Hadoop InputFormat浅析
在执行一个Job的时候,Hadoop会将输入数据划分成N个Split,然后启动相应的N个Map程序来分别处理它们。数据如何划分?Split如何调度(如何决定处理Split的Map程序应该运行在哪台TaskTracker机器上)?划分后的数据又如何读取?这就是本文所要讨论的问题。先从一张经典的MapReduce工作流程图出发:1、运行mapred程序;2、本次运行将生成一转载 2012-08-08 23:20:47 · 394 阅读 · 0 评论 -
Hadoop 自定义InputFormat实现自定义Split
上一篇文章中提到了如何进行RecordReader的重写,本篇文章就是来实现如何实现自定义split的大小要解决的需求:(1)一个文本中每一行都记录了一个文件的路径,(2)要求处理路径对应的文件,但是因为文件量比较大,所以想进行分布式处理(3)所以就对输入的文档进行预处理,读取前N行做为一个splits,但是没有实现,因为重写FileSplit不是太容易实现,就偷懒转载 2012-08-08 23:56:50 · 713 阅读 · 0 评论 -
Hadoop开发常用的InputFormat和OutputFormat
在用hadoop的streaming读数据时,如果输入是sequence file,如果用“-inputformat org.apache.hadoop.mapred.SequenceFileInputFormat”配置读的话,读入的数据显示的话为乱码,其实是因为读入的还是sequence file格式的,包括sequencefile的头信息在内.改为“inputformat org.apache转载 2012-08-08 23:59:28 · 1092 阅读 · 0 评论 -
Hadoop&MapReduce操作关系数据库(MySQL)
前以前帖子介绍,怎样读取文本数据源和多个数据源的合并:http://www.cnblogs.com/liqizhou/archive/2012/05/15/2501835.html这一个博客介绍一下MapReduce怎样读取关系数据库的数据,选择的关系数据库为MySql,因为它是开源的软件,所以大家用的比较多。以前上学的时候就没有用过开源的软件,直接用盗版,也相当与免费,且比开源好用,例如转载 2012-08-08 15:16:32 · 1217 阅读 · 0 评论 -
Hadoop自定义RecordReader
系统默认的LineRecordReader是按照每行的偏移量做为map输出时的key值,每行的内容作为map的value值,默认的分隔符是回车和换行。现在要更改map对应的输入的值,key对应的文件的路径(或者是文件名),value对应的是文件的内容(content)。那么我们需要重写InputFormat和RecordReader,因为RecordReader是在InputFor转载 2012-08-08 23:57:45 · 1012 阅读 · 0 评论 -
MapReduce之Recordreader组件
(1)以怎样的方式从分片中读取一条记录,每读取一条记录都会调用RecordReader类;(2)系统默认的RecordReader是LineRecordReader,如TextInputFormat;而SequenceFileInputFormat的RecordReader是SequenceFileRecordReader;(3)LineRecordReader是用每行的偏移量作为转载 2015-04-29 12:01:20 · 1228 阅读 · 0 评论