解决File has reached the limit on maximum number of blocks的问题
1. 絮絮叨叨
最近在导入3000x的TPC-H的lineitem数据时,发现直接通过Hive的
LOAD DATA LOCAL INPATH
莫名其妙地失败hive> LOAD DATA LOCAL INPATH '/data1/tpch/tpch_tools/dbgen/lineitem.tbl' INTO TABLE tpch_3000x_orc.lineitem_text; Loading data to table tpch_3000x_orc.lineitem_text FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask. org.apache.hadoop.hive.ql.metadata.HiveException: Unable to move source file:/data1/tpch/tpc-h_tools_v3.0.0/dbgen/lineitem.tbl to destination hdfs://.../da_lineitem_text
lineitem.tbl是一个大概2.3T的大文件,因为怀疑是文件太大无法上传
通过查看其它数据的HDFS目录发现,通过
LOAD DATA LOCAL INPATH
向Hive表导入数据时,其实是直接将文件copy到对应的HDFS目录因此,想直接通过
hdfs dfs -put
直接将lineitem.tbl上传到对应的HDFS目录上传过程中,直接提示文件block数超过最大的block数,对应的配置项为
dfs.namenode.fs-limits.max-blocks-per-file
hive> dfs -put /data1/tpch/tpc-h_tools_v3.0.0/dbgen/lineitem.tbl hdfs:///.../da_lineitem_text/; put: File has reached the limit on maximum number of blocks (dfs.namenode.fs-limits.max-blocks-per-file): 10000 >= 10000 Command -put /data1/tpch/tpc-h_tools_v3.0.0/dbgen/lineitem.tbl hdfs://.../da_lineitem_text/ failed with exit code = 1 Query returned non-zero code: 1, cause: null
2. 使用split进行文件分割
2.1 确认HDFS配置
看到报错信息后,首先想到的就是确认
dfs.namenode.fs-limits.max-blocks-per-file
的值命名如下:
hdfs getconf -confKey dfs.namenode.fs-limits.max-blocks-per-file
执行结果为1048576,根本不是报错信息中的说的10000
在Hive CLI中,执行set命令也显示1048576
set dfs.namenode.fs-limits.max-blocks-per-file;
2.2 运维建议使用小一点的数据集
- 能力有限,只能求助HDFS的运维同事
- 同事建议使用小一点的数据集,但自己又需要那么大的数据集
- 自己的猜测:
dfs.namenode.fs-limits.max-blocks-per-file
在NameNode中的设置为10000,当前服务器的HDFS配置,可能并未与NameNode同步 (后续我会找运维同事进行确认的)
2.3 split按行拆分文件
通过上网查阅资料,发现split命令可以实现文件的拆分
而考虑到lineitem.tbl文件,每行代表一条记录,所以按照行数(每个文件20亿条数据)对其进行拆分
同样地,因为拆分时间比较长,也是通过
nohup
提交后台作业nohup bash -c 'split -l 2000000000 lineitem.tbl /data7/lineitem' > split.log 2>&1 &
拆分后的文件,使用
/data7/lineitem
作为前缀,从aa、ab、ac依次编号
split命令的使用,可以参考博客:Split Command in Linux with Examples
当然,具体的使用,还是查看帮助文档来的更全面
split --help
解决File has reached the limit on maximum number of blocks的问题相关推荐
- 解决System limit for number of file watchers reached
问题背景 系统: deepin 详情: 在用vue脚手架写项目的时候,用npm run serve启动服务,报错Error: ENOSPC: System limit for number of fi ...
- Error: ENOSPC: System limit for number of file watchers reached, watch'所在文件路径'
Error: ENOSPC: System limit for number of file watchers reached, watch'所在文件路径' vue工程在 deepin15.11 系统 ...
- Intellij IDEA中file size exceeds configured limit解决
把Hadoop源码导入IDEA中后,其中有个YarnProtos 文件代码为3.28MB,IDEA直接就不把它当java类看了, 报file size exceeds configured limit ...
- linux 微信开发工具报错:System limit for number of file watchers reached, watch
在linux 用命令打开微信开发工具的时候,报错:System limit for number of file watchers reached, watch... 解决方案:在终端依次执行一下命令 ...
- allegro SPMHDB-225 The maximum number of text sizes has been reached.错误解决办法
allegro 在使用一个常用库元件的时候报allegro SPMHDB-225 The maximum number of text sizes has been reached.元件不能放置. 分 ...
- Linux Increase The Maximum Number Of Open Files / File Descriptors (FD)
http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/ How do I increase the ...
- 2021-06-04 路由器频繁掉线 Maximum number of concurrent DNS queries reached (max: 150)
最近公司新换了路由器,之前的TP-Link的路由器坏掉了. 因为我们是新搬了厂房,所以我们更换了机柜,之前的路由器太小了,架机柜架不上去,况且又坏了.所以我们就换了个机柜式的路由器,艾泰2620G,一 ...
- [NACOS HTTP-POST] The maximum number of tolerable server reconnection errors has been reached
使用nacos时,启动后一直报错,如下: java.net.ConnectException: [NACOS HTTP-POST] The maximum number of tolerable se ...
- apscheduler调度器异常错误:skipped: maximum number of running instances reached (1)
参考别人的解决方案:https://pdf-lib.org/Home/Details/10550 参考官方文档:https://apscheduler.readthedocs.io/en/latest ...
最新文章
- pickle,json ;random,shelve
- 【转】oracle存储过程常用技巧
- synology smb_用于在Synology NAS上测试Spring Boot Web应用程序的JUnit模拟文件
- 工业交换机和工业级光纤收发器的区别
- Android add external jar
- 为Cubieboard打造完美Debian系统
- Android 系统(15)---Launcher启动过程
- Metro风格的Android界面应用
- 【Vue2.0】—键盘事件(三)
- 物联网已死,API 万岁!
- sql int 比较_SQL进阶--错题集1
- UNIX环境高级编程习题——第一章
- Delphi android 开发视频教程
- 使用jqery模拟网易严选购物车功能
- 3D目标检测方案总结
- 程序设计基础java_Java程序设计基础
- 今晚折腾了好久,win7极限精简版239M在虚拟机未成功?
- 【学习笔记】空间统计(常用)
- 想考阿里云ACP认证,网上买题库靠谱吗?
- 智联招聘java可信吗_蛇字属于什么生肖十二生肖中的动物各怎么读?