- 浏览: 188505 次
文章分类
最新评论
-
自定义InputFormat的子类,并把重载方法isSplitable()返回值设为false
-
增加最小分片的大小,设置成大于要处理文件中最大文件的大小,简单的设成Long.MAX_VALUE即可
一般来说,分片大小计算公式如下:
Max(minimumSize,min(maximumSize,blockSize))
minimumSize < blockSize < maximumSize
如果将分片大小设置成比HDFS块更大,会增加对于map任务来说不是本地文件的块数,也就是说map要跨块读取文件。如果分片大小的设置的比较小的话,那么一个文件就会有很多map任务,那么大量的mapper任务会造成mapper任务所涉及的任务管理和启动开销大量增加,造成hadoop效率的下降,一般来说分片大小设置成块大小,也可以设置块大小的整数倍。
对于许多小文件的话,hadoop的处理效率是低下的,一种方法是我们使用Hadoop 存档工具把许多小文件打包成一个Har文件,但是这样会要求至少需要与原文件大小相同的另一份磁盘空间,而且har文件不能修改或者删除里面的文件,不过InputFormat类并不知道文件已经存档,所以处理效率仍然不好;另一种方法是使用CombineFileInputFormat类,同样这个类对大文件也有很好的效果,这对于HDFS中已经存在很多小文件的情况下值得一试。还有一种方法就是使用SequeneceFile 合并许多小文件,键是文件名,值是文件内容。
尽量避免许多小文件的情况:
-
处理小文件会增加运行作业需要的寻址次数
-
浪费namenode的内存
reducer个数选择
-
reducer最优个数与集群中可用的reducer任务槽数相关。
-
总槽数=集群中节点数*每个节点的任务槽数。
-
总槽数可以在mapred.tasktracker.reduce.tasks.maximun属性设置
常用方法
-
设置比总槽数稍微少一些的reducer数,给任务留余地(容忍一些错误发生而不需要次延长作业运行时间),比如说计划性任务或者推测性任务。
-
如果reduce任务很大,较好的做法是使用更多reducer,使任务粒度变小,这样任务的失败才不至于显著影响作业执行时间。
发表评论
-
多表join的一个优化思路
2012-11-20 11:24 1426big table:streamed small table: ... -
好的网站
2012-09-20 22:17 7531. http://www.cnblogs.com/luche ... -
Hadoop 任务流程
2012-09-07 16:18 789简单的来说分为四个阶段:InputFormat/MapTask ... -
Hadoop关于最大map reducer数目
2012-08-14 20:53 937mapred-site.xml文件: <prop ... -
java.io.IOException:Typemismatch in key from map:expected org.apache.hadoop.io
2012-08-14 20:53 1426解决办法: jo ... -
Hadoop 开启debug信息
2012-08-14 20:51 3963运行hadoop程序时,有时候你会使用一些System. ... -
Hadoop 关于0.95/1.75 * (number of nodes)误解
2012-08-14 20:51 948reduce任务槽,即集群能够同时运行的redu ... -
MapReduce ReadingList
2012-08-09 12:22 6731. http://www.aicit.org/jcit/gl ... -
"hadoop fs 和hadoop dfs的区别"
2012-05-30 15:27 1886粗略的讲,fs是个比较抽象的层面,在分布式环境中,fs就是df ... -
Hadoop 自动清除日志
2012-05-29 18:02 900hadoop集群跑了很多的任务后 在hadoop.log ... -
DistributedCache FileNotFoundException
2012-05-26 18:02 949此时注意两种文件路径表示形式,一个在HDFS中。一一个是本地文 ... -
Cygwin 不支持native lib 不支持使用native lib 提供的压缩
2012-05-25 13:33 1116弄了一个上午hadoop的压缩,一直报错NullPointer ... -
Hadoop 在Window下搭建 守护进程启动问题
2012-05-23 15:27 784hadoop version “0.20.2” java ... -
Cygwin ssh Connection closed by ::1
2012-05-17 21:09 1112在Win7下Cygwin中,使用sshlocalhost命令, ... -
Eclipse:Run on Hadoop 没有反应
2012-05-10 20:11 862hadoop-0.20.2下自带的eclise插件没有用,需要 ... -
Hadoop SequcenceFile 处理多个小文件
2012-04-29 11:04 3842利用sequenceFile打包多个小文件,MapFile是s ... -
Hadoop 自定义计数器
2012-04-22 09:04 1461public static class mapper e ... -
MapReduce : 新版API 自定义InputFormat 把整个文件作为一条记录处理
2012-04-10 21:47 2267自定义InputFormat 新版API 把真个文件当成 ... -
MapReduce : Combiner的使用(以平均数为例) 并结合in-mapper design pattern 实例
2012-04-10 18:51 4298没有使用Combiner 和 in-mapper des ... -
Hadoop NameNode backup
2012-03-24 18:12 826NameNode: <property> ...
相关推荐
hdfs文件的查看 hdfs fs -cat /文件名
第三章 分布式文件系统HDFS3 Hadoop存储系统HDFS的文件是分块存储,每个文件块默认大小为32MB。 T F 评测结果:答案正确(5 分) 1-2 HDFS系统采用NameNode定期向DataNode发送心跳消息,用于检测系统是否正常运行...
讲解HDFS小文件处理方案方法
hdfs 文件的上传,hdfs fs -put /文件名
《Hadoop大数据开发实战》教学教案—03HDFS分布式文件系统.pdf
主要介绍了Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
阐述了如何利用利用javaAPI访问HDFS的文件
从HDFS中读文件,用groupby进行sort,然后写入Hbase中
文档详细的讲述了Hadoop中HDFS文件操作命令和HDFS编程
hadoop及eclipse操作HDFS需要文件、、
本文档是关于hadoop中HDFS的文件读写操作的一份ppt,适用于学习hadoop新手.
hdfs文件的下载
3、HDFS的使用(读写、上传、下载、遍历、查找文件、整个目录拷贝、只拷贝文件、列出文件夹下文件、删除文件及目录、获取文件及文件夹属性等)-java 网址:...
hdfs dfs -test -e 文件或目录名 第三步,查看检测结果: echo $? 若输出结果为0,则说明文件或目录存在,若为1,则说明文件或目录不存在。 二、Java代码实现 import org.apache.hadoop.conf.Configuration; ...
集群外节点安装客户端使用hdfs上传文件失败用户问题集群外节点安装客户端使用hdfs上传文件失败问题现象在集群节点上安装客户端,在该客户端使用hdfs命令上传一
hdfs读取文件详细流程,绝对真实!
hdfs 分布式文件系统。HDFS是基于流数据模式访问和处理超大文件的需求而开发的,它可以运行于廉价的商用服务器上。总的来说,可以将 HDFS的主要特点概括为以下几点:(1 )处理超大文件 (2 )流式地访问数据 (3...
本文档时Hadoop云计算平台下运用Hadoop API对HDFS进行相关的操作,详细的记录了程序在eclipse中的应用,代码内容和运行结果,是学习Hadoop非常有用的资料。
上传文件到HDFS的java代码实现。已经测试了,可以直接运行。
hadoop的 hdfs配置文件 对文件的每项property进行中文描述 希望的家支持 过几天还会献上其他