从配置单元访问oracle nosql

o2rvlv0m  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(308)

我遵循这个(相当老的)教程,使用storagehandler从hive访问本地oracle nosql db。
我成功地:
解压hadoop2.7.2下 /home/hadoop/hadoop 提取Hive1.2.1 /home/hadoop/hive 设置以下环境变量:

  1. export HADOOP_HOME=/home/hadoop/hadoop
  2. export HADOOP_COMMON_HOME=$HADOOP_HOME
  3. export HADOOP_HDFS_HOME=$HADOOP_HOME
  4. export HADOOP_MAPRED_HOME=$HADOOP_HOME
  5. export HADOOP_YARN_HOME=$HADOOP_HOME
  6. export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
  7. export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
  8. export KVHOME=/home/hadoop/kv
  9. export KVROOT=/tmp/kv-metadata
  10. export HIVE_HOME=/home/hadoop/hive/
  11. export HIVE_AUX_JARS_PATH=$KVHOME/lib/kvclient.jar
  12. export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HIVE_HOME/bin

运行oracle nosql数据库:

  1. java -jar $KVHOME/lib/kvstore.jar kvlite -root $KVROOT -host localhost &

创建了 MOVIE oracle数据库中的表
但是,当我跑的时候 hive 和类型

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

我得到以下错误:

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

显然,这似乎是一个与serde组件相关的错误。
我也尝试过Hive2.0,但也不起作用。
有什么线索吗?

cuxqih21

cuxqih211#

这是一个已知的问题,与hive-9500引入lazysimpleserde公共接口的不兼容更改有关。切换到hive1.0.1解决了这个问题。

相关问题