Airflow DAG 직렬화 : TypeError : 'V1Pod'유형의 개체가 JSON 직렬화 가능하지 않습니다.

파스칼 길레

"KubernetesExecutor를 사용할 때 Airflow는 작업별로 시스템 기본값을 재정의하는 기능을 제공합니다.이 기능을 활용하기 위해 Kubernetes V1pod개체를 만들고 원하는 재정의를 채울 수 있습니다."

다음 연산자로 DAG를 트리거하려고합니다 (공식 핵심 문서의 예).

...
volume_task = PythonOperator(
            task_id="task_with_volume",
            python_callable=test_volume_mount,
            executor_config={
                "pod_override": k8s.V1Pod(
                    spec=k8s.V1PodSpec(
                        containers=[
                            k8s.V1Container(
                                name="base",
                                volume_mounts=[
                                    k8s.V1VolumeMount(
                                        mount_path="/foo/", name="example-kubernetes-test-volume"
                                    )
                                ],
                            )
                        ],
                        volumes=[
                            k8s.V1Volume(
                                name="example-kubernetes-test-volume",
                                host_path=k8s.V1HostPathVolumeSource(path="/tmp/"),
                            )
                        ],
                    )
                ),
            },
        )
...

UI에서 내 DAG를 클릭하면 다음 오류가 발생합니다.


                          ____/ (  (    )   )  \___
                         /( (  (  )   _    ))  )   )\
                       ((     (   )(    )  )   (   )  )
                     ((/  ( _(   )   (   _) ) (  () )  )
                    ( (  ( (_)   ((    (   )  .((_ ) .  )_
                   ( (  )    (      (  )    )   ) . ) (   )
                  (  (   (  (   ) (  _  ( _) ).  ) . ) ) ( )
                  ( (  (   ) (  )   (  ))     ) _)(   )  )  )
                 ( (  ( \ ) (    (_  ( ) ( )  )   ) )  )) ( )
                  (  (   (  (   (_ ( ) ( _    )  ) (  )  )   )
                 ( (  ( (  (  )     (_  )  ) )  _)   ) _( ( )
                  ((  (   )(    (     _    )   _) _(_ (  (_ )
                   (_((__(_(__(( ( ( |  ) ) ) )_))__))_)___)
                   ((__)        \\||lll|l||///          \_))
                            (   /(/ (  )  ) )\   )
                          (    ( ( ( | | ) ) )\   )
                           (   /(| / ( )) ) ) )) )
                         (     ( ((((_(|)_)))))     )
                          (      ||\(|(|)|/||     )
                        (        |(||(||)||||        )
                          (     //|/l|||)|\\ \     )
                        (/ / //  /|//||||\\  \ \  \ _)
-------------------------------------------------------------------------------
Node: 9c9de21b5ea0
-------------------------------------------------------------------------------
Traceback (most recent call last):
  File "/opt/python3.6/lib/python3.6/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/opt/python3.6/lib/python3.6/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/opt/python3.6/lib/python3.6/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/opt/python3.6/lib/python3.6/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/opt/python3.6/lib/python3.6/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/opt/python3.6/lib/python3.6/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/opt/python3.6/lib/python3.6/site-packages/flask_admin/base.py", line 69, in inner
    return self._run_view(f, *args, **kwargs)
  File "/opt/python3.6/lib/python3.6/site-packages/flask_admin/base.py", line 368, in _run_view
    return fn(self, *args, **kwargs)
  File "/opt/python3.6/lib/python3.6/site-packages/flask_login/utils.py", line 258, in decorated_view
    return func(*args, **kwargs)
  File "/usr/local/lib/airflow/airflow/www/utils.py", line 386, in view_func
    return f(*args, **kwargs)
  File "/usr/local/lib/airflow/airflow/www/utils.py", line 292, in wrapper
    return f(*args, **kwargs)
  File "/usr/local/lib/airflow/airflow/utils/db.py", line 74, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/airflow/airflow/www/views.py", line 1706, in tree
    show_external_logs=bool(external_logs))
  File "/usr/local/lib/airflow/airflow/www/views.py", line 425, in render
    return super(AirflowViewMixin, self).render(template, **kwargs)
  File "/opt/python3.6/lib/python3.6/site-packages/flask_admin/base.py", line 308, in render
    return render_template(template, **kwargs)
  File "/opt/python3.6/lib/python3.6/site-packages/flask/templating.py", line 140, in render_template
    ctx.app,
  File "/opt/python3.6/lib/python3.6/site-packages/flask/templating.py", line 120, in _render
    rv = template.render(context)
  File "/opt/python3.6/lib/python3.6/site-packages/jinja2/environment.py", line 1090, in render
    self.environment.handle_exception()
  File "/opt/python3.6/lib/python3.6/site-packages/jinja2/environment.py", line 832, in handle_exception
    reraise(*rewrite_traceback_stack(source=source))
  File "/opt/python3.6/lib/python3.6/site-packages/jinja2/_compat.py", line 28, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/airflow/airflow/www/templates/airflow/tree.html", line 20, in top-level template code
    {% extends "airflow/dag.html" %}
  File "/usr/local/lib/airflow/airflow/www/templates/airflow/dag.html", line 21, in top-level template code
    {% import 'admin/lib.html' as lib with context %}
  File "/usr/local/lib/airflow/airflow/www/templates/airflow/master.html", line 20, in top-level template code
    {% extends "admin/master.html" %}
  File "/usr/local/lib/airflow/airflow/www/templates/admin/master.html", line 20, in top-level template code
    {% extends 'admin/base.html' %}
  File "/opt/python3.6/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/base.html", line 95, in top-level template code
    {% block tail %}
  File "/usr/local/lib/airflow/airflow/www/templates/airflow/tree.html", line 85, in block "tail"
    var data = {{ data|tojson }};
  File "/opt/python3.6/lib/python3.6/site-packages/flask/json/__init__.py", line 376, in tojson_filter
    return Markup(htmlsafe_dumps(obj, **kwargs))
  File "/opt/python3.6/lib/python3.6/site-packages/flask/json/__init__.py", line 290, in htmlsafe_dumps
    dumps(obj, **kwargs)
  File "/opt/python3.6/lib/python3.6/site-packages/flask/json/__init__.py", line 211, in dumps
    rv = _json.dumps(obj, **kwargs)
  File "/opt/python3.6/lib/python3.6/json/__init__.py", line 238, in dumps
    **kw).encode(obj)
  File "/opt/python3.6/lib/python3.6/json/encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/opt/python3.6/lib/python3.6/json/encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "/opt/python3.6/lib/python3.6/site-packages/flask/json/__init__.py", line 100, in default
    return _json.JSONEncoder.default(self, o)
  File "/opt/python3.6/lib/python3.6/json/encoder.py", line 180, in default
    o.__class__.__name__)
TypeError: Object of type 'V1Pod' is not JSON serializable

무슨 일이 일어나고 있는지 그리고 어떻게 문제를 해결할 수 있는지 알려 주실 수 있습니까? 감사

라이브

Airflow 2.0.0에서 수정 된 버그입니다 ( PR 참조 ).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

TypeError : 유형의 개체가 JSON 직렬화 가능하지 않습니다.

분류에서Dev

TypeError : Series 유형의 개체가 JSON 직렬화 가능하지 않습니다.

분류에서Dev

TypeError : int64 유형의 개체가 JSON 직렬화 가능하지 않습니다.

분류에서Dev

flask_restful-TypeError : 레코드 유형의 개체가 JSON 직렬화 가능하지 않습니다.

분류에서Dev

TypeError 해결 방법 : 'Category'유형의 개체는 JSON 직렬화가 가능하지 않습니다.

분류에서Dev

TypeError : 'Add'유형의 개체가 JSON 직렬화 가능하지 않습니다-Python Graph

분류에서Dev

Django : TypeError : ModelBase 유형의 개체가 JSON 직렬화 가능하지 않습니다.

분류에서Dev

'AttrList'유형의 개체는 JSON 직렬화 가능하지 않습니다.

분류에서Dev

TypeError 극복 방법 : datetime 유형의 객체가 JSON 직렬화 가능하지 않습니다.

분류에서Dev

모델 데이터를 직렬화하면 TypeError "ListSerializer 유형의 오브젝트가 JSON 직렬화 가능하지 않습니다."가 발생합니다.

분류에서Dev

TypeError 개체 ID는 JSON 직렬화 가능하지 않습니다.

분류에서Dev

TypeError : 요청을 사용하는 동안 유형 집합의 개체가 JSON 직렬화 가능하지 않습니다.

분류에서Dev

TypeError (f'Object of type {o .__ class __.__ name__} 'TypeError : 유형 바이트의 개체는 JSON 직렬화 가능하지 않습니다.

분류에서Dev

정의되지 않은 유형의 개체는 JSON 직렬화 가능하지 않습니다.

분류에서Dev

TypeError : '사용자'유형의 개체는 JSON 직렬화 가능하지 않습니다. 왜 이런 일이 발생합니까?

분류에서Dev

DRF Methodserializer : <XXX> 유형의 개체가 JSON 직렬화 가능하지 않습니다.

분류에서Dev

TypeError : Decimal 유형의 개체는 Django 데이터 마이그레이션 중에 JSON 직렬화 가능하지 않습니다.

분류에서Dev

오류 : TypeError : ColumnClause 유형의 개체가 JSON 직렬화 가능 Python3이 아닙니다.

분류에서Dev

QuerySet 유형의 개체가 JSON 직렬화 가능한 Django가 아닙니다.

분류에서Dev

TypeError : Cursor 유형의 객체는 request.form.get과 db 값을 비교할 때 JSON 직렬화가 가능하지 않습니다.

분류에서Dev

TypeError : flask_jwt_extended int RESTful API를 사용할 때 함수 유형의 객체가 JSON 직렬화 가능하지 않습니다.

분류에서Dev

TypeError : 'ObjectId'유형의 개체는 Flask 및 MongoDB를 사용하여 JSON 직렬화 할 수 없습니다.

분류에서Dev

Django 객체는 JSON 직렬화 가능하지 않습니다.

분류에서Dev

Django 객체는 JSON 직렬화 가능하지 않습니다.

분류에서Dev

Django에서 새 사용자를 만들면 "Users 유형의 개체가 JSON 직렬화 가능하지 않습니다."가 반환됩니다.

분류에서Dev

Decimal ( '12000')은 JSON 직렬화 가능하지 않습니다.

분류에서Dev

IntegrityError 유형의 TypeError 개체가 JSON 직렬화 가능하지 않기 때문에 DRF를 사용하여 모델에 데이터를 삽입 할 수 없습니다.

분류에서Dev

Selenium을 사용하는 Scrapy에서 유형 오류 URL이 JSON 직렬화 가능하지 않습니다.

분류에서Dev

MapFunction의 구현은 직렬화 가능하지 않습니다

Related 관련 기사

  1. 1

    TypeError : 유형의 개체가 JSON 직렬화 가능하지 않습니다.

  2. 2

    TypeError : Series 유형의 개체가 JSON 직렬화 가능하지 않습니다.

  3. 3

    TypeError : int64 유형의 개체가 JSON 직렬화 가능하지 않습니다.

  4. 4

    flask_restful-TypeError : 레코드 유형의 개체가 JSON 직렬화 가능하지 않습니다.

  5. 5

    TypeError 해결 방법 : 'Category'유형의 개체는 JSON 직렬화가 가능하지 않습니다.

  6. 6

    TypeError : 'Add'유형의 개체가 JSON 직렬화 가능하지 않습니다-Python Graph

  7. 7

    Django : TypeError : ModelBase 유형의 개체가 JSON 직렬화 가능하지 않습니다.

  8. 8

    'AttrList'유형의 개체는 JSON 직렬화 가능하지 않습니다.

  9. 9

    TypeError 극복 방법 : datetime 유형의 객체가 JSON 직렬화 가능하지 않습니다.

  10. 10

    모델 데이터를 직렬화하면 TypeError "ListSerializer 유형의 오브젝트가 JSON 직렬화 가능하지 않습니다."가 발생합니다.

  11. 11

    TypeError 개체 ID는 JSON 직렬화 가능하지 않습니다.

  12. 12

    TypeError : 요청을 사용하는 동안 유형 집합의 개체가 JSON 직렬화 가능하지 않습니다.

  13. 13

    TypeError (f'Object of type {o .__ class __.__ name__} 'TypeError : 유형 바이트의 개체는 JSON 직렬화 가능하지 않습니다.

  14. 14

    정의되지 않은 유형의 개체는 JSON 직렬화 가능하지 않습니다.

  15. 15

    TypeError : '사용자'유형의 개체는 JSON 직렬화 가능하지 않습니다. 왜 이런 일이 발생합니까?

  16. 16

    DRF Methodserializer : <XXX> 유형의 개체가 JSON 직렬화 가능하지 않습니다.

  17. 17

    TypeError : Decimal 유형의 개체는 Django 데이터 마이그레이션 중에 JSON 직렬화 가능하지 않습니다.

  18. 18

    오류 : TypeError : ColumnClause 유형의 개체가 JSON 직렬화 가능 Python3이 아닙니다.

  19. 19

    QuerySet 유형의 개체가 JSON 직렬화 가능한 Django가 아닙니다.

  20. 20

    TypeError : Cursor 유형의 객체는 request.form.get과 db 값을 비교할 때 JSON 직렬화가 가능하지 않습니다.

  21. 21

    TypeError : flask_jwt_extended int RESTful API를 사용할 때 함수 유형의 객체가 JSON 직렬화 가능하지 않습니다.

  22. 22

    TypeError : 'ObjectId'유형의 개체는 Flask 및 MongoDB를 사용하여 JSON 직렬화 할 수 없습니다.

  23. 23

    Django 객체는 JSON 직렬화 가능하지 않습니다.

  24. 24

    Django 객체는 JSON 직렬화 가능하지 않습니다.

  25. 25

    Django에서 새 사용자를 만들면 "Users 유형의 개체가 JSON 직렬화 가능하지 않습니다."가 반환됩니다.

  26. 26

    Decimal ( '12000')은 JSON 직렬화 가능하지 않습니다.

  27. 27

    IntegrityError 유형의 TypeError 개체가 JSON 직렬화 가능하지 않기 때문에 DRF를 사용하여 모델에 데이터를 삽입 할 수 없습니다.

  28. 28

    Selenium을 사용하는 Scrapy에서 유형 오류 URL이 JSON 직렬화 가능하지 않습니다.

  29. 29

    MapFunction의 구현은 직렬화 가능하지 않습니다

뜨겁다태그

보관