ハイブの研究ノート--hiveフック

ハイブフックは、次の状況下で行ってもよいハイブフック関数であります

 

https://www.slideshare.net/julingks/apache-hive-hooksminwookim130813

私たちは、フック関数を実装します

頼ります

<?xmlのバージョン= "1.0"エンコード= "UTF-8"> 
<プロジェクトのxmlns = "http://maven.apache.org/POM/4.0.0" 
         のxmlns:XSI = "のhttp://www.w3 .ORG / 2001 / XMLスキーマ・インスタンス」
         のxsi:のschemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <親> 
        <たartifactId>インタビュー-親</たartifactId> 
        <groupIdを> com.interview </ groupIdを> 
        <バージョン> 1.0-SNAPSHOT </バージョン> 
    </親> 
    <modelVersion> 4.0.0 </ modelVersion> 

    <たartifactId>インタビュー-bigdata </たartifactId> 

    <依存性> 
        <! - logback - >
        <依存>  
            <groupIdを> org.slf4j </ groupIdを>
            <たartifactId> log4jのオーバーSLF4J </たartifactId>
            <バージョン> 1.7.25 </バージョン> 
        </依存関係> 
        <! -ハイブ- > 
        <依存> 
            <groupIdを> org.apache.hive </ groupIdを> 
            <たartifactId>ハイブ-のexec </たartifactId> 
            <バージョン> 1.1.0 </バージョン> 
        </依存関係> 
    </依存関係> 

</プロジェクト>

単にログの行を出力コード

com.bigdata.hiveパッケージ; 

輸入org.apache.hadoop.hive.ql.hooks.ExecuteWithHookContext; 
輸入org.apache.hadoop.hive.ql.hooks.HookContext; 
輸入org.slf4j.Logger; 
輸入org.slf4j.LoggerFactory。

パブリッククラスMyHiveHook実装ExecuteWithHookContext { 

    プライベート静的ロガーロガー= LoggerFactory.getLogger(MyHiveHook.class)。

    ます。public void実行(HookContext hookContextは)例外{スロー
        logger.infoを( "これは私のハイブフックです"); 
    } 
}

きれいなパッケージをMVN

私たちは、ハイブの下にあるすべてのhiveserver2の/ var / lib /ディレクトリマシンにアップロードしたjarパッケージを置く、またはディレクトリHDFSを見つけるだろう

マスター@ルート:の/ var / libに/ハイブ#lsの
examples.desktopインタビュー-bigdata-1.0-SNAPSHOT.jarに

ハイブへの変更の所有者

sudoのchownコマンドハイブ:ハイブ./interview-bigdata-1.0-SNAPSHOT.jar

configureジャーカタログやフック関数にClouderaのマネージャー

JARディレクトリ

 

フック関数は、ここに配置されたhive.exec.pre.hooksは、その時点でフック関数は、SQLを実行する前に実行されます

 

おすすめ

転載: www.cnblogs.com/tonglin0325/p/12542656.html