• 集群中遇到了文件个数超出限制的错误:

0)昨天晚上spark 任务突然抛出了异常:org.apache.hadoop.hdfs.protocol.NSQuotaExceededException: The NameSpace quota (directories and files) of directory /mydir is exceeded: quota=100000 file count=100001

1)错误提示内容信息:集群中遇到了文件个数超出限制的错误。

2)问题错误来自于hadoop quota设置了限制,但是设置限制的目的是避免集群中有过多的小文件,导致集群利用率不高的情况出现。

我这个spark job主要处理的任务内容:

var conf=new SparkConf().setAppName("test_job")
var sc=new SparkContext(conf)
var hiveContext=new HiveContext(sc) import hiveContext.implicits._ hiveContext.sql("insert into member_info select t10.*,t11.* from member as t10 inner join member_details as t11 on t10.id=t11.memberid");
  • 关于hadoop quota的信息:

hadoop HDFS有以下两种Quota

Name Quotas : 限制某个目录下的文件数量
Space Quotas : 设置某个目录的空间大小 $hadoop fs -count -q /user/hadoop
QUOTA REMAINING_QUOTA SPACE_QUOTA REMAINING_SPACE_QUOTA DIR_COUNT FILE_COUNT CONTENT_SIZE FILE_NAME
none inf none inf 2 1 180 /user/hadoop

清除Space Quota

$hadoop dfsadmin -clrSpaceQuota /user/hadoop

设置Name Quota

设置文件最大quota是1000

$hadoop dfsadmin -setQuota 1000 /user/hadoop

$hadoop fs -count -q /user/hadoop
QUOTA REMAINING_QUOTA SPACE_QUOTA REMAINING_SPACE_QUOTA DIR_COUNT FILE_COUNT CONTENT_SIZE FILE_NAME
1000 997 1073741824 1073741284 2 1 180 /user/hadoop

清除Name Quota

$hadoop dfsadmin -clrQuato /user/hadoop
  • 如何避免集群中过多小文件出现的方法:

hive下可以通过以下几点去限制:
1)文件合并

 set hive.merge.mapredfiles = true #在Map-Reduce的任务结束时合并小文件
set hive.merge.size.per.task = 128000000 #合并文件的大小
set hive.merge.smallfiles.avgsize=128000000 #当输出文件的平均大小小于该值时,启动一个独立的map-reduce任务进行文件merge

2)Map输入合并小文件

  set mapred.max.split.size=256000000;  #每个Map最大输入大小
set mapred.min.split.size.per.node=100000000; #一个节点上split的至少的大小
set mapred.min.split.size.per.rack=100000000; #一个交换机下split的至少的大小
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; #执行Map前进行小文件合并

3)输出合并

  set hive.merge.mapfiles = true #在Map-only的任务结束时合并小文件
set hive.merge.mapredfiles = true #在Map-Reduce的任务结束时合并小文件
set hive.merge.size.per.task = 256000000 #合并文件的大小
set hive.merge.smallfiles.avgsize=256000000 #当输出文件的平均大小小于该值时,启动一个独立的map-reduce任务进行文件merge

spark job下可以这么设置
//重分区,减少文件数
val trade_company_df_save=trade_company_df.repartition(1)
trade_company_df_save.registerTempTable("trade_company_df");

  •  参考文章:

http://nlslzf.iteye.com/blog/1617239
http://wenku.baidu.com/link?url=6dxklmJNF6XTFot4zlzt-_d_UXTcoPQzuATtnQil7M9My_3g_0NYJ5mx4K7tEj1jwq6KywUoBWvgPBbMkz9s7TSfCmYT_xLNZAuZRFWk36_

 

Hive:org.apache.hadoop.hdfs.protocol.NSQuotaExceededException: The NameSpace quota (directories and files) of directory /mydir is exceeded: quota=100000 file count=100001的更多相关文章

  1. hadoop fs -put上传文件失败,WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: master:8020

    hadoop fs -put上传文件失败 报错信息:(test文件夹是已经成功建好的) [root@master ~]# hadoop fs -put test1.txt /test // :: WA ...

  2. org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/hive/warehouse/page_view. Name node is in safe mode

    FAILED: Error in metadata: MetaException(message:Got exception: org.apache.hadoop.ipc.RemoteExceptio ...

  3. HADOOP HA 踩坑 - org.apache.hadoop.hdfs.qjournal.protocol.JournalNotFormattedException: Journal Storage Directory /mnt/data1/hadoop/dfs/journal/hdfscluster not formatted

    报错:在journalnode的log中: org.apache.hadoop.hdfs.qjournal.protocol.JournalNotFormattedException: Journal ...

  4. 启动HDFS之后一直处于安全模式org.apache.hadoop.hdfs.server.namenode.SafeModeException: Log not rolled. Name node is in safe mode.

    一.现象 三台机器 crxy99,crxy98,crxy97(crxy99是NameNode+DataNode,crxy98和crxy97是DataNode) 按正常命令启动HDFS之后,HDFS一直 ...

  5. Hadoop程序运行中的Error(1)-Error: org.apache.hadoop.hdfs.BlockMissingException

    15/03/18 09:59:21 INFO mapreduce.Job: Task Id : attempt_1426641074924_0002_m_000000_2, Status : FAIL ...

  6. hadoop错误FATAL org.apache.hadoop.hdfs.server.namenode.NameNode Exception in namenode join java.io.IOException There appears to be a gap in the edit log

    错误: FATAL org.apache.hadoop.hdfs.server.namenode.NameNode Exception in namenode join java.io.IOExcep ...

  7. org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in receiveBlock for block

    Hbase依赖的datanode日志中如果出现如下报错信息:DataXceiverjava.io.EOFException: INFO org.apache.hadoop.hdfs.server.da ...

  8. HDFS超租约异常总结(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException)

    HDFS超租约异常总结(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException) 转载 2014年02月22日 14:40:58 96 ...

  9. Datanode启动问题 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering>

    -- ::, INFO org.apache.hadoop.hdfs.server.datanode.DataNode: supergroup = supergroup -- ::, INFO org ...

随机推荐

  1. html(单纯html标签)

    html是超文本标记语言, 不是编程语言. 单标签:<br/>.<img>.hr(水平线).input, 双标签:h1~h6,p,a,div,head,body,title,s ...

  2. python 自带的ide 不能保存文件

    初学python 用shell写的代码结果不能保存,经查询,原因有人说是因为文件里有中文, import random secret =random.randint(1,100) guess=0 tr ...

  3. JS:事件对象1

    一,this关键字和上下文 var box = document.getElementById("box");. 普通的函数如果没有给他传递参数,函数本身是没有参数的. test( ...

  4. React Native开发之npm start加速

    在Windows下好不容易安装好React Native环境之后,运行npm start,结果就是无限被等待,快的话160秒(将近3分钟啊....) 而Mac下因为有watchman所以是飞一样的速度 ...

  5. Swift微博编写感

    首先Swift是苹果2014年力推的编程语言.可见发展趋势  在此提供    

  6. oracle优化

    sql语句 优化方式: 1select 语句中避免用"*" oracle在解析时,会将“*”依次转换成所有的列名(数据字典完成)耗时 2尽量多用commit语句 及时提交,释放资源 ...

  7. # 20145205 《Java程序设计》第1周学习总结

    教材学习内容总结 第一章中 JAVA的三大体系:JAVA SE .JAVA EE.JAVA ME.而在其中书中主要介绍我们入门学习者所要学习的JVAA SE,其又可分为四个主要组成部分同Java SE ...

  8. linux系统安装(上)

    1.VMware虚拟机的软件应用 www.vmware.com 2.linux系统安装设置(分区为重点) 3.远程登录管理工具介绍centOS5.5 使用虚拟机的优点 1.不用分区 2.可以完成本机与 ...

  9. JavaScript slice() 方法

    JavaScript slice() 方法  JavaScript Array 对象 实例 在数组中读取元素: var fruits = ["Banana", "Oran ...

  10. Alfresco.widget.Resizer可拉动div模块

    <#include "include/alfresco-template.ftl" /> <@templateHeader> <script type ...