[解决]java.io.IOException: Cannot obtain block length for LocatedBlock
在hadoop测试集群运行job的过程中发现部分运行失败,有Cannot obtain block length for LocatedBlock,使用hdfs dfs -cat ${文件}的时候也报这个错,看过代码后发现是文件未被正常关闭(flume传到hdfs上的,可能由于Namenode长时间gc或者切换或者重启会留下很多.tmp结尾的文件),为此,使用hadoop命令显示处于打开状态的文件,然后删除这些文件:
hadoop fsck / -openforwrite | egrep -v '^\.+$' | egrep "MISSING|OPENFORWRITE" | grep -o "/[^ ]*" | sed -e "s/:$//" | xargs -i hadoop fs -rmr {};
然后重传这些文件到hdfs。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
初步掌握Yarn的架构及原理(转)
1、YARN 是什么? 从业界使用分布式系统的变化趋势和 hadoop 框架的长远发展来看,MapReduce的 JobTracker/TaskTracker 机制需要大规模的调整来修复它在可扩展性,内存消耗,线程模型,可靠性和性能上的缺陷。在过去的几年中,hadoop 开发团队做了一些 bug 的修复,但是这些修复的成本越来越高,这表明对原框架做出改变的难度越来越大。为从根本上解决旧MapReduce框架的性能瓶颈,促进 Hadoop 框架的更长远发展,从 0.23.0 版本开始,Hadoop 的 MapReduce 框架完全重构,发生了根本的变化。新的 Hadoop MapReduce 框架命名为 MapReduceV2 或者叫 Yarn。 YARN是从0.23.0版本开始新引入的资源管理系统,直接从MR1(0.20.x、0.21.x、0.22.x)演化而来,其核心思想: 将MR1中JobTracker的资源管理和作业调用两个功能分开,分别由ResourceManager和ApplicationMaster进程来实现 1)ResourceManager:负责整个集群的资源管理和调度...
- 下一篇
Spark-再接着上次的Lamda架构
日志分析 单机日志分析,适用于小数据量的。(最大10G),awk/grep/sort/join等都是日志分析的利器。 例子: 1、shell得到Nginx日志中访问量最高的前十个IP cat access.log.10 | awk '(a[$1]++) END (for(b in a) print b"\t"a[b])' | sort -k2 -r | head -n 10 2、python 统计每个IP的地址点击数 import re import sys contents=sys.argv[1] def NginxIpHit(logfile_path): ipadd = r'\.'.join([r'\d{1,3}']*4) re_ip = re.compile(ipadd) iphitlisting = {} for line in open(contents): match = re_ip.match(line) if match: ip = match.group() iphitlisting[ip]=iphitlisting.get(ip,0)+1 print iphitli...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Hadoop3单机部署,实现最简伪集群
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- MySQL8.0.19开启GTID主从同步CentOS8