2013-03-05 38 views
2

我正在運行一個映射縮減作業,它映射大約100k條記錄。經過幾千年的記錄(不同的地方,每次),在應用程序引擎日誌BadValueError以下錯誤Mapreduce作業隨機失敗,'BadValueError:名稱必須小於500'

地圖步驟失敗:名稱必須小於500

Pipeline job id: baada59c857d11e28527e1efd5a519d7

Output Blob file name: 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. 
+1

您正在使用的映射精簡的版本? – lucemia 2013-03-05 13:46:19

+0

看看這是否有幫助:http://stackoverflow.com/questions/11178869/overcome-appengine-500-byte-string-limit-in-python-consider-text – Amar 2013-03-05 19:15:55

+1

謝謝@lucemia,原來我使用的是錯誤的版本,後來我不得不下載一個seprate mapreduce庫並將其添加到我的項目代碼庫中,現在我恢復到與SDK捆綁在一起,這似乎解決了問題。 – 2013-03-07 17:36:51

回答

相關問題