hive启动debug问题 推荐 原创 菜菜光 2014-10-15 00:04:36 博主文章分类:hive ©著作权 文章标签 hive debug 文章分类 Hive 大数据 ©著作权归作者所有:来自51CTO博客作者菜菜光的原创作品,请联系作者获取转载授权,否则将追究法律责任 最近在debug hive的一个bug,之前都是使用打印日志来跟踪源码,这种方式效率比较低(每次更改了源码都要重新编译并替换线上的jar包),java的应用可以支持remote debug的,hive也不例外,主要是通过hive --debug来实现.在运行hive --debug时遇到如下问题:ERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options. Error occurred during initialization of VM agent library failed to init: jdwp根据错误信息,可以看到是由于重复的jdwp参数导致。hive其实是一个shell脚本,追踪其运行情况:cd ${HIVE_HOME}/bin;sh -x ./hive --debug查看hive --debug的调用情况: if [ "$DEBUG" ]; then if [ "$HELP" ]; then debug_help exit 0 else get_debug_params "$DEBUG" export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS $HIVE_MAIN_CLIENT_DEBUG_OPTS" fi fi这里是:HIVE_MAIN_CLIENT_DEBUG_OPTS=' -XX:+UseParallelGC -agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=y'HIVE_MAIN_CLIENT_DEBUG_OPTS 变量是在${HIVE_HOME}/bin/ext/debug.sh 中,这个脚本控制了debug的参数,比如说端口get_debug_params(){ set_debug_defaults parse_debug $1 # For Debug -XX:+UseParallelGC is needed, as it is a (unfortunately not perfect) # workaround for JVM 6862295 bug, that affects some JVMs still in use if does_jvm_support_ti; then export HIVE_MAIN_CLIENT_DEBUG_OPTS=" -XX:+UseParallelGC -agentlib:jdwp=transport=dt_socket,server=y,$port,$main_suspend" export HIVE_CHILD_CLIENT_DEBUG_OPTS=" -XX:+UseParallelGC -agentlib:jdwp=transport=dt_socket,server=y,$child_suspend" else export HIVE_MAIN_CLIENT_DEBUG_OPTS=" -XX:+UseParallelGC -Xdebug -Xrunjdwp:transport=dt_socket,server=y,$port,$main_suspend" export HIVE_CHILD_CLIENT_DEBUG_OPTS=" -XX:+UseParallelGC -Xdebug -Xrunjdwp:transport=dt_socket,server=y,$child_suspend" fi最终hive运行的命令为:exec ${HADOOP_HOME}/bin/hadoop jar hive-cli-0.13.1.jar org.apache.hadoop.hive.cli.CliDriver --hiveconf hive.aux.jars.path=xxxxx而在${HADOOP_HOME}/bin/hadoop中,设置HADOOP_OPTS时,又引用了HADOOP_CLIENT_OPTS这个变量,就导致jdwp 的参数重复了只需要注释下面一行即可以: HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"这其实是一个bug:相关的bug id https://issues.apache.org/jira/browse/HADOOP-9455 https://issues.apache.org/jira/browse/HIVE-3936bug描述:HADOOP_CLIENT_OPTS appended twice causes JVM failures在官方提供的bug id中可以看到hive0.13是fix这个bug的,具体的patch如下:diff --git bin/hive bin/hive index 40e2c75..434ea6c 100755 --- bin/hive +++ bin/hive @@ -251,7 +251,6 @@ if [ "$DEBUG" ]; then else get_debug_params "$DEBUG" export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS $HIVE_MAIN_CLIENT_DEBUG_OPTS" - export HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS" fi fi经过测试,这个path并没有生效。 赞 收藏 评论 分享 举报 上一篇:hive可以drop所有表的bug fix 下一篇:hive的shims相关类分析 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 Centos Linux 解决Nginx启动问题 linux下nginx报错 Failed to start LSB: starts the nginx web server.第一步:查看日志journalctl -xe | grep nginx查看错误日志第二步:ps -ef | grep nginx查看nginx 重复的端口号第三步:杀掉重复进程skill 39245第四步:查看服务状态与重启服务,就可以了systemctl restart nginx linux Apache Hive Apache Hive的相关知识,包括简单介绍,环境配置,和使用简介 mysql Hive SQL hive表修改分区数据日期 在Hive中,表的分区是一种组织数据的方式,它允许将表中的数据根据一个或多个列的值进行划分。每个分区可以看作是表的一个子集,它包含具有特定列值的行。分区列通常用于经常查询的条件,这样可以提高查询效率,因为Hive可以在查询时只扫描相关的分区,而不是整个表。当需要修改Hive表中的分区数据日期时,通常是因为需要更新分区列中的日期值。这可能是因为数据已经发生变化,或者需要纠正分区数据。以下是详细步骤和 数据 Hive 原始数据 hive debug模式 ## Hive Debug模式在Hive中,Debug模式是一种常用的调试手段,它可以帮助开发者在开发过程中定位和解决问题。本文将介绍Hive Debug模式的基本概念和使用方法,并提供一些示例代码来说明。### 什么是Hive Debug模式?Hive Debug模式是Hive提供的一种调试工具,它允许开发者在执行Hive查询过程中获取更详细的日志信息,并在必要时进行断点调试。通过D Hive hive sql 配置hive debug # 配置Hive DebugHive是一个基于Hadoop的数据仓库基础设施,它提供了一个SQL样式查询语言(HiveQL)用于处理和分析大规模的结构化数据。当我们在Hive中进行开发和调试时,调试信息对我们解决问题非常重要。在这篇文章中,我们将介绍如何配置Hive Debug,以便更好地进行调试。## 为什么需要Hive Debug在开发和调试过程中,我们经常需要查看程序的运行状态、 Hive hive 错误信息 hive启动问题 Unable to start Hive Cli hive启动问题 Unable to start Hive Cli[hadoop@om-liyongjian-119 lib]$ hiveLogging initialized using configuration in file:/opt/hadoop/apache-hive-0.14.0-bin/conf/hive-log4j.propertiesSLF4J: Class path cont hive hive sql debug模式 # Hive SQL Debug模式在Hive中进行大数据处理时,调试是一个非常重要的环节。调试可以帮助我们发现代码中的错误和性能问题,提高代码的质量和效率。Hive提供了SQL Debug模式来帮助我们进行调试。本文将介绍Hive SQL Debug模式的使用方法,并提供一些示例代码。## 什么是Hive SQL Debug模式Hive SQL Debug模式是Hive提供的一种调试 Hive SQL 执行计划 hive0.13 cli启动缓慢问题 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时,会调用下面 hive0.13 启动慢 java启动远程debug # Java启动远程Debug在开发Java应用程序时,我们经常会遇到需要调试远程服务器上运行的应用程序的情况。远程debug允许我们通过在远程服务器上启动应用程序,并通过本地IDE连接到它,实时监视和调试代码。## 准备工作在开始远程debug之前,我们需要确保以下几点:1. 服务器上已经安装了Java开发环境(JDK)。2. 服务器上的应用程序已经以可调试模式启动。## 应用程序 服务器 远程调试 idea 启动debug慢 idea 启动debug慢 intellij-idea spring ide linux debug 启动tomcat 在Linux系统中,使用红帽(Red Hat)操作系统可以进行各种开发和调试工作。在开发过程中,经常需要启动Tomcat服务器来运行Java开发的Web应用程序。本文将介绍在Linux系统上如何调试并启动Tomcat服务器。首先,要启动Tomcat服务器,首先需要下载安装Tomcat软件包。可以在Tomcat官方网站上下载最新版本的Tomcat压缩包。下载完成后,将压缩包解压到指定的目录下,可 服务器 x系统 Java linux tomcat debug启动 在使用Linux系统部署Tomcat服务器时,经常会遇到需要进行debug启动的情况。在进行debug启动前,我们需要了解一些基础知识和操作步骤,以确保顺利进行调试工作。Linux系统是一个开源的操作系统,广泛应用于服务器端的部署和运维工作。而Tomcat是一个开源的Java Servlet容器,用于在服务器端运行Java应用程序。在Linux系统上部署Tomcat服务器时,我们常常需要对To 服务器 x系统 调试工具 java 远程debug启动 # Java 远程 Debug 启动Java 远程 Debug 启动是一种在远程服务器上调试 Java 代码的技术。它允许开发人员在远程服务器上运行 Java 程序,并通过本地开发环境中的调试器来查找和修复错误。这对于处理在生产环境中出现的问题,特别是与环境相关的问题,非常有用。## 远程 Debug 启动的原理远程 Debug 启动的原理是通过在远程服务器上启动一个 Debug 模式 Java 远程服务器 调试器 python flask debug启动 ## Python Flask Debug启动作为一名经验丰富的开发者,我将教会你如何实现Python Flask的Debug启动。下面是整个过程的详细步骤:| 步骤 | 操作 || --- | --- || 1 | 导入必要的库 || 2 | 创建Flask应用对象 || 3 | 设置Debug模式 || 4 | 启动应用 |下面是每一步的具体操作和代码:### 1. python Python 启动应用 java debug模式启动 # Java Debug模式启动指南作为一名经验丰富的开发者,我会帮助你了解如何使用Java Debug模式启动。在本文中,我将逐步介绍整个过程,并提供相应的代码示例和解释。## Debug模式启动流程下面是Java Debug模式启动的流程。你可以按照这些步骤进行操作。| 步骤 | 说明 || ------ | ------ || 1 | 在开发工具中设置断点 || 2 | Java 调试程序 堆栈 idea tomcat debug不能启动的问题 显示:Connected to the target VM, address: '127.0.0.1:54692', transport: 'socket' 其实原因是没调整好面板。晕 ... IDEA 数据 hive cli 启动缓慢问题 hive-0.13.1启动缓慢的原因 发现时间主要消耗在以下3个地方: 1. hadoopjar的时候要把相关的jar包上传到hdfs中(这里大概消耗5s,hive0.11一样,这个地方不太好优化) 2. 在每次hive cli启动的时候,初始化HiveMetaStore时,在init时,会调用以下 hive mapreduce analyzer 初始化 mysql debug启动java程序 jar包debug启动 该系列介绍一些java开发中常用的一些小技巧,多小呢,从不会到会只需要一篇文章这么小。这一篇介绍如何使用jdk自带的扩展包配合Intellij IDEA实现远程debug。项目中经常会有出现这样的问题,会令程序员抓狂:线上项目关键代码段没有打印日志,本地环境正常生产环境却又问题...这时候,远程debug可能会启动作用。1 准备用于debug的代码准备一个RestController用于接收请求, debug启动java程序 idea debug启动不了 idea 远程调试 idea远程debug idea远程调试 hive deby模式 hive debug hive --hiveconf hive.root.logger=DEBUG,console hive deby模式 hive debug 启动python文件 debug怎么用pycharm 目录0. 引言1. pycharm中 evaluate expression 的用法2. debug的 step by step3. 命令行交互式4. 查看表达式结果4. 单个变量查看 0. 引言直接启动 evaluate expression 进去更改变量值,回车,在debug过程更改变量,防止重复 DEBUG1. pycharm中 evaluate expression 的用法首先要用deb debug 启动python文件 pycharm ide python lua