2

約 100k レコードをマップするマップ削減ジョブを実行しています。

数千のレコード (毎回異なる場所) の後でマップ ステップが失敗し、アプリ エンジン ログに次のエラー BadValueError: name must be under 500 が記録されます。

パイプライン ジョブ ID: baada59c857d11e28527e1efd5a519d7

出力 Blob ファイル名: content_contributors_report_1362478582.csv

ログダンプ

 Final result for job '1581739058957C0CA88F5' is 'success' E2013-03-05
 12:25:21.637 name must be under 500 bytes. Traceback (most recent call
 last):   File
 "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
 line 1535, in __call__
     rv = self.handle_exception(request, response, e)   File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
 line 1529, in __call__
     rv = self.router.dispatch(request, response)   File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
 line 1278, in default_dispatcher
     return route.handler_adapter(request, response)   File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
 line 1102, in __call__
     return handler.dispatch()   File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
 line 572, in dispatch
     return self.handle_exception(e, self.app.debug)   File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
 line 570, in dispatch
     return method(*args, **kwargs)   File "/base/data/home/apps/s~myap/a-276.365486148015822746/mapreduce/base_handler.py",
 line 68, in post
     self.handle()   File "/base/data/home/apps/s~myapp/a-276.365486148015822746/mapreduce/handlers.py",
 line 437, in handle
     spec, state, self.base_path())   File "/base/data/home/apps/s~myapp/a-276.365486148015822746/mapreduce/handlers.py",
 line 517, in _finalize_job
     mapreduce_spec.mapper.output_writer_class().finalize_job(mapreduce_state)
 File
 "/base/data/home/apps/s~myapp/a-276.365486148015822746/mapreduce/output_writers.py",
 line 454, in finalize_job
     files.blobstore.get_blob_key(filename)))   File "/base/data/home/apps/s~myapp/a-276.365486148015822746/mapreduce/lib/files/blobstore.py",
 line 112, in get_blob_key
     _BLOB_FILE_INDEX_KIND, ticket, namespace='')])[0]   File "/python27_runtime/python27_lib/versions/1/google/appengine/api/datastore_types.py",
 line 504, in from_path
     ValidateString(id_or_name, 'name')   File "/python27_runtime/python27_lib/versions/1/google/appengine/api/datastore_types.py",
 line 176, in ValidateString
     raise exception('%s must be under %d bytes.' % (name, max_len)) BadValueError: name must be under 500 bytes.
4

1 に答える 1

0

mapreduce のバージョンが異なると、この問題が発生する可能性があります。デフォルト以外のバージョンでの Run Map Reduce に基づいていますか? https://code.google.com/p/appengine-mapreduce/ を使用することをお勧めします

ドキュメント内の古いバンドル リンクはバグです。それはすぐにきれいになります。

一部の SDK には MapReduce が少し含まれていますが (歴史的な理由から)、現時点ではオープン ソース バージョンが適しています。

于 2013-03-07T20:17:08.340 に答える