hive cli 启动缓慢问题

hive-0.13.1启动缓慢的原因

发现时间主要消耗在下面3个地方:

1. hadoopjar的时候要把相关的jar包上传到hdfs中(这里大概消耗5s,hive0.11一样,这个地方不太好优化)

2. 在每次hive cli启动的时候,初始化HiveMetaStore时,在init时,会调用下面3个方法,创建default db,role ,admin。

具体代码:

synchronized(HMSHandler.class) {

createDefaultDB();

createDefaultRoles();

addAdminUsers();

}synchronized(HMSHandler.class) {

createDefaultDB();

createDefaultRoles();

addAdminUsers();

}

生成环境这些都是有的,不需要每次都创建,这里可以直接注释掉.

3. 还有5s是在加载.hiverc的文件时造成的。

在做Create function的analyze时,会通过FunctionSemanticAnalyzer类的addEntities方法操作元数据。在hive0.11中是没有这个方法的。

关于这个方法,看说明是和function的权限有关系的,我们目前不需要。

Add writeentities to the semantic analyzer to restrict function creation to priviligedusers.

在测试环境直接注释掉没有发现什么影响。

具体实现放在后面分析。

解决方案:

14/09/0116:06:12 INFO Configuration.deprecation: mapred.reduce.tasks is deprecated.Instead, use mapreduce.job.reduces

14/09/0116:06:12 INFO Configuration.deprecation: mapred.min.split.size is deprecated.Instead, use mapreduce.input.fileinputformat.split.minsize

14/09/0116:06:12 INFO Configuration.deprecation:mapred.reduce.tasks.speculative.execution is deprecated. Instead, usemapreduce.reduce.speculative

14/09/0116:06:12 INFO Configuration.deprecation: mapred.min.split.size.per.node isdeprecated. Instead, use mapreduce.input.fileinputformat.split.minsize.per.node

14/09/0116:06:12 INFO Configuration.deprecation: mapred.input.dir.recursive isdeprecated. Instead, use mapreduce.input.fileinputformat.input.dir.recursive

14/09/0116:06:12 INFO Configuration.deprecation: mapred.min.split.size.per.rack isdeprecated. Instead, use mapreduce.input.fileinputformat.split.minsize.per.rack

14/09/0116:06:12 INFO Configuration.deprecation: mapred.max.split.size is deprecated.Instead, use mapreduce.input.fileinputformat.split.maxsize

14/09/0116:06:12 INFO Configuration.deprecation:mapred.committer.job.setup.cleanup.needed is deprecated. Instead, usemapreduce.job.committer.setup.cleanup.needed

Logginginitialized using configuration infile:/usr/local/hive-0.13.0/conf/hive-log4j.properties

hive>

上面的一些启动信息就是:

Mysql的初始化信息,

需要设置mysql服务自动启动

时间: 2024-11-03 21:49:26

hive cli 启动缓慢问题的相关文章

hive CLI 启动错误

hive CLI启动时报错:(hadoop-2.5.2 + HIVE 1.1.0) [email protected]:/hadoop-2.5.2/etc/hadoop# hive Logging initialized using configuration in jar:file:/hive/apache-hive-1.1.0-bin/lib/hive-common-1.1.0.jar!/hive-log4j.properties SLF4J: Class path contains mul

HIVE客户端启动缓慢处理步骤

1.首先打开 hive DEBUG日志,执行以下命令,直接将日志输出到控制台 hive --hiveconf hive.root.logger=DEBUG,console 2.我们知道HIVE启动过程中,首先会先连接hive metastore,然后在连接HDFS namenode,我们可以根据日志时间点来判断和排查哪一步执行时间过长导致. 3.如果是hive metastore 连接过慢,我们可以登录到metastore机器上,通过执行如下命令来确认现在metastore的连接数 netsta

hive启动问题 Unable to start Hive Cli

hive启动问题 Unable to start Hive Cli [[email protected] lib]$ hiveLogging initialized using configuration in file:/opt/hadoop/apache-hive-0.14.0-bin/conf/hive-log4j.properties SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [

Hive 系列(三)—— Hive CLI 和 Beeline 命令行的基本使用

一.Hive CLI 1.1 Help 使用 hive -H 或者 hive --help 命令可以查看所有命令的帮助,显示如下: usage: hive -d,--define <key=value> Variable subsitution to apply to hive commands. e.g. -d A=B or --define A=B --定义用户自定义变量 --database <databasename> Specify the database to use

beeline vs hive cli

近期,大数据开发环境升级为cloudera 5.3. 配套的hive版本升级为0.13.1.可以使用心仪已久的分析开窗函数了.但在使用的过程中发现一些问题,仅记于此. 1.在使用hive命令的时候,发现自动跳转至beeline客户端,并且提示hive cli已经过期,推荐使用beeline. 然后提示你输入jdbc url. 2.通过hadoop version 找到hive的home,发现有一个hive-old 的文件,通过检查测试发现这就是原来hive cli的文件. 3.简单测试beeli

Hive cli源码阅读和梳理

对Cli的重新认识*). hive cli有两种模式, 本地模式: 采用持有的driver对象来处理, 远程模式: 通过连接HiveServer来实现, 由此可见之前的架构图中的描述还是模糊且带有误导性*). 支持singal的处理支持, 比如对ctrl+c中断, 需要两次才完全退出交互*). 交互式命令处理模式源码阅读*). Signal类对象的使用,Singal静态函数 Signal.handle(Singal singla, SingalHandler handler);对signal函数

SpringBoot启动缓慢,卡住的原因

在 debug 模式下启动 springboot 缓慢,控制台一直输出如下: 解决办法: 去除代码中方法上的断点. 原因分析: 查看idea官方文档有一段这样的说明: 争对具体为什么会这样,那只有idea的开发人员才清楚吧,这里我给出自己的猜测,idea底层操作了JVM,在启动项目时,在有断点的代码处,对JVM操作了什么,影响的springboot启动缓慢. 原文地址:https://www.cnblogs.com/leafarmyarmy/p/12262852.html

单节点伪分布集群(weekend110)的Hive子项目启动顺序

因为,我的mysql是用root用户,在/home/hadoop/app/目录下,创建的. 第一步:开启mysql服务 第二步:启动hive [[email protected] app]$ su rootPassword: [[email protected] app]# service mysqld startStarting mysqld: [ OK ][[email protected] app]# su hadoop[[email protected] app]$ cd hive-0.

[Hive]关于Hive的启动问题

业务背景 用户轨迹工程脚本最近经常报错,报错如下: SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] FAILED: Error in metadata: MetaException(message:java.lang.RuntimeException: commitTransaction was called but openTransactionCalls = 0. This probably indic