【原创】大叔经验分享(57)hue启动coordinator时报错

hue启动coordinator时报错,页面返回undefinied错误框:

后台日志报错:

runcpserver.log

[13/May/2019 04:34:55 -0700] middleware   INFO     Processing exception: 'NoneType' object has no attribute 'is_superuser': Traceback (most recent call last):
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/core/handlers/base.py", line 112, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/db/transaction.py", line 371, in inner
    return func(*args, **kwargs)
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/apps/oozie/src/oozie/decorators.py", line 113, in decorate
    return view_func(request, *args, **kwargs)
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/apps/oozie/src/oozie/decorators.py", line 75, in decorate
    return view_func(request, *args, **kwargs)
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/apps/oozie/src/oozie/views/editor2.py", line 683, in submit_coordinator
    job_id = _submit_coordinator(request, coordinator, mapping)
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/apps/oozie/src/oozie/views/editor2.py", line 709, in _submit_coordinator
    wf_dir = Submission(request.user, wf, request.fs, request.jt, mapping, local_tz=coordinator.data['properties']['timezone']).deploy()
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/desktop/libs/liboozie/src/liboozie/submission2.py", line 298, in deploy
    oozie_xml = self.job.to_xml(self.properties)
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/apps/oozie/src/oozie/models2.py", line 468, in to_xml
    'workflow_mapping': workflow_mapping
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/desktop/core/src/desktop/lib/django_mako.py", line 114, in render_to_string_normal
    result = template.render(**data_dict)
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/build/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/template.py", line 443, in render
    return runtime._render(self, self.callable_, args, data)
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/build/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 786, in _render
    **_kwargs_for_callable(callable_, data))
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/build/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 818, in _render_context
    _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/build/env/lib/python2.7/site-packages/Mako-0.8.1-py2.7.egg/mako/runtime.py", line 844, in _exec_template
    callable_(context, *args, **kwargs)
  File "/tmp/tmpurIkf9/oozie/editor2/gen/workflow.xml.mako.py", line 110, in render_body
    __M_writer( node.to_xml(mapping, node_mapping, workflow_mapping) )
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/apps/oozie/src/oozie/models2.py", line 860, in to_xml
    notebook = Notebook(document=Document2.objects.get_by_uuid(user=self.user, uuid=self.data['properties']['uuid']))
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/desktop/core/src/desktop/models.py", line 975, in get_by_uuid
    latest_doc.can_read_or_exception(user)
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/desktop/core/src/desktop/models.py", line 1305, in can_read_or_exception
    if self.can_read(user):
  File "/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/desktop/core/src/desktop/models.py", line 1302, in can_read
    return user.is_superuser or self.owner == user or self.can_write(user) or has_read_permissions
AttributeError: 'NoneType' object has no attribute 'is_superuser'

解决方法:

/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hue/apps/oozie/src/oozie/models2.py

   3395   @property
   3396   def workflow(self):
   3397     if self.document is None:
   3398       raise PopupException(_('Cannot return workflow since document attribute is None.'))
   3399 
   3400     # Integrated scheduler
   3401     if self.data['properties']['document']:
   3402       document = Document2.objects.get_by_uuid(user=self.document.owner, uuid=self.data['properties']['document'])
   3403       wf_doc = WorkflowBuilder().create_workflow(document=document, user=self.document.owner, managed=True)
   3404       wf = Workflow(data=wf_doc.data)
   3405       wf_doc.delete()
   3406       return wf
   3407     else:
   3408       wf_doc = Document2.objects.get_by_uuid(user=self.document.owner, uuid=self.data['properties']['workflow'])
   3409       return Workflow(document=wf_doc)

修改为

   3395   @property
   3396   def workflow(self):
   3397     if self.document is None:
   3398       raise PopupException(_('Cannot return workflow since document attribute is None.'))
   3399 
   3400     # Integrated scheduler
   3401     if self.data['properties']['document']:
   3402       document = Document2.objects.get_by_uuid(user=self.document.owner, uuid=self.data['properties']['document'])
   3403       wf_doc = WorkflowBuilder().create_workflow(document=document, user=self.document.owner, managed=True)
   3404       wf = Workflow(data=wf_doc.data,user=self.document.owner)
   3405       wf_doc.delete()
   3406       return wf
   3407     else:     
   3408       wf_doc = Document2.objects.get_by_uuid(user=self.document.owner, uuid=self.data['properties']['workflow'])
   3409       return Workflow(document=wf_doc,user=self.document.owner)

参考:
https://issues.cloudera.org/browse/HUE-7919
https://github.com/cloudera/hue/commit/4db8f45862302436e3a1f61be509a016f9cd1576

猜你喜欢

转载自www.cnblogs.com/barneywill/p/10858666.html