2017-09-29 4 views
0

Google Dataflow Serviceを使用してETL用のApacheビームスクリプトを実行しています。ワークフローに失敗しました。原因:(35af2d4d3e5569e4):データフローが固まっているようです。

ジョブは最初は完了するのに4〜5分かかっていましたが、1時間後にエラーが発生して失敗しました。

ワークフローに失敗しました。原因:(35af2d4d3e5569e4):データフローが滞っているようです。

実際にジョブが開始されなかったようです。

私はpython SDK 2.1.0を使って実行していました。thisの回答として、SDKを切り替えるために言及された質問に、私はPython SDK 2.0.0を使用して実行しようとしました。

ジョブIDは以下のとおりです。2017-09-28_04_28_31-11363700448712622518

更新:

@BenChambersログをアップチェックするために提案された後、それはジョブが障害のために起動していないことが表示されます

ログを開始する労働者の次のログを4回(データフローのドキュメントで述べたように、バンドルはそれが失敗すると宣言する前に4回試みている)

Running setup.py install for dataflow-worker: finished with status 'done' 
Successfully installed dataflow-worker-2.1.0 
Executing: /usr/local/bin/pip install /var/opt/google/dataflow/workflow.tar.gz 
Processing /var/opt/google/dataflow/workflow.tar.gz 
Complete output from command python setup.py egg_info: 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
IOError: [Errno 2] No such file or directory: '/tmp/pip-YAAeGg-build/setup.py' 

---------------------------------------- 
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-YAAeGg-build/ 
/usr/local/bin/pip failed with exit status 1 
Dataflow base path override: https://dataflow.googleapis.com/ 
Failed to report setup error to service: could not lease work item to report failure (no work items returned) 
を示しました。

答えて

0

ジョブがデータフローサービスに送信されると、最新のバージョンのapache-beamがワーカーにインストールされます。現在、apache-beamの最新バージョンは2.1.0です。いずれかのApacheのビームまたはGoogleの雲のpythonパッケージは、内部実装のためのsixという名前のPythonパッケージを使用する必要があります。

this答えが示すように、sixの最新バージョン、1.11.0apache-beam 2.1.0で動作しません。

sixのバージョンが1.11ではなく1.10である必要があるデータフローサービス用のセットアップファイルを提供することをお勧めします。あなたはあなたがthis link

でsetuptoolsのについて読むことができ

install_requires=[ 
    'six==1.10.0',  
    ] 

セットアップファイルに install-requiresのパラメータを与えることによって、あなたは this link


でデータフロージョブにセットアップファイルをどのように提供するかについて読むことができることを行うことができます

更新

submi業務をデータフローに移行すると、データフローサービスはコンピューティングエンジンをワーカーとしてスピンアップし、データフローを実行するために必要なすべての要件をインストールします。それがインストールされると、それがインストールするすべてのPythonパッケージは、データフローサービスの手元にあり、デフォルト設定が何であれインストールされます。これは、あなたのような問題につながる可能性があります。

解決策は、パイプのpipeline_optionsrequirements_file引数を指定することによって、データフロージョブに要件ファイルを提供することです。これにより、データフローサービスは、要件ファイルに記載されているPythonパッケージをワーカーにインストールし、パッケージのバージョン管理による問題を回避することができます。あなたは、私がログをチェックした後、質問を更新しましたthis link

0

パイプラインが詰まる一般的な原因は、ワーカーが起動できないことです。 UIから、上部の「ログ」をクリックし、次に「スタックドライバー」というリンクをクリックすることができます。これにより、Stackdriver Loggingページが表示され、特定のジョブのログが表示されます(worker)。 workerからworker-startupに変更すると、作業者の開始を試みるログが表示されます。起動時に問題が発生した場合は、ここに表示されます。

+0

上のデータフローパイプラインに要件ファイルを提供する方法については見つけることができた

は、あなたが先に行く方法を提案することができますか? – user3816204

関連する問題