本文共 732 字,大约阅读时间需要 2 分钟。
hive由0.11升级至0.13之后,cli的启动时间由5s增加为10s,影响了部分etl job的运行时间,经过debug,发现时间主要消耗在下面3个地方:
1. hadoop jar的时候要把相关的jar包上传到hdfs中(这里大概消耗5s,hive0.11一样,这个地方不太好优化)
2. 在每次hive cli启动的时候,初始化HiveMetaStore时,在init时,会调用下面3个方法,创建default db,role ,admin。
具体代码:
1 2 3 4 5 | synchronized (HMSHandler. class ) { createDefaultDB(); createDefaultRoles(); addAdminUsers(); } |
生成环境这些都是有的,不需要每次都创建,这里可以直接注释掉.
3. 还有5s是在加载.hiverc的文件时造成的。
在做Create function的analyze时,会通过FunctionSemanticAnalyzer类的addEntities方法操作元数据。在hive0.11中是没有这个方法的。
关于这个方法,看说明是和function的权限有关系的,我们目前不需要。
Add write entities to the semantic analyzer to restrict function creation to priviliged users.
在测试环境直接注释掉没有发现什么影响。
具体实现放在后面分析。
本文转自菜菜光 51CTO博客,原文链接:http://blog.51cto.com/caiguangguang/1541746,如需转载请自行联系原作者