2016-12-17 3 views
1

のクラスパスを印刷する方法。ハイブ - 私はハイブのクエリを実行している間、それはロードのjarファイルの場所を確認するためにハイブサービスのクラスパスをチェックする必要がハイブサービス

新しい寄木細工のフォーマットデータを読み込むために、最新の寄木細工ジャーにハイブ用の寄せ木ジャーを更新したいと考えています。

hive libの場所(/usr/hdp/2.5.XX/hive/lib/)でjarを更新しましたが、それでも他の場所の古いjarファイルを使用しています。

私は瓶が、ノー出力を一覧表示するには、コマンドの下にしようとしました。

ハイブ>リストの瓶。

私は>

は瓶<」jarファイルを追加

を使用して、新しいjarを追加しようとしているが、それはまだ古い瓶を選んでいます。

ハイブサービスに使用されるクラスパスまたはjarファイルを見つける方法はありますか?

答えて

0

ラン。 以下のように、ハイブファイルをバックアップし、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]" 

実行ハイブコマンドは、クラスパスを表示します。

寄木細工の問題は、環境変数に新しい寄木細工の瓶の場所を追加することで解決しまった

「HADOOP_CLASSPATH」

1

jarパスの使用コマンドを一覧表示するにはlist jarsmore details;

とハイブ-site.xmlで位置をhive.aux.jars.pathするジャーを追加(add auxiliary jar

ハイブ-site.xmlのサンプル

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

更新

ハイブhive.aux.jars.pathプロパティをチェックし、物理パスの記述を探します。

Add <jar> full path. 
+0

私はAUXパスにjarファイルのパスを追加しようとしたが、それは新しいものをピックアップしていませんでした。 試したリストのjars;しかしjarだけを表示してjarファイルを表示しないようにしましたthrougj 'add jar'コマンド – Munesh

+0

サービスを再開しました.. –

1

あなたはそれが寄木細工の古いバージョンを拾うことが確実な場合は、単にファイルシステム内のすべての寄せ木細工の瓶を探すことができますので、それは、マシン上に存在している必要がありますfind/-name 'parquet-*.jar'

あなたの場合使用している特定のjarファイルがコンピュータ上で利用可能なjarファイルであるかどうか確認したい場合は、lsofを使用してみてください。私はlsof | grep parquet | grep jarで始まり、さらに必要に応じてフィルタリングを微調整します。ハイブコマンドの場所あなたは、以下のようなものが表示されるはずの/ usr/binに/(あなたのハイブの場所)

vi /usr/bin/hive 

which hive 

開く 'ハイブ' ファイルを取得するためのコマンド以下

+0

私は寄木細工の瓶を探してみましたが見つかりませんでした。瓶が寄木張り* .jarという名前ではないように見えます – Munesh

関連する問題