2016-08-07 12 views
0

キーワードをカウントするためのPython SDKを使用した単純なDataFlowパイプラインを実行しています。ジョブは入力データの前処理には問題ありませんが、次のエラーでグループ化/出力ステップに失敗します。Google DataFlow pythonパイプライン書き込みエラー

ログには、作業者がtempフォルダにアクセスする際に問題があると言われていますが、プロジェクトのストレージバケットには適切な権限があります。これにはどんな問題がありますか?

"/usr/local/lib/python2.7/dist-packages/apache_beam/io/gcsio.py", line 
606, in write raise self.upload_thread.last_error # pylint: 
disable=raising-bad-type HttpError: HttpError accessing 
<https://www.googleapis.com/resumable/upload/storage/v1/b/[PROJECT-NAME-REDACTED]-temp-2016-08-07_04-42-52/o?uploadType=resumable&alt=json&name=0015bf8d-fa87-4c9a-82d6-8ffcd742d770>: 
response: <{'status': '404', 'alternate-protocol': '443:quic', 
'content-length': '165', 'vary': 'Origin, X-Origin', 'server': 
'UploadServer', 'x-guploader-uploadid': 
'AEnB2UoYRPUwhz-OXlJ437k0J8Uxd1lJvTsFbfVJF_YMP2GQEvmdDpo7e-3DVhuqNd9b1A_RFPbfIcK6hCsFcar-hdI94rqJZUvATcDmGRRIvHecAt5CTrg', 
'date': 'Sun, 07 Aug 2016 04:43:23 GMT', 'alt-svc': 'quic=":443"; 
ma=2592000; v="36,35,34,33,32,31,30"', 'content-type': 
'application/json; charset=UTF-8'}>, content <{ "error": { "errors": [ 
{ "domain": "global", "reason": "notFound", "message": "Not Found" } 
], "code": 404, "message": "Not Found" } } > 
+0

バケット名 '[PROJECT-NAME-REDACTED] -temp-2016-08-07_04-42-52'は正しくありません。あなたは 'TextFileSink'を持っていますか?あなたはそれに渡す引数は何ですか、有効なgcsの場所ですか? –

+0

これは修正されていないワードカウントの例でも再現できます。出力を 'gs:// mybucket'に設定するのは失敗し、' gs:// mybucket/'は機能しません。あなたが最後のスラッシュを追加すると、問題が解決するかもしれません。 –

+0

@SzereDyeriはい、正当なGCSの場所を設定しました。ちょうど同じコマンドライン引数で同じパイプラインを5回繰り返すことで、タスクは最終的に成功しました。これはバケット名の問題ではないと思いますが、DataFlowには他にも問題があるはずです。 – Min

答えて

0

これはTextFileSinkのための出力としてルートバケットを許可していませんhttps://issues.apache.org/jira/browse/BEAM-539、です。回避策として、出力場所としてサブディレクトリのパス(例:gs:// foo/bar)を使用してください。

関連する問題