2013-01-10

今天先是解决了hadoop的kerberos的ticket刷新的问题。我在我的每个程序的main的开头调用了一下UserGroupInformation里的loginUserFromKeytab方法。

然后就一直在折腾hcataloghive。hcatalog 的文档极少。初始化的过程中频繁遇到mysql的key的长度不能超过767的问题。最后无奈,把database的字符集从utf8改成latin1。

然后发现,hive添加partition的时候,location不能是文件只能是一个目录。于是我就只好继续挪我的日志的目录结构。

然后,我发现我在设置map task的input目录时

HCatInputFormat.setInput(job, InputJobInfo.create(null, "raw_access_log", null));

不能设置filter。我的日志是按日期作partition。可是我这里一旦设置了过滤条件,程序就在这一行中止了,连一个异常都没扔出来。这让我非常郁闷。如果这个问题不解决hcatalog就是unusable。

然后就是我一直不知道,如果hive的schema改变了怎么办?老数据还能继续读取吗?假如storage format是plain text。

明天继续学 hive 的语法吧。

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL

此博客中的热门博文

在windows下使用llvm+clang

少写代码,多读别人写的代码

tensorflow distributed runtime初窥