kylin Build Dimension Dictionary异常处理--FileNotFoundException:/kylin_metadata/resources/dict/tb_name/***.dict
异常
Caused by: java.io.FileNotFoundException:/kylin_metadata/resources/dict/tb_name/***.dict
原因
原因是kylin在创建维度字典的时候有一个bug,正常创建字典或者快照的时候会进行两个步骤:1、将数据写到hdfs;2将资源名作为key写一个空的字节数组到元数据存储(hbase)中;如果第二步失败的话,kylin会进行会滚的操作,将hdfs上的资源给清理掉,但是如果第二步已经成功写入但是依然用于网络或其他原因而引起异常的话,kylin也会进行会滚操作,但是只是清理了hdfs上的文件,并没有清理在元数据中的占位key,这个时候build cube的时候就会提示文件找不到,因为它是从元数据中查找到的文件资源路径,然后去hdfs上读取这个字典文件,可是hdfs上的文件已经被回滚掉了,所以就抛出异常了
解决方法
去hbase kylin元数据库找到对应的dict key(就是报错的那个dict名),删掉就可以了
get 'kylin_metadata','/dict/tb_name/***.dict'
delete 'kylin_metadata','/dict/tb_name/***.dict'
参考:http://apache-kylin.74782.x6.nabble.com/Re-Failed-to-read-big-resource-dict-xxxx-td13624.html