2016-12-17 33 views
1

我需要检查Hive服务的类路径以查看它在运行配置单元查询时加载的jar的位置。配置单元 - 如何打印Hive服务的类路径

我想更新配置单元的镶木地板到最新的镶木地板,读取新的镶木地板格式数据。

我已经更新了配置单元库位置(/usr/hdp/2.5.XX/hive/lib/)中的罐子,但它仍在使用其他位置的旧罐子。

我试着下面的命令列出罐子,但没有输出。

蜂巢> list jars;

我曾尝试使用

添加罐子<“jar文件>

添加新的罐子,但它仍然是捡旧瓶子。

有什么方法可以找出用于配置单元服务的classpath或jars吗?

回答

0

运行,以获得蜂巢命令位置

which hive 

打开 '蜂巢' 在/ usr/bin中/(您的蜂巢的位置)文件

vi /usr/bin/hive 

您应该看到类似下面。 对exec配置单元文件进行备份,并在exec之前的末尾为HADOOP_CLASSPATH添加echo命令,如下所示。

#!/bin/bash 

if [ -d "/usr/hdp/2.5.0.0-1245/atlas/hook/hive" ]; then 
if [ -z "${HADOOP_CLASSPATH}" ]; then 
    export HADOOP_CLASSPATH=/usr/hdp/2.5.0.0-1245/atlas/hook/hive/* 
else 
    export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:/usr/hdp/2.5.0.0-1245/atlas/hook/hive/* 
fi 
fi 

... 

if [ -z "${HADOOP_CLASSPATH}" ]; then 
export HADOOP_CLASSPATH=${HCATALOG_JAR_PATH} 
else 
export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:${HCATALOG_JAR_PATH} 
fi 

回声 “类路径= $ HADOOP_CLASSPATH”

exec "${HIVE_HOME}/bin/hive.distro" "[email protected]" 

运行蜂巢命令显示的类路径。

的实木复合地板的问题得到了通过增加新的实木复合地板的jar位置到环境变量解决“HADOOP_CLASSPATH”

1

要列出罐子路径使用命令列表罐子more details;

和添加罐中,蜂巢-site.xml中蜂房-site.xml中的(add auxiliary jar

样品hive.aux.jars.path位置

<property> 
<name>hive.aux.jars.path</name> 
<value>file://localpath/yourjar.jar</value> 
</property> 

更新

检查配置单元hive.aux.jars.path属性并查找物理路径提及。

Add <jar> full path. 
+0

我尝试添加在辅助路径罐子路径,但它并没有拿起新的。 尝试列表罐子;但没有罐子列出,因为它只显示添加通过'加罐'命令的罐子 – Munesh

+0

你有重申服务.. –

1

如果您确信它拿起木地板的旧版本,那么它必须存在于机器上,这样你就可以随便找文件系统中的所有实木复合地板罐子:find/-name 'parquet-*.jar'

如果您想要从计算机上的可用jar中检查它使用的特定jar,可以尝试使用lsof来达到此目的。我会从lsof | grep parquet | grep jar开始,并根据需要进一步微调过滤。下面的命令

+0

我试图寻找拼花地板罐,但无法找到它。看起来这个jar没有被命名为parquet * .jar – Munesh