これは、MongoDBドライバを使用してHIVEとMongoDB間の接続を確立することについてです。私はリンクをオンラインで見てきました。多くの人がそれを見通しています。MongoDBハイブ接続 - JARの問題
しかし、私はコネクティビティを確立するだけで大きな問題に直面しています。
まず、Windows 64ビットシステムでCloudera Quickstart VM 5.5を使用しています。 このVMはHadoopサンドボックスをホストします。
デスクトップにMongoDBがインストールされています(同じものもCloudera VMをホストしています)。 MongoDBデータベースの認証はありません。
2つの環境を接続するために使用する3つの接続ジャーをダウンロードしました。 MongoDBのと人口データのコレクションを作成し
- :ここで
は、ステップのリストです。ポートで27017
を実行しているのMongoDBデータベース・サーバは、ハイブシェルを開始し、 は、クラスパスに次のjarファイルを追加しました: -
mongo-hadoop-core-2.0.2.jar mongo-hadoop-hive-2.0.2.jar mongo-java-driver-3.5.0.jar
(最後の1 - モンゴ、Javaベースドライバはmongodb自身から参照されたサイトからダウンロードされました)
上記のjarsを上記のディレクトリにHDFSにアップロードしました。その後、低いとは、最終的にはHIVEシェルを立ち上げ、ハイブシェル自体にjarファイルを追加しました: -
> ADD JAR hdfs:///tmp/hive/mongo/mongo-hadoop-core-2.0.2.jar;
> ADD JAR hdfs:///tmp/hive/mongo/mongo-hadoop-hive-2.0.2.jar;
> ADD JAR hdfs:///tmp/hive/mongo/mongo-java-driver-3.5.0.jar;
その後、私は動作するようになっているHIVEシェルから次のコマンドを実行します -
CREATE TABLE RAVINE ( id INT, h_name STRING, h_age INT ) STORED BY "com.mongodb.hadoop.hive.MongoStorageHandler" WITH SERDEPROPERTIES ('mongo.columns.mapping'='{"id":"_id","h_name":"name","h_age":"a ge"}') TBLPROPERTIES("mongo.uri"="mongodb://100.96.237.185:27017/test.beehive");
は、私が手にエラーがアービンドにより、上記と同じである: -
FAILED:実行エラー、からの戻りコードorg.apache.hadoop.hive.ql.exec.DDLTask。 COM/MongoDBの/ utilに/ JSON
私は、エラーがであり、このログイン時にstumpledものを見るためにClouderaのログを経て: - Clouderaの
からログファイル
場合あなたは上記のエラーログを見なければなりませんでした。それは
"は、jarファイルを読み込めませんでした"、と述べています。zipcollection無効END ヘッダ(悪い中央ディレクトリオフセット)
私はこの同じjarファイルを得ていたので、これは非常に混乱している - なぜjarファイルがダウンロードされますhttps://mongodb.github.io/mongo-java-driver/
から>「モンゴ-javaのドライバを」同じサイトからこのタイプのエラーが発生しますか?私は破損したjarファイルの可能性を想定していたので、3.5.0からさまざまなドライババージョンをダウンロードしようとしました。すべての方法で3.0.4まで!変更なし - 同じエラーです。
ここに私の質問があります。 Javaドライバをダウンロードするためのサイトでは、MongoDBはMavenの依存を表示します -
だから私の質問は非常に簡単です! mongoDBのWebサイトからjarファイルをダウンロードすると、どうやってこのようなエラーが発生するのですか?
私は次に何をすべきかに関する提案を誰にも持っていますが、https://github.com/mongodb/mongo-hadoop/wiki/Hive-Usage のようなウェブ上のリンクのほとんどは、これは非常に簡単な30分のプロセスであると思われますが、この状態。
ご意見やご提案をいただければ幸いです。
返信いただきありがとうございます。私は地元のcentos VMから(あなたが示唆したように)jarファイルを追加しました - >それでも同じエラーが出ました。私は瓶を「mongo-hadoop-hive-1.5.1.jar」と「mongo-hadoop-core-1.5.1.jar」に格下げしましたが、それでも同じエラーがありました。 (ちなみに、この2つのジャーはエラーを投げているものではありませんでした)。エラーを投げかけていたと思われる瓶は、MongoDB独自のjar - "mongo-java-driver-3.5.0.jar"でした。あなたが見ることができるように - 私は古いバージョンを2.14.2まで試しました。私はここに何かを見逃していますか?githubのリンクは、このプロセスが簡単であることを示しています! – Mario