hdfs在append的时候抛出DiskOutOfSpaceException

刘媛媛1 2017-06-20 02:49:45
我使用CDH5搭建的集群。前端传来的数据,我需要及时的保存到hive中。这里我用hdfs 的append方法,直接将数据写入到hive对应的表中。但是在写入中,用不了多长时间就会抛出All datanodes DatanodeInfoWithStorage xxxx are bad. Aborting。看日志发现是datanode抛出了DiskOutOfSpaceException。通过仔细观察我发现,在append数据的时候,datanode磁盘容量急速被用掉,但实际上并没有被用到那么多,这里感觉是程序检测异常。

如上图中的slave-2那个机器不到一会磁盘就被用完了,但等报出异常后,slave-2的硬盘使用情况又恢复正常了。

请问有高手遇到过这个问题吗?已经困扰几天了,希望高人解答!!
...全文
775 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
LinkSe7en 2017-07-06
  • 打赏
  • 举报
回复
你应该是slave2来接数据并且append吧?append其实很傻,把原始文件拉下来,append之后,传hdfs。而且由于你是在datanode上进行put,所以这个datanode会存储完整的文件(所有block在这台机器都有一个副本)。 再有你对hive认识应该以为它是的数据库,其实它是数据仓库。仓库是什么意思?比如一船货来了码头,我卸一件货我就要立即调车放进仓库吗?肯定是一批一批放啊!所以,你应该是比如每5分钟一批的数据,生产文件,然后load进表里。 这时候你又问了,实时性怎么保证?hive从来不是做实时计算的。做实时计算有es,有hbase,有spark structed streaming+kafka等等等等。别为难hive了。 最后,你的表应该没有分区吧?

20,808

社区成员

发帖
与我相关
我的任务
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
  • 分布式计算/Hadoop社区
  • 涤生大数据
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧