Four Stars

tHiveInputを使用したデータの抽出について

お世話になっております。

 

現在、talendのtHiveInput(Big Data Batch)を使用してデータを取得したいと考えております。

しかし、tHiveInputを使用した際に後述のエラーが発生してしまい、データの取得ができない状態です。

どのようにすればデータの抽出が可能となりますでしょうか。

皆様のお力添えをいただけたらと思います。

 

■環境

  Linux1 ※talendジョブの実行環境

  Linux2 ※Hadoopのマスタノード

  Linux3 ※Hadoopのslaveノード

  Talend Studio Cloud V7.0.1

  AmazonEMR EMR5.8.0(Apache 2.7.3)

  Spark Version 2.2 Spark

  Mode YARN Client

  Hadoop 2.7.3-amzn-6

 

■設定内容

 https://docs.aws.amazon.com/ja_jp/emr/latest/ReleaseGuide/emr-hive-metastore-glue.html       https://docs.aws.amazon.com/ja_jp/emr/latest/ReleaseGuide/emr-spark-glue.html

 EMR実行時、上記2つのリンクに従って以下の設定を行っています。

"hive-site" "hive.metastore.client.factory.class""com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory"

"spark-hive-site" "hive.metastore.client.factory.class" "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory"

 

■エラー内容

※下記のエラー内容で見つからないとされているDatabase 'hoge'はHive上に存在しており、

  Hadoop上で以下のコマンドを実行するとデータの抽出ができることは確認できております。

hive -e "SELECT * from hoge.fuga"

-----------------------------------------------------

org.apache.spark.sql.catalyst.analysis.NoSuchDatabaseException: Database 'hoge' not found; at org.apache.spark.sql.catalyst.catalog.SessionCatalog.org$apache$spark$sql$catalyst$catalog$SessionCatalog$$requireDbExists(SessionCatalog.scala:173) at org.apache.spark.sql.catalyst.catalog.SessionCatalog.setCurrentDatabase(SessionCatalog.scala:268) at org.apache.spark.sql.execution.command.SetDatabaseCommand.run(databases.scala:59) at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult$lzycompute(commands.scala:58) at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult(commands.scala:56) at org.apache.spark.sql.execution.command.ExecutedCommandExec.executeCollect(commands.scala:67) at org.apache.spark.sql.Dataset.(Dataset.scala:182) at org.apache.spark.sql.Dataset$.ofRows(Dataset.scala:67) at org.apache.spark.sql.SparkSession.sql(SparkSession.scala:623) at org.apache.spark.sql.SQLContext.sql(SQLContext.scala:691) at emr_hive_test.test_parquet_0_1.test_parquet.tHiveInput_1Process(test_parquet.java:1305) at emr_hive_test.test_parquet_0_1.test_parquet.run(test_parquet.java:1573) at emr_hive_test.test_parquet_0_1.test_parquet.runJobInTOS(test_parquet.java:1538) at emr_hive_test.test_parquet_0_1.test_parquet.main(test_parquet.java:1449)

 

以上、よろしくお願いいたします。