質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.58%

DataPipeLineでDynamoDBにデータを投入しようとするとエラーになる

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,265

Otazoman

score 43

 前提・実現したいこと

AWSのDataPipelineを使用してDynamoDBにデータをインポートしたいのですが、
エラーとなってしまいます。

以下の公式の手順に沿ってやっています。
https://docs.aws.amazon.com/ja_jp/datapipeline/latest/DeveloperGuide/dp-importexport-ddb-part1.html

何が原因でエラーになっているのか分かりません。どこから手を付けていいかもわからない状況です。
すいませんが何とかデータインポートできるようにお力をお貸しいただけないでしょうか。

 発生している問題・エラーメッセージ

手順通り進めてDataPipelineを起動しました。EC2のインスタンスとEMRは動いていますが しばらくすると、以下の画像の様に「CANCELED」となってしまい、異常終了しています。
![イメージ説明]

以下の通り「Terminate After」を「10min」に変更してクラスタは起動できるようになりました。

イメージ説明

しかし、クラスターでの処理時にエラーとなります。
イメージ説明

 試したこと

データフォーマットについてはここを参考に以下の通りにCSVを作成いたしました。

 インポートしようとしているJSONデータ

{"item":[{"PutRequest":{"Item":{"item-category":{"S":"1"},"item-code1":{"S":"1-0001"},"item-code2":{"S":"1-0002"},"item-code3":{"S":"1-0003"},"item-code4":{"S":"1-0004"},"item-code5":{"S":"1-0005"},"item-code6":{"S":"1-0006"},"item-code7":{"S":"1-0007"},"item-code8":{"S":"1-0008"},"item-code9":{"S":"1-0009"},"item-code10":{"S":"1-0010"},"item-code11":{"S":"1-0011"},"item-code12":{"S":"1-0012"},"item-code13":{"S":"1-0013"},"item-code14":{"S":"1-0014"}}}},{"PutRequest":{"Item":{"item-category":{"S":"2"},"item-code1":{"S":"2-0001"},"item-code2":{"S":"2-0002"},"item-code3":{"S":"2-0003"},"item-code4":{"S":"2-0004"},"item-code5":{"S":"2-0005"},"item-code6":{"S":"2-0006"},"item-code7":{"S":"2-0007"},"item-code8":{"S":"2-0008"},"item-code10":{"S":"2-0010"}}}},{"PutRequest":{"Item":{"item-category":{"S":"3"},"item-code1":{"S":"3-0001"},"item-code2":{"S":"3-0002"},"item-code5":{"S":"3-0005"},"item-code6":{"S":"3-0006"},"item-code7":{"S":"3-0007"},"item-code8":{"S":"3-0008"},"item-code9":{"S":"3-0009"},"item-code10":{"S":"3-0010"},"item-code11":{"S":"3-0011"},"item-code12":{"S":"3-0012"}}}},{"PutRequest":{"Item":{"item-category":{"S":"4"},"item-code1":{"S":"4-0001"},"item-code2":{"S":"4-0002"},"item-code3":{"S":"4-0003"},"item-code4":{"S":"4-0004"},"item-code5":{"S":"4-0005"},"item-code6":{"S":"4-0006"},"item-code7":{"S":"4-0007"},"item-code8":{"S":"4-0008"},"item-code9":{"S":"4-0009"},"item-code10":{"S":"4-0010"}}}},{"PutRequest":{"Item":{"item-category":{"S":"5"},"item-code1":{"S":"5-0001"},"item-code7":{"S":"5-0007"},"item-code8":{"S":"5-0008"},"item-code9":{"S":"5-0009"},"item-code10":{"S":"5-0010"},"item-code11":{"S":"5-0011"},"item-code12":{"S":"5-0012"},"item-code14":{"S":"5-0014"}}}},{"PutRequest":{"Item":{"item-category":{"S":"6"},"item-code1":{"S":"6-0001"},"item-code2":{"S":"6-0002"},"item-code3":{"S":"6-0003"},"item-code4":{"S":"6-0004"},"item-code5":{"S":"6-0005"},"item-code14":{"S":"6-0014"}}}},{"PutRequest":{"Item":{"item-category":{"S":"7"},"item-code1":{"S":"7-0001"},"item-code3":{"S":"7-0003"},"item-code4":{"S":"7-0004"},"item-code6":{"S":"7-0006"},"item-code7":{"S":"7-0007"},"item-code9":{"S":"7-0009"},"item-code11":{"S":"7-0011"},"item-code12":{"S":"7-0012"},"item-code13":{"S":"7-0013"},"item-code14":{"S":"7-0014"}}}},{"PutRequest":{"Item":{"item-category":{"S":"8"},"item-code1":{"S":"8-0001"},"item-code2":{"S":"8-0002"},"item-code3":{"S":"8-0003"},"item-code4":{"S":"8-0004"},"item-code9":{"S":"8-0009"},"item-code10":{"S":"8-0010"}}}}]}

どうやら上記ファイルを取り込めずにクラスタで処理エラーとなってしまっていて、
後続処理を実行できないみたいです。DataPipelineの方で確認できたログを以下に貼り付けます。

 データパイプラインで出力されているアクティビティログの内容

19 Nov 2018 07:22:05,483 [INFO] (TaskRunnerService-df-103676927OD2BO9ACKYE_@EmrClusterForLoad_2018-11-19T07:15:53-0) df-103676927OD2BO9ACKYE amazonaws.datapipeline.taskrunner.TaskPoller: Executing: amazonaws.datapipeline.activity.EmrActivity@566caa0d
19 Nov 2018 07:22:05,649 [INFO] (TaskRunnerService-df-103676927OD2BO9ACKYE_@EmrClusterForLoad_2018-11-19T07:15:53-0) df-103676927OD2BO9ACKYE amazonaws.datapipeline.activity.EmrActivity: EMR transform starting.
19 Nov 2018 07:22:05,658 [INFO] (TaskRunnerService-df-103676927OD2BO9ACKYE_@EmrClusterForLoad_2018-11-19T07:15:53-0) df-103676927OD2BO9ACKYE amazonaws.datapipeline.cluster.EmrClient: EMR client waiting for cluster to enter ready state for jobflow id 'j-39MDB0QJCVMNW'.
19 Nov 2018 07:22:05,658 [INFO] (TaskRunnerService-df-103676927OD2BO9ACKYE_@EmrClusterForLoad_2018-11-19T07:15:53-0) df-103676927OD2BO9ACKYE amazonaws.datapipeline.cluster.EmrClient: EMR client checking if cluster is ready for jobflow with id 'j-39MDB0QJCVMNW'.
19 Nov 2018 07:22:06,041 [INFO] (TaskRunnerService-df-103676927OD2BO9ACKYE_@EmrClusterForLoad_2018-11-19T07:15:53-0) df-103676927OD2BO9ACKYE amazonaws.datapipeline.cluster.EmrClient: EMR client reports that cluster with jobflow id 'j-39MDB0QJCVMNW' is ready.
19 Nov 2018 07:22:06,106 [INFO] (TaskRunnerService-df-103676927OD2BO9ACKYE_@EmrClusterForLoad_2018-11-19T07:15:53-0) df-103676927OD2BO9ACKYE amazonaws.datapipeline.cluster.EmrClient: EMR client adding steps with request '{JobFlowId: j-39MDB0QJCVMNW,Steps: [{Name: df-103676927OD2BO9ACKYE_@TableLoadActivity_2018-11-19T07:15:53_Attempt=1,ActionOnFailure: CONTINUE,HadoopJarStep: {Properties: [],Jar: s3://dynamodb-emr-ap-northeast-1/emr-ddb-storage-handler/2.1.0/emr-ddb-2.1.0.jar,Args: [org.apache.hadoop.dynamodb.tools.DynamoDbImport, s3://dynamodb-importdata/item-content.json, item-content, 0.25]}}]}'
19 Nov 2018 07:23:06,921 [WARN] (TaskRunnerService-df-103676927OD2BO9ACKYE_@EmrClusterForLoad_2018-11-19T07:15:53-0) df-103676927OD2BO9ACKYE amazonaws.datapipeline.cluster.EmrUtil: EMR job flow named 'df-103676927OD2BO9ACKYE_@EmrClusterForLoad_2018-11-19T07:15:53' with jobFlowId 'j-39MDB0QJCVMNW' is in status 'WAITING' because of the step 'df-103676927OD2BO9ACKYE_@TableLoadActivity_2018-11-19T07:15:53_Attempt=1' failures 'null'
19 Nov 2018 07:23:06,921 [INFO] (TaskRunnerService-df-103676927OD2BO9ACKYE_@EmrClusterForLoad_2018-11-19T07:15:53-0) df-103676927OD2BO9ACKYE amazonaws.datapipeline.cluster.EmrUtil: EMR job '@TableLoadActivity_2018-11-19T07:15:53_Attempt=1' with jobFlowId 'j-39MDB0QJCVMNW' is in  status 'WAITING' and reason 'Cluster ready after last step completed.'. Step 'df-103676927OD2BO9ACKYE_@TableLoadActivity_2018-11-19T07:15:53_Attempt=1' is in status 'FAILED' with reason 'null'
19 Nov 2018 07:23:06,922 [INFO] (TaskRunnerService-df-103676927OD2BO9ACKYE_@EmrClusterForLoad_2018-11-19T07:15:53-0) df-103676927OD2BO9ACKYE amazonaws.datapipeline.cluster.EmrUtil: Collecting steps stderr logs for cluster with AMI 3.9.0
19 Nov 2018 07:23:06,937 [INFO] (TaskRunnerService-df-103676927OD2BO9ACKYE_@EmrClusterForLoad_2018-11-19T07:15:53-0) df-103676927OD2BO9ACKYE amazonaws.datapipeline.taskrunner.LogMessageUtil: Returning tail errorMsg :    at org.apache.hadoop.mapreduce.JobSubmitter.writeOldSplits(JobSubmitter.java:520)
    at org.apache.hadoop.mapreduce.JobSubmitter.writeSplits(JobSubmitter.java:512)
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:394)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1285)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1282)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548)
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1282)
    at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:562)
    at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:557)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548)
    at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:557)
    at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:548)
    at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:833)
    at org.apache.hadoop.dynamodb.tools.DynamoDbImport.run(DynamoDbImport.java:68)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.hadoop.dynamodb.tools.DynamoDbImport.main(DynamoDbImport.java:30)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
~以下略~

どの箇所でエラーとなっていてどこを修正すればいいかご教示のほどよろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.58%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る