2016-12-17 72 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