/ / HiveからOracle NoSQLへのアクセス - oracle、hadoop、hive、hiveql、oracle-nosql

HiveからOracle NoSQLにアクセスする - oracle、hadoop、hive、hiveql、oracle-nosql

私はフォローしています この(かなり古い)チュートリアル StorageHandlerを使用してHiveからローカルのOracle NoSQL DBにアクセスします。

私はうまくいった:

  • Hadoop 2.7.2の下で抽出された /home/hadoop/hadoop
  • 抽出されたハイブ1.2.1の下 /home/hadoop/hive
  • 以下の環境変数を設定します。

    export HADOOP_HOME=/home/hadoop/hadoop
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_YARN_HOME=$HADOOP_HOME
    export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export KVHOME=/home/hadoop/kv
    export KVROOT=/tmp/kv-metadata
    export HIVE_HOME=/home/hadoop/hive/
    export HIVE_AUX_JARS_PATH=$KVHOME/lib/kvclient.jar
    export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HIVE_HOME/bin
    
  • Oracle NoSQL DBを実行します。

    java -jar $KVHOME/lib/kvstore.jar kvlite -root $KVROOT -host localhost &
    
  • を作成しました MOVIE Oracle DB内のテーブル

しかし、私が走ったとき hive タイプ

hive> CREATE EXTERNAL TABLE IF NOT EXISTS MOVIE( id INT, original_title
STRING,    overview STRING, poster_path STRING, release_date STRING,
vote_count INT,       runtime INT, popularity DOUBLE, genres STRING)
STORED BY "oracle.kv.hadoop.hive.table.TableStorageHandler"
TBLPROPERTIES  ( "oracle.kv.kvstore"="kvstore",
"oracle.kv.hosts"="localhost:5000",
"oracle.kv.hadoop.hosts"="localhost",
"oracle.kv.tableName"="MOVIE");

次のエラーが表示されます。

FAILED: Execution Error, return code 1 from
org.apache.hadoop.hive.ql.exec.DDLTask.
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.initSerdeParams
(Lorg/apache/hadoop/conf/Configuration;Ljava/util/Properties;Ljava
/lang/String;)Lorg/apache/hadoop/hive/serde2
/lazy/LazySimpleSerDe$SerDeParameters;

どうやら、それはSerDeコンポーネントに関連するエラーのようです。

Hive 2.0でも試してみましたが、うまくいきません。

何が起こっているのか知りたい?

回答:

回答№1は0

これは、に関連した既知の問題です。 LazySimpleSerDeパブリックインターフェイスに互換性のない変更が導入されたHIVE-9500. Hive 1.0.1に切り替える 問題を解決しました。