分享

spark thriftserver 问题

ab0412 发表于 2016-1-11 13:10:47 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 2 13835
大家好

                   我起了spark thriftserver   用beeline   查询SQL. select count(*) from m2 where pt=2014114;

                   查询结果没问题;

                    但是我删除 pt=2014114 分区 文件夹下的 一个文件,  再查询的时候 直接报  filenotfindexception. 文件找不到。 重启下thriftserver    就没报 直接查到了。


                   还有我对表 新建分区,分区有数据但  也是查不到。但重启下 thriftserver   就查到了,我怀疑 thriftserver    是不是缓存了相关数据?

已有(2)人评论

跳转到指定楼层
ab0412 发表于 2016-1-11 14:56:32
解决了 REFRESH TABLE my_table;

看的不仔细 http://spark.apache.org/docs/lat ... et-table-conversion
回复

使用道具 举报

regan 发表于 2016-1-11 15:52:51
ThriftServer.png
上图是我给你画的一个问题分析的图。
首先你删掉分区pt=2014114下面的一个文件夹,我不知道你删除的是哪一个文件夹。在这个文件夹里面存放的是数据的原数据,记录的是真正数据的存放位置,大小等信息。你删除掉这个文件,当你从发出查询请求的时候,首先会找Metadata,然metadata已然被你删除掉了,因此直接报fileNotFindException,当你重起ThriftServer,又查到了,我分析是Thrift服务器中缓存了metadata信息,退出的时候将缓存写入metadata,重起后查找又找到了。
你新建了分区,为什么通过thriftServer又查不到呢?同样的原因,分区元数据还在缓存中,没有写入metadata,元数据没有同步,因此出现这样的问题。
仅供参考

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条