2017-08-23 12 views
0

私はhadoop 2.8.1をubuntuにインストールし、spark-2.2.0-bin-hadoop2.7をインストールしました。 最初にspark-shellでデータベースを作成し、java JDBCプログラムを使用してアクセスするためにtryiedすると、テーブルが存在しませんでした。その後、私はビーラインを使用し、データベースもここには存在しないことを観察しました。私はビーラインを通じてデータベースを作成しました。 spark-shellとbeelineが異なるDBを表示するのはなぜですか?同じapache sparkのためにbeelineとspark-shellで異なるデータベースを表示できますか?

おそらく同じものを表示する必要があります。私はhive2を接続してテーブルをフェッチしたプレーンなJDBCプログラムを試してみました。時にはそれが私がスパークシェルを介して作成したテーブルを表示し、時にはビーラインを通して作成されたテーブルを表示することもあります。

答えて

1

これはおそらく、Sparkのインストール がHiveウェアハウスにアクセスするために正しく設定されていないためです。

このような場合、Spark-SQLは独自のローカルウェアハウス をセットアップし、スタンドアロンモードに戻すように設計されています。これは、非ハイブユーザーに対して の採用を容易にするためのものです。

はこれを解決するには、次のことを行う必要があり:

  1. official documentationを参照してください。
  2. を何が起こるかを理解 にログを読み取ると「ハイブ」または「メタストア」に関連するものを探しには、Sparkはハイブ-site.xmlの設定ファイルへのアクセス権を持っていることを確認してください。 あなたは、例えば、シンボリックリンク(最初のパスを確認してください)

    ln -s /etc/hive/conf/hive-site.xml /etc/spark/conf/hive-site.xml 
    
  3. を設定することができ、あなたのスパークのインストールがハイブのjarファイルへのアクセス ($SPARK_HOME/libをご確認ください)
  4. あなたが持っていることを確認してくださいを持っていることを確認してください

    SparkSession.builder.enableHiveSupport().getOrCreate() 
    

・ホープ、このことができます:このようなものでハイブのサポートを可能にしました。

+0

私は愚かな質問のために申し訳ありません。私はハイブをインストールせず、スパークフォルダにhive-site.xmlがありません。また、私のファイルシステムにハイブフォルダもありません。あなたは助けてもらえますか? – ABC

+0

あなたも[リンク](https://stackoverflow.com/questions/45819568/why-there-are-many-spark-warehouse-folders-got-created)で私を助けてくれますか – ABC

+0

私はあなたの設定を理解してください。ハイブをインストールしていない場合は、どのようにビーラインを使用できますか?ビーラインを使用するには、それをHiveServer2のURLに接続する必要があります。 サンドボックス環境でのみspark-sqlを試したい場合は、このドッカーを試してみてください:https://github.com/FurcyPin/docker-hive-spark スパークThriftServer(HiveServer2)のHive Metastoreをセットアップします。それに接続されたspark-sqlシェルを開きます。また、DockerFileを見て、同様の環境のインストールを開始することもできます。 – FurryMachine

関連する問題