본문 바로가기

dag5

[airflow] Xcom을 이용하여 DAG 간 데이터 전달 에어플로우에서 DAG 간 데이터를 전달하는 방법으로 xcom을 이용할 수 있습니다. context의 task_instance 객체를 이용해서 키-밸류 형태로 데이터를 전달할 수 있습니다. 다음은 데이터를 전달하여 branch를 처리하는 방법 예제입니다. 2022. 4. 3.
[airflow] DAG에서 사용하는 멀티 프로세스에서 발생하는 AssertionError: daemonic processes are not allowed to have children 에어플로우 DAG에서 멀티 프로세스를 이용하는 경우 파이썬 프로세스에서 또 프로세스를 생성할 수 없다는 오류가 발생합니다. File "/usr/local/lib/python3.8/multiprocessing/process.py", line 118, in start assert not _current_process._config.get('daemon'), \ AssertionError: daemonic processes are not allowed to have children 해결방법 이 경우 멀티프로세스를 스레드 풀로 변경하면 됩니다. 다음과 같이 사용할 수 있습니다. 2022. 2. 24.
[백준][그래프][DAG] 1766 문제집 이 문제는 DAG 문제의 응용이다. 들어오는 간선의 개수가 0일 때 큐에 추가하여 다음 문제를 해결해 가면 된다. 쉬운 문제를 먼저 풀어야 하기 때문에 우선순위 큐(PriorityQueue)를 이용하여 처리하는 것이 더 좋다. https://www.acmicpc.net/problem/1766/ 2018. 1. 25.
[Hive][Tez] TEZ에서 파일머지를 처리하는 중 App master already running a DAG 오류 처리 방법 TEZ를 이용하면서 파일 머지를 사용하면 다음과 같은 오류가 발생할 경우가 있다. 2017-11-10 05:21:48,998 INFO [Thread-140] org.apache.hadoop.hive.ql.exec.Task: Dag submit failed due to App master already running a DAGat org.apache.tez.dag.app.DAGAppMaster.submitDAGToAppMaster(DAGAppMaster.java:1368)at org.apache.tez.dag.api.client.DAGClientHandler.submitDAG(DAGClientHandler.java:140)at org.apache.tez.dag.api.client.rpc.DAGClientA.. 2017. 11. 10.
[백준][위상정렬] 2056 작업 DAG 이 문제도 DAG 형태로 풀 수 있다. 1. 선행관계 처리를 위해 노드별로 인입되는 간선의 개수를 기록한다. 2. 인입 간선이 0인 노드를 큐에 넣어서, 선행 처리가 끝난 노드에서 방문가능 한 노드 들을 차례로 방문하면서 시간을 더해준다. 3. 최종적으로 시간이 가장 많이 걸리는 작업을 출력한다. https://www.acmicpc.net/problem/2056 2017. 6. 27.