2017-08-08 10 views
0

ハイブをmongo-hadoop-core 2.0.2で初めてインストールして設定しようとしています。 hadoop 2.8.0、Hive 2.1.1、MongoDB 3.4.6がインストールされています。と個別に実行するとすべて正常に動作します。mongo-hadoopコネクタを使用してMongo-hadoopコネクタを使用してHiveを接続できません

私の問題は、MongoDBとHiveを接続できないことです。私はここで述べたようにmongo-Hadoopコネクタを使用していますhttps://github.com/mongodb/mongo-hadoop/wiki/Hive-Usage 必要なjarファイルはHadoopとHiveライブラリに追加されています。 hive.shやランタイムコンソールからhive.shやランタイムにそれらを追加します。 私のクエリは

CREATE EXTERNAL TABLE testHive 
(
    id STRING, 
    name STRING 
) 
STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler' 
WITH SERDEPROPERTIES('mongo.columns.mapping'='{"id":"_id","name":"name"}') 
TBLPROPERTIES('mongo.uri'='mongodb://localhost:27017/hiveDb.testHive'); 

であると私はそれがそのCOM/MongoDBの/ Hadoopの/ IO/BSONWritable示し、次のエラー

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. com/mongodb/hadoop/io/BSONWritable 
hive> ERROR hive.ql.exec.DDLTask - java.lang.NoClassDefFoundError: com/mongodb/hadoop/io/BSONWritable 
    at com.mongodb.hadoop.hive.BSONSerDe.initialize(BSONSerDe.java:132) 
    at org.apache.hadoop.hive.serde2.SerDeUtils.initializeSerDe(SerDeUtils.java:537) 
    at org.apache.hadoop.hive.metastore.MetaStoreUtils.getDeserializer(MetaStoreUtils.java:424) 
    at org.apache.hadoop.hive.metastore.MetaStoreUtils.getDeserializer(MetaStoreUtils.java:411) 
    at org.apache.hadoop.hive.ql.metadata.Table.getDeserializerFromMetaStore(Table.java:279) 
    at org.apache.hadoop.hive.ql.metadata.Table.getDeserializer(Table.java:261) 

を取得し、テーブルクエリ

を作成して実行しながら、私はエラーを取得していますクラスはクラスパスにはありませんが、必要な(mongo-hadoop-core.jar)jarとクラスがjarファイルに追加されています。 Iが

Mongoの-Hadoopのコア2.0.2、

Mongoの-Hadoopの-ハイブ2.0.2を使用していジャーのバージョン

MongoのJavaベースドライバ3.0.2

ありがとう

答えて

0

jarを明示的に登録する必要があります。 Hiveスクリプトでは、これらのJAR(コア、ハイブ、およびJavaドライバ)を含めるには、ADD JARコマンドを使用してください(例:ADD JAR /path-to/mongo-hadoop-hive-<version>.jar;)。

Hiveシェルから実行している場合は、このように使用してください。

hive> ADD JAR /path-to/mongo-hadoop-hive-<version>.jar;

その後、あなたのクエリを実行します。

+0

両方の方法で試してみましたが、まだ動作していませんでした。 しかし、mongo-hadoop - *。jarのv1.5.1にダウングレードした後に動作しました。以前のバージョン、つまり2.0.2のようなものは、hadoopやハイブと互換性がありませんでした。 –

+0

はい。バージョンの互換性が根本的なケースになります! –

関連する問題