2017-08-24 43 views
10

Tôi đang sử dụng Luồng không khí v1.8.1 và chạy tất cả các thành phần (công nhân, web, hoa, lịch) trên kubernetes & Docker. tôi sử dụng cần tây Executor với Redis, nhiệm vụ của tôi là trông giống như:Tác vụ luồng không khí bị kẹt ở trạng thái "xếp hàng" và không bao giờ chạy

(start) -> (do_work_for_product1) 
    ├ -> (do_work_for_product2) 
    ├ -> (do_work_for_product3) 
    ├ … 

Vì vậy, nhiệm vụ start có nhiều ở hạ nguồn. Và tôi thiết lập đồng thời liên quan đến cấu hình như sau:

parallelism = 3 
dag_concurrency = 3 
max_active_runs = 1 

Sau đó, khi tôi chạy DAG này bằng tay (không chắc chắn nếu nó không bao giờ xảy ra trên một nhiệm vụ theo lịch trình), một số ở hạ nguồn được thực hiện, nhưng những người khác bị mắc kẹt tại "xếp hàng" tình trạng .

Nếu tôi xóa tác vụ khỏi Giao diện người dùng quản trị, nó sẽ được thực thi. Không có nhật ký công nhân (sau khi xử lý một số hạ lưu đầu tiên, nó chỉ không xuất ra bất kỳ nhật ký nào). log

Web server của (không chắc chắn worker exiting có liên quan)

/usr/local/lib/python2.7/dist-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.cache is deprecated, use flask_cache instead. 
    .format(x=modname), ExtDeprecationWarning 
[2017-08-24 04:20:56,496] [51] {models.py:168} INFO - Filling up the DagBag from /usr/local/airflow_dags 
[2017-08-24 04:20:57 +0000] [27] [INFO] Handling signal: ttou 
[2017-08-24 04:20:57 +0000] [37] [INFO] Worker exiting (pid: 37) 

Không có bản ghi lỗi trên lịch trình, quá. Và một số nhiệm vụ gặp khó khăn đang thay đổi bất cứ khi nào tôi thử điều này.

Vì tôi cũng sử dụng Docker Tôi tự hỏi nếu điều này có liên quan: https://github.com/puckel/docker-airflow/issues/94 Nhưng cho đến nay, không có đầu mối.

Có ai gặp phải sự cố tương tự hoặc có ý tưởng nào đó mà tôi có thể điều tra về vấn đề này không ...?

+0

Xin chào @Norio, chúng tôi đang gặp vấn đề tương tự với nhiệm vụ trong 'hàng đợi' nhưng lịch biểu dường như đã quên một số trong số đó. Khi tôi sử dụng 'bộ lập lịch luồng khí 'lần nữa, chúng đã được chọn. Tôi cũng đang sử dụng 1.8.1, kubernetes và Docker, nhưng với LocalExecutor, cùng một vấn đề ở đây. – Chengzhi

+0

@Chengzhi Cảm ơn bạn đã thông tin. Tôi sử dụng trình bao này https://github.com/apache/incubator-airflow/blob/ff45d8f2218a8da9328161aa66d004c3db3b367e/airflow/bin/airflow_scheduler_autorestart.sh để tự động khởi động lại lịch trình mà không dựa vào k8s của trở lại, vì vậy trong trường hợp của tôi lên lịch nên được định kỳ tái sinh nhưng không chọn một số nhiệm vụ mãi mãi ... rất lạ. –

+0

siêu, nhờ chia sẻ, rất có dây, tôi sẽ giữ cho bạn trong vòng lặp nếu tôi tìm thấy một cái gì đó, nhưng có vẻ như đây là giải pháp cho bây giờ. – Chengzhi

Trả lời

3

Công việc bị kẹt là, rất có thể là một lỗi. Tại thời điểm này (< = 1.9.0alpha1) nó có thể xảy ra khi một nhiệm vụ thậm chí không thể khởi động trên công nhân (từ xa). Điều này xảy ra ví dụ trong trường hợp của một nhân viên quá tải hoặc thiếu phụ thuộc.

Điều này patch nên giải quyết vấn đề đó.

Điều đáng xem là lý do tại sao công việc của bạn không nhận được trạng thái RUNNING. Thiết lập chính nó cho trạng thái này là điều đầu tiên một nhiệm vụ. Thông thường, nhân viên đăng nhập trước khi nó bắt đầu thực hiện và nó cũng báo cáo và lỗi. Bạn sẽ có thể tìm thấy mục nhập này trong nhật ký nhiệm vụ.

chỉnh sửa: Như đã đề cập trong nhận xét về câu hỏi ban đầu trong trường hợp một ví dụ về luồng không thể chạy tác vụ là khi không thể ghi vào vị trí được yêu cầu. Điều này làm cho nó không thể tiến hành và nhiệm vụ sẽ gặp khó khăn. Bản vá sửa lỗi này bằng cách không thực hiện tác vụ từ trình lên lịch.

+0

Chúng tôi thấy vấn đề này với 1.9.0 tác vụ được xếp hàng đợi nhưng không bao giờ chạy trạng thái trừ khi được thực hiện thủ công từ giao diện người dùng – l0n3r4ng3r

2

Chúng tôi có giải pháp và muốn chia sẻ tại đây trước khi 1.9 trở thành chính thức. Cảm ơn bạn đã cập nhật Bolke de Bruin ngày 1.9. trong tình hình của tôi trước 1.9, hiện tại chúng tôi đang sử dụng 1.8.1 là có một DAG khác chạy để xóa nhiệm vụ trong queue state nếu nó ở đó trong hơn 30 phút.

Các vấn đề liên quan