目次

Search

  1. はじめに
  2. Informatica Data Engineering Integrationについて
  3. マッピング
  4. マッピングの最適化
  5. ソース
  6. ターゲット
  7. トランスフォーメーション
  8. Pythonトランスフォーメーション
  9. データプレビュー
  10. クラスタワークフロー
  11. プロファイル
  12. 監視
  13. 階層データ処理
  14. 階層データ処理設定
  15. スキーマが変更された階層データの処理
  16. インテリジェント構造モデル
  17. ブロックチェーン
  18. ステートフルコンピューティング
  19. 付録 A: 接続リファレンス
  20. 付録 B: データ型リファレンス
  21. 付録 C: 関数リファレンス

ユーザーガイド

ユーザーガイド

非ネイティブ環境でのマッピングのトラブルシューティング

非ネイティブ環境でのマッピングのトラブルシューティング

非ネイティブ環境でのマッピングのトラブルシューティングのヒントを考慮します。

Hadoop環境

別のクラスタ上のHiveソースまたはHiveターゲットでマッピングを実行すると、データ統合サービスで次のエラーが発生して、Hadoopへのマッピングのプッシュに失敗する:
[exec0_query_6]が原因で、クエリの実行に失敗しました。エラーコード[10]、エラーメッセージ: [FAILED: セマンティック分析のエラー: 行1:181 テーブルが見つかりませんcustomer_eur]、およびSQL状態[42000]]。
Hadoop環境でマッピングを実行する場合は、Hiveソース/ターゲットに対して選択したHive接続とマッピングが同じHiveメタストア上にある必要があります。
SQLオーバーライドとマッピングを並列実行すると、マッピングがハングする。
クラスタが異なるエンジン間で共有されているため、使用可能なリソースが不十分です。
BlazeエンジンとSparkエンジンとで別々のYARNスケジューラキューを使用し、該当するエンジン経由でHiveServer2がSQLオーバーライドを実行できるようにします。
Blazeエンジン上で実行されるマッピングが失敗し、次のプリエンプションエラーメッセージが出力される。
2018-09-27 11:05:27.208 INFO: Container completion status: id [container_e135_1537815195064_4755_01_000012]; state [COMPLETE]; diagnostics [Container preempted by scheduler]; exit status [-102].. 2018-09-27 11:05:27.208 SEVERE: Service [OOP_Container_Manager_Service_2] has stopped running..
Blazeエンジンでは、Capacity SchedulerやFair SchedulerでのYARNプリエンプションはサポートしません。Blazeエンジンに割り当てられたキューでのプリエンプションを無効にするようHadoop管理者に依頼してください。詳細については、Mappings Fail with Preemption Errorsを参照してください。
パーティション化されたHiveテーブルを作成するようマッピングを設定した場合、マッピングが失敗し、宛先テーブルがパーティション化されているためパーティションカラムを指定する必要があることを示すエラーが表示される。
この問題は、Hiveパーティション化テーブルを作成するために設計されたクエリに対する、Informaticaの内部要件が原因で発生します。詳細と回避策については、Knowledge Base article 516266を参照してください。
SparkがHiveソースとターゲットを使用してマッピングを実行し、Hive Warehouse Connectorを使用すると、マッピングは次のエラーで失敗します。
[[SPARK_1003] Spark task [<task name>] failed with the following error: [User class threw exception: java.lang.reflect.InvocationTargetException​ ... java.sql.SQLException: Cannot create PoolableConnectionFactory (Could not open client transport for any of the Server URI's in ZooKeeper: Could not establish connection...)
この問題は、データ統合サービスがHive DTを取得できないことが原因で発生します。
回避策: HiveServer2 InteractiveのURLをHadoop接続の詳細プロパティに追加します。
  1. Ambari Webコンソールで、
    [サービス]
    [Hive]
    [設定]
    [詳細]
    [詳細Hiveサイト]
    を参照して、プロパティhive.server2.authentication.kerberos.principalの値をコピーします。
  2. Hadoop接続の詳細プロパティを編集してプロパティspark.sql.hive.hiveserver2.jdbc.url.principalを追加します。
  3. 手順1でコピーした値をspark.sql.hive.hiveserver2.jdbc.url.principalの値として貼り付けます。
マッピングがSparkエンジンで実行されると、ナノ秒精度のタイムスタンプデータは切り捨てられます。
Sparkはタイムスタンプデータを1マイクロ秒(1us)の精度で保存し、ナノ秒精度はサポートしません。Sparkエンジンで実行されているマッピングがナノ秒精度のdatetimeデータを読み取ると、データはマイクロ秒に切り捨てられます。例えば、
2015-01-02 00:00:00.000456789
2015-01-02 00:00:00.000456
に切り捨てられます。
Blazeエンジンでは、ナノ秒精度がサポートされます。

Databricks環境

マッピングが次のエラーで失敗する:
SEVERE: ID [1857]での実行が状態[INTERNAL_ERROR]、エラーメッセージ[ライブラリインストールが1800秒後にタイムアウトしました。ライブラリはまだインストールされていません: jar: "dbfs:/tmp/DATABRICKS/sess6250142538173973565/staticCode.jar"]
この状況は、並列ジョブの実行時に発生することがあります。Databricksは、ジョブを処理するためのリソースがない場合、ジョブを最大1,800秒(30分)キューイングします。30分以内にリソースが使用できない場合は、ジョブは失敗します。タイムアウトを回避するには次のアクションを検討してください。
  • Databricksクラスタのプリエンプション環境変数を設定して、各ジョブに割り当てられるリソースの量をコントロールします。プリエンプションの詳細については、
    Data Engineering Integrationガイド
    を参照してください。
  • エフェメラルクラスタを作成するクラスタワークフローを実行します。ワークフローは、クラスタを作成しジョブを実行してから、そのクラスタを削除するように設定できます。エフェメラルクラスタの詳細については、クラスタワークフローを参照してください。
Dataprocクラスタでマッピングを実行してSerDeでバッキングされたHiveテーブルでデータを読み書きすると、java.lang.ClassNotFoundException: org.apache.hive.hcatalog.data.JsonSerDeエラーでマッピングが失敗する。
Dataprocクラスタのすべてのノードの
hive-site.xml
に次のプロパティを追加し、Hiveサーバーを再起動します。
<property> <name>hive.aux.jars.path</name> <value>file:///usr/lib/hive/lib/hive-hcatalog-core-<version>.jar</value> </property>
VPN以外のDataprocクラスタでマッピングを実行すると、マッピングが失敗する。
Dataprocクラスタのすべてのノードの
hdfs-site.xml
で次のプロパティを設定します。
<property> <name>dfs.namenode.rpc-bind-host</name> <value>0.0.0.0</value> </property> <property> <name>dfs.namenode.servicerpc-bind-host</name> <value>0.0.0.0</value> </property> <property> <name>dfs.namenode.http-bind-host</name> <value>0.0.0.0</value> </property> <property> <name>dfs.namenode.https-bind-host</name> <value>0.0.0.0</value> </property> <property> <name>dfs.client.use.datanode.hostname</name> <value>true</value> </property>
マッピングでジョブレベルの最適化を設定すると、セッションログに設定が反映されるものの、Databricks Sparkエンジンでこの設定が無視される。
Databricks Sparkエンジンは、クラスタの構成設定に基づいてジョブの自動最適化を実行します。Spark.default.parallelismプロパティなどのカスタム設定は無視されます。Databricks Sparkエンジンで実行されるマッピングでジョブレベルの最適化を設定することはできません。
InformaticaはDatabricksを統合し、標準並列クラスタをサポートします。標準並列クラスタの最大キュー時間は30分で、タイムアウトに達するとジョブが失敗します。最大キュー時間は延長できません。プリエンプションのしきい値を設定すると、より多くのジョブを並列実行できますが、割り当てられるリソースの割合が小さくなり、ジョブの実行に時間がかかる可能性があります。また、プリエンプションの環境を設定しても、すべてのジョブの実行が保証されるわけではありません。プリエンプションの設定に加えて、クラスタワークフローを実行して、クラスタを作成しジョブを実行してから、そのクラスタを削除するエフェメラルクラスタを作成することができます。Databricksの並列の詳細については、Azure Databricksに問い合わせてください。