Apache NiFi - Hướng dẫn nhanh
Apache NiFi là một hệ thống mạnh mẽ, dễ sử dụng và đáng tin cậy để xử lý và phân phối dữ liệu giữa các hệ thống khác nhau. Nó dựa trên công nghệ Niagara Files do NSA phát triển và sau 8 năm được tặng cho nền tảng Phần mềm Apache. Nó được phân phối theo Giấy phép Apache Phiên bản 2.0, tháng 1 năm 2004. Phiên bản mới nhất cho Apache NiFi là 1.7.1.
Apache NiFi là một nền tảng nhập dữ liệu thời gian thực, có thể chuyển và quản lý việc truyền dữ liệu giữa các nguồn và hệ thống đích khác nhau. Nó hỗ trợ nhiều định dạng dữ liệu như nhật ký, dữ liệu vị trí địa lý, nguồn cấp dữ liệu xã hội, v.v. Nó cũng hỗ trợ nhiều giao thức như SFTP, HDFS và KAFKA, v.v. Điều này hỗ trợ nhiều nguồn dữ liệu và giao thức làm cho nền tảng này trở nên phổ biến trong nhiều tổ chức CNTT.
Apache NiFi- Tính năng chung
Các tính năng chung của Apache NiFi như sau:
Apache NiFi cung cấp giao diện người dùng dựa trên web, cung cấp trải nghiệm liền mạch giữa thiết kế, kiểm soát, phản hồi và giám sát.
Nó có thể cấu hình cao. Điều này giúp người dùng có phân phối đảm bảo, độ trễ thấp, thông lượng cao, ưu tiên động, áp lực ngược và sửa đổi các luồng trong thời gian chạy.
Nó cũng cung cấp mô-đun xuất xứ dữ liệu để theo dõi và giám sát dữ liệu từ khi bắt đầu đến khi kết thúc quy trình.
Các nhà phát triển có thể tạo các bộ xử lý tùy chỉnh của riêng họ và các tác vụ báo cáo theo nhu cầu của họ.
NiFi cũng cung cấp hỗ trợ cho các giao thức bảo mật như SSL, HTTPS, SSH và các mã hóa khác.
Nó cũng hỗ trợ quản lý người dùng và vai trò và cũng có thể được định cấu hình với LDAP để ủy quyền.
Apache NiFi -Key khái niệm
Các khái niệm chính của Apache NiFi như sau:
Process Group - Đây là một nhóm các luồng NiFi, giúp người dùng quản lý và giữ các luồng theo cách phân cấp.
Flow - Nó được tạo ra để kết nối các bộ xử lý khác nhau để truyền và sửa đổi dữ liệu nếu được yêu cầu từ nguồn dữ liệu này hoặc các nguồn sang nguồn dữ liệu đích khác.
Processor- Bộ xử lý là một mô-đun java chịu trách nhiệm tìm nạp dữ liệu từ hệ thống tìm nguồn cung ứng hoặc lưu trữ nó trong hệ thống đích. Các bộ xử lý khác cũng được sử dụng để thêm thuộc tính hoặc thay đổi nội dung trong flowfile.
Flowfile- Đây là cách sử dụng cơ bản của NiFi, đại diện cho đối tượng duy nhất của dữ liệu được chọn từ hệ thống nguồn trong NiFi. NiFiprocessormorm thực hiện các thay đổi đối với flowfile trong khi nó di chuyển từ bộ xử lý nguồn đến đích. Các sự kiện khác nhau như CREATE, CLONE, RECEIVE, v.v. được thực hiện trên flowfile bởi các bộ xử lý khác nhau trong một luồng.
Event- Các sự kiện đại diện cho sự thay đổi trong tệp lưu lượng trong khi truyền qua Luồng NiFi. Các sự kiện này được theo dõi trong nguồn gốc dữ liệu.
Data provenance - Đây là một kho lưu trữ, nó cũng có một giao diện người dùng, cho phép người dùng kiểm tra thông tin về một luồng và giúp khắc phục sự cố nếu có bất kỳ vấn đề nào phát sinh trong quá trình xử lý một luồng.
Ưu điểm của Apache NiFi
Apache NiFi cho phép tìm nạp dữ liệu từ các máy từ xa bằng cách sử dụng SFTP và đảm bảo truyền dữ liệu.
Apache NiFi hỗ trợ phân cụm, vì vậy nó có thể hoạt động trên nhiều nút với cùng một luồng xử lý dữ liệu khác nhau, giúp tăng hiệu suất xử lý dữ liệu.
Nó cũng cung cấp các chính sách bảo mật ở cấp độ người dùng, cấp độ nhóm quy trình và các mô-đun khác.
Giao diện người dùng của nó cũng có thể chạy trên HTTPS, giúp tương tác của người dùng với NiFi được an toàn.
NiFi hỗ trợ khoảng 188 bộ xử lý và người dùng cũng có thể tạo các plugin tùy chỉnh để hỗ trợ nhiều loại hệ thống dữ liệu.
Nhược điểm của Apache NiFi
Khi nút bị ngắt kết nối khỏi cụm NiFi trong khi người dùng thực hiện bất kỳ thay đổi nào trong đó, thì flow.xml sẽ trở nên không hợp lệ. Nnode không thể kết nối trở lại với cụm trừ khi quản trị viên sao chép thủ công flow.xml từ nút được kết nối.
Apache NiFi có vấn đề liên tục trạng thái trong trường hợp chuyển đổi nút chính, điều này đôi khi khiến bộ xử lý không thể tìm nạp dữ liệu từ hệ thống tìm nguồn.
Apache NiFi bao gồm một máy chủ web, bộ điều khiển luồng và một bộ xử lý, chạy trên Máy ảo Java. Nó cũng có 3 kho lưu trữ Flowfile Repository, Content Repository và Provenance Repository như trong hình bên dưới.
Kho lưu trữ Flowfile
Kho lưu trữ này lưu trữ trạng thái hiện tại và các thuộc tính của mọi luồng dữ liệu đi qua các luồng dữ liệu của apache NiFi. Vị trí mặc định của kho này nằm trong thư mục gốc của apache NiFi. Vị trí của kho lưu trữ này có thể được thay đổi bằng cách thay đổi thuộc tính có tên "nifi.flowfile.repository.directory".
Kho nội dung
Kho này chứa tất cả nội dung có trong tất cả các luồng của NiFi. Thư mục mặc định của nó cũng nằm trong thư mục gốc của NiFi và có thể thay đổi nó bằng thuộc tính "org.apache.nifi.controller.repository.FileSystemRepository". Thư mục này sử dụng dung lượng lớn trong ổ đĩa vì vậy bạn nên có đủ dung lượng trong đĩa cài đặt.
Kho lưu trữ Provenance
Kho lưu trữ theo dõi và lưu trữ tất cả các sự kiện của tất cả các luồng lưu trong NiFi. Có hai kho lưu trữ xuất xứ -volatile provenance repository (trong kho lưu trữ này, tất cả dữ liệu xuất xứ sẽ bị mất sau khi khởi động lại) và persistent provenance repository. Thư mục mặc định của nó cũng nằm trong thư mục gốc của NiFi và nó có thể được thay đổi bằng cách sử dụng thuộc tính "org.apache.nifi.provenance.PersistingProvenanceRepository" và "org.apache.nifi.provenance.VolatileProvenanceRepositor" cho các kho tương ứng.
Trong chương này, chúng ta sẽ tìm hiểu về thiết lập môi trường củaApache NiFi. Các bước cài đặt Apache NiFi như sau:
Step 1- Cài đặt phiên bản Java hiện tại trong máy tính của bạn. Vui lòng đặt JAVA_HOME trong máy của bạn. Bạn có thể kiểm tra phiên bản như hình dưới đây:
Trong Hệ điều hành Windows (OS) (sử dụng dấu nhắc lệnh) -
> java -version
Trong hệ điều hành UNIX (Sử dụng thiết bị đầu cuối):
$ echo $JAVA_HOME
Step 2 - DownloadApache NiFi từ https://nifi.apache.org/download.html
Đối với Windows OSdownload tệp ZIP.
Đối với hệ điều hành UNIX Tải xuống tệp TAR.
Đối với hình ảnh docker, hãy truy cập liên kết sau https://hub.docker.com/r/apache/nifi/.
Step 3- Quá trình cài đặt Apache NiFi rất dễ dàng. Quá trình này khác với hệ điều hành -
Windows OS - Giải nén gói zip và Apache NiFi được cài đặt.
UNIX OS - Giải nén tệp tar ở bất kỳ vị trí nào và Logstash đã được cài đặt.
$tar -xvf nifi-1.6.0-bin.tar.gz
Step 4- Mở dấu nhắc lệnh, vào thư mục bin của NiFi. Ví dụ: C: \ nifi-1.7.1 \ bin và thực thi tệp run-nifi.bat.
C:\nifi-1.7.1\bin>run-nifi.bat
Step 5- Sẽ mất vài phút để khởi động giao diện người dùng NiFi. Người dùng có thể kiểm tra nifi-app.log, khi giao diện người dùng NiFi hoạt động, người dùng có thể nhậphttp://localhost:8080/nifi/ để truy cập giao diện người dùng.
Apache là một nền tảng dựa trên web mà người dùng có thể truy cập bằng giao diện người dùng web. Giao diện người dùng NiFi rất tương tác và cung cấp nhiều thông tin về NiFi. Như thể hiện trong hình ảnh bên dưới, người dùng có thể truy cập thông tin về các thuộc tính sau:
- Chủ đề hoạt động
- Tổng số dữ liệu được xếp hàng đợi
- Truyền các nhóm quy trình từ xa
- Không truyền các nhóm quy trình từ xa
- Các thành phần đang chạy
- Các thành phần bị dừng
- Các thành phần không hợp lệ
- Các thành phần bị vô hiệu hóa
- Cập nhật Nhóm quy trình được tạo phiên bản
- Các nhóm quy trình phiên bản được sửa đổi cục bộ
- Nhóm quy trình được tạo phiên bản cũ
- Các nhóm quy trình được tạo phiên bản cũ và được sửa đổi cục bộ
- Lỗi đồng bộ hóa Nhóm quy trình được tạo phiên bản
Các thành phần của Apache NiFi
Apache NiFi UI có các thành phần sau:
Bộ xử lý
Người dùng có thể kéo biểu tượng quy trình trên canvas và chọn bộ xử lý mong muốn cho luồng dữ liệu trong NiFi.
Cổng đầu vào
Biểu tượng bên dưới được kéo vào canvas để thêm cổng đầu vào vào bất kỳ luồng dữ liệu nào.
Cổng đầu vào được sử dụng để lấy dữ liệu từ bộ xử lý, cổng này không có trong nhóm quy trình đó.
Sau khi kéo biểu tượng này, NiFi yêu cầu nhập tên của cổng Đầu vào và sau đó nó được thêm vào khung NiFi.
Cổng đầu ra
Biểu tượng bên dưới được kéo vào canvas để thêm cổng đầu ra vào bất kỳ luồng dữ liệu nào.
Cổng đầu ra được sử dụng để truyền dữ liệu đến bộ xử lý, cổng này không có trong nhóm quy trình đó.
Sau khi kéo biểu tượng này, NiFi yêu cầu nhập tên của cổng Đầu ra và sau đó nó được thêm vào khung NiFi.
Nhóm quy trình
Người dùng sử dụng biểu tượng bên dưới để thêm nhóm quy trình trong khung NiFi.
Sau khi kéo biểu tượng này, NiFi yêu cầu nhập tên của Nhóm quy trình và sau đó nó được thêm vào khung NiFi.
Nhóm quy trình từ xa
Điều này được sử dụng để thêm nhóm quy trình từ xa trong NiFi canvas.
Ống khói
Funnel được sử dụng để chuyển đầu ra của một bộ xử lý đến nhiều bộ xử lý. Người dùng có thể sử dụng biểu tượng bên dưới để thêm kênh vào luồng dữ liệu NiFi.
Bản mẫu
Biểu tượng này được sử dụng để thêm mẫu luồng dữ liệu vào canvas NiFi. Điều này giúp sử dụng lại luồng dữ liệu trong các trường hợp NiFi giống nhau hoặc khác nhau.
Sau khi kéo, người dùng có thể chọn các mẫu đã được thêm vào NiFi.
Nhãn
Chúng được sử dụng để thêm văn bản trên NiFi canvas về bất kỳ thành phần nào có trong NiFi. Nó cung cấp một loạt các màu sắc được người dùng sử dụng để tăng thêm tính thẩm mỹ.
Bộ xử lý Apache NiFi là khối cơ bản để tạo luồng dữ liệu. Mỗi bộ xử lý có chức năng khác nhau, góp phần tạo ra luồng đầu ra. Dataflow được hiển thị trong hình ảnh bên dưới đang tìm nạp tệp từ một thư mục bằng bộ xử lý GetFile và lưu trữ nó trong một thư mục khác bằng bộ xử lý PutFile.
Có được file
Quá trình GetFile được sử dụng để tìm nạp các tệp có định dạng cụ thể từ một thư mục cụ thể. Nó cũng cung cấp các tùy chọn khác cho người dùng để kiểm soát nhiều hơn trong việc tìm nạp. Chúng tôi sẽ thảo luận về nó trong phần thuộc tính bên dưới.
Cài đặt GetFile
Sau đây là các cài đặt khác nhau của bộ xử lý GetFile:
Tên
Trong cài đặt Tên, người dùng có thể xác định bất kỳ tên nào cho các bộ xử lý theo dự án hoặc theo dự án, điều này làm cho tên có ý nghĩa hơn.
Kích hoạt
Người dùng có thể bật hoặc tắt bộ xử lý bằng cách sử dụng cài đặt này.
Thời hạn phạt
Cài đặt này cho phép người dùng thêm khoảng thời gian phạt, trong trường hợp có lỗi lưu lượng.
Thời lượng lợi nhuận
Cài đặt này được sử dụng để chỉ định thời gian năng suất cho bộ xử lý. Trong khoảng thời gian này, quá trình sẽ không được lên lịch nữa.
Cấp bản tin
Cài đặt này được sử dụng để chỉ định mức nhật ký của bộ xử lý đó.
Tự động chấm dứt các mối quan hệ
Điều này có một danh sách kiểm tra tất cả các mối quan hệ có sẵn của quá trình cụ thể đó. Bằng cách chọn các hộp, người dùng có thể lập trình bộ xử lý để chấm dứt luồng dữ liệu về sự kiện đó và không gửi thêm nó trong luồng.
Lập lịch GetFile
Đây là các tùy chọn lập lịch sau do bộ xử lý GetFile cung cấp -
Lên lịch chiến lược
Bạn có thể lên lịch quá trình trên cơ sở thời gian bằng cách chọn theo thời gian hoặc chuỗi CRON được chỉ định bằng cách chọn tùy chọn trình điều khiển CRON.
Nhiệm vụ đồng thời
Tùy chọn này được sử dụng để xác định lịch tác vụ đồng thời cho bộ xử lý này.
Chấp hành
Người dùng có thể xác định chạy bộ xử lý trong tất cả các nút hay chỉ trong nút Chính bằng cách sử dụng tùy chọn này.
Lịch chạy
Nó được sử dụng để xác định thời gian cho chiến lược định hướng thời gian hoặc biểu thức CRON cho chiến lược định hướng CRON.
Thuộc tính GetFile
GetFile cung cấp nhiều thuộc tính như thể hiện trong hình bên dưới, sử dụng các thuộc tính bắt buộc như Thư mục đầu vào và bộ lọc tệp cho các thuộc tính tùy chọn như Bộ lọc đường dẫn và Kích thước tệp tối đa. Người dùng có thể quản lý quá trình tìm nạp tệp bằng các thuộc tính này.
Nhận xét GetFile
Phần này được sử dụng để chỉ định bất kỳ thông tin nào về bộ xử lý.
PutFile
Bộ xử lý PutFile được sử dụng để lưu trữ tệp từ luồng dữ liệu đến một vị trí cụ thể.
Cài đặt PutFile
Bộ xử lý PutFile có các cài đặt sau:
Tên
Trong cài đặt Tên, người dùng có thể xác định bất kỳ tên nào cho các bộ xử lý theo dự án hoặc theo tên đó làm cho tên có ý nghĩa hơn.
Kích hoạt
Người dùng có thể bật hoặc tắt bộ xử lý bằng cách sử dụng cài đặt này.
Thời hạn phạt
Cài đặt này cho phép người dùng thêm khoảng thời gian phạt, trong trường hợp có lỗi lưu lượng.
Thời lượng lợi nhuận
Cài đặt này được sử dụng để chỉ định thời gian năng suất cho bộ xử lý. Trong khoảng thời gian này, quá trình sẽ không được lên lịch nữa.
Cấp bản tin
Cài đặt này được sử dụng để chỉ định mức nhật ký của bộ xử lý đó.
Tự động chấm dứt các mối quan hệ
Cài đặt này có một danh sách kiểm tra tất cả các mối quan hệ có sẵn của quy trình cụ thể đó. Bằng cách chọn các hộp, người dùng có thể lập trình bộ xử lý để kết thúc luồng trên sự kiện đó và không gửi thêm nó trong luồng.
Lập lịch PutFile
Đây là các tùy chọn lập lịch sau do bộ xử lý PutFile cung cấp -
Lên lịch chiến lược
Bạn có thể lên lịch quá trình trên cơ sở thời gian bằng cách chọn bộ điều khiển hẹn giờ hoặc một chuỗi CRON được chỉ định bằng cách chọn tùy chọn trình điều khiển CRON. Ngoài ra còn có chiến lược thử nghiệm Theo hướng sự kiện, sẽ kích hoạt bộ xử lý trên một sự kiện cụ thể.
Nhiệm vụ đồng thời
Tùy chọn này được sử dụng để xác định lịch tác vụ đồng thời cho bộ xử lý này.
Chấp hành
Người dùng có thể xác định chạy bộ xử lý trong tất cả các nút hay chỉ trong nút chính bằng cách sử dụng tùy chọn này.
Lịch chạy
Nó được sử dụng để xác định thời gian cho chiến lược điều khiển bộ đếm thời gian hoặc biểu thức CRON cho chiến lược điều khiển CRON.
Thuộc tính PutFile
Bộ xử lý PutFile cung cấp các thuộc tính như Thư mục để chỉ định thư mục đầu ra cho mục đích truyền tệp và các thuộc tính khác để quản lý việc truyền như thể hiện trong hình bên dưới.
Nhận xét về PutFile
Phần này được sử dụng để chỉ định bất kỳ thông tin nào về bộ xử lý.
Trong chương này, chúng ta sẽ thảo luận về phân loại quy trình trong Apache NiFi.
Bộ xử lý nhập dữ liệu
Các bộ xử lý trong danh mục Nhập dữ liệu được sử dụng để nhập dữ liệu vào luồng dữ liệu NiFi. Đây chủ yếu là điểm bắt đầu của bất kỳ luồng dữ liệu nào trong apache NiFi. Một số bộ xử lý thuộc các danh mục này là GetFile, GetHTTP, GetFTP, GetKAFKA, v.v.
Bộ xử lý định tuyến và dàn xếp
Các bộ xử lý Định tuyến và Dàn xếp được sử dụng để định tuyến các luồng đến các bộ xử lý hoặc luồng dữ liệu khác nhau theo thông tin trong thuộc tính hoặc nội dung của các luồng đó. Các bộ xử lý này cũng chịu trách nhiệm kiểm soát các luồng dữ liệu NiFi. Một số bộ xử lý thuộc loại này là RouteOnAttribute, RouteOnContent, ControlRate, RouteText, v.v.
Bộ xử lý truy cập cơ sở dữ liệu
Các bộ xử lý của danh mục Truy cập Cơ sở dữ liệu này có khả năng chọn hoặc chèn dữ liệu hoặc thực thi và chuẩn bị các câu lệnh SQL khác từ cơ sở dữ liệu. Các bộ xử lý này chủ yếu sử dụng cài đặt bộ điều khiển nhóm kết nối dữ liệu của Apache NiFi. Một số bộ xử lý thuộc thể loại này là ExecuteSQL, PutSQL, PutDatabaseRecord, ListDatabaseTables, v.v.
Bộ xử lý trích xuất thuộc tính
Bộ xử lý trích xuất thuộc tính chịu trách nhiệm trích xuất, phân tích, thay đổi xử lý thuộc tính lưu lượng trong luồng dữ liệu NiFi. Một số bộ xử lý thuộc thể loại này là UpdateAttribute, AssessJSONPath, ExtractText, AttributesToJSON, v.v.
Bộ xử lý tương tác hệ thống
Bộ xử lý Tương tác Hệ thống được sử dụng để chạy các quy trình hoặc lệnh trong bất kỳ hệ điều hành nào. Các bộ xử lý này cũng chạy các tập lệnh bằng nhiều ngôn ngữ để tương tác với nhiều hệ thống khác nhau. Một số bộ xử lý thuộc loại này là ExecuteScript, ExecuteProcess, ExecuteGroovyScript, ExecuteStreamCommand, v.v.
Bộ xử lý chuyển đổi dữ liệu
Các bộ xử lý thuộc Chuyển đổi dữ liệu có khả năng thay đổi nội dung của các luồng. Chúng có thể được sử dụng để thay thế hoàn toàn dữ liệu của một luồng dữ liệu thường được sử dụng khi người dùng phải gửi luồng dữ liệu dưới dạng phần thân HTTP để gọi bộ xử lý HTTP. Một số bộ xử lý thuộc thể loại này là ReplaceText, JoltTransformJSON, v.v.
Gửi bộ xử lý dữ liệu
Gửi dữ liệu Bộ xử lý nói chung là bộ xử lý cuối cùng trong một luồng dữ liệu. Các bộ xử lý này có nhiệm vụ lưu trữ hoặc gửi dữ liệu đến máy chủ đích. Sau khi lưu trữ hoặc gửi dữ liệu thành công, các bộ xử lý này DROP lưu lượng với mối quan hệ thành công. Một số bộ xử lý thuộc danh mục này là PutEmail, PutKafka, PutSFTP, PutFile, PutFTP, v.v.
Bộ xử lý tách và tổng hợp
Các bộ xử lý này được sử dụng để tách và hợp nhất nội dung có trong một luồng. Một số bộ xử lý thuộc loại này là SplitText, SplitJson, SplitXml, MergeContent, SplitContent, v.v.
Bộ xử lý HTTP
Các bộ xử lý này xử lý các cuộc gọi HTTP và HTTPS. Một số bộ xử lý thuộc thể loại này là InvokeHTTP, PostHTTP, ListenHTTP, v.v.
Bộ xử lý AWS
Bộ xử lý AWS chịu trách nhiệm tương tác với hệ thống dịch vụ web của Amazon. Một số bộ xử lý thuộc thể loại này là GetSQS, PutSNS, PutS3Object, FetchS3Object, v.v.
Trong luồng dữ liệu Apache NiFi, các luồng di chuyển từ bộ xử lý này sang bộ xử lý khác thông qua kết nối được xác thực bằng cách sử dụng mối quan hệ giữa các bộ xử lý. Bất cứ khi nào kết nối được tạo, nhà phát triển sẽ chọn một hoặc nhiều mối quan hệ giữa các bộ xử lý đó.
Như bạn có thể thấy trong hình trên, các hộp kiểm trong hình chữ nhật màu đen là các mối quan hệ. Nếu nhà phát triển chọn các hộp kiểm này thì lưu lượng sẽ kết thúc trong bộ xử lý cụ thể đó, khi mối quan hệ thành công hay thất bại hoặc cả hai.
Sự thành công
Khi một bộ xử lý xử lý thành công một luồng như lưu trữ hoặc tìm nạp dữ liệu từ bất kỳ nguồn dữ liệu nào mà không nhận được bất kỳ kết nối, xác thực hoặc bất kỳ lỗi nào khác, thì luồng chuyển sang quan hệ thành công.
Sự thất bại
Khi một bộ xử lý không thể xử lý một luồng mà không có lỗi như lỗi xác thực hoặc sự cố kết nối, v.v. thì luồng chuyển sang mối quan hệ lỗi.
Một nhà phát triển cũng có thể chuyển các tập tin sang các bộ xử lý khác bằng cách sử dụng kết nối. Nhà phát triển có thể chọn và cũng có thể cân bằng tải, nhưng cân bằng tải mới được phát hành trong phiên bản 1.8, sẽ không được đề cập trong hướng dẫn này.
Như bạn có thể thấy trong hình trên, kết nối được đánh dấu màu đỏ có mối quan hệ thất bại, có nghĩa là tất cả các luồng có lỗi sẽ chuyển đến bộ xử lý ở bên trái và tương ứng tất cả các luồng không có lỗi sẽ được chuyển sang kết nối được đánh dấu bằng màu xanh lá cây.
Bây giờ chúng ta hãy tiếp tục với các mối quan hệ khác.
comms.failure
Mối quan hệ này được đáp ứng, khi một Flowfile không thể được tìm nạp từ máy chủ từ xa do lỗi truyền thông.
không tìm thấy
Bất kỳ Flowfile nào mà chúng tôi nhận được thông báo 'Không tìm thấy' từ máy chủ từ xa sẽ chuyển đến not.found mối quan hệ.
allow.denied
Khi NiFi không thể tìm nạp một luồng từ máy chủ từ xa do không đủ quyền, nó sẽ di chuyển qua mối quan hệ này.
Lưu lượng là một thực thể xử lý cơ bản trong Apache NiFi. Nó chứa nội dung và thuộc tính dữ liệu, được sử dụng bởi bộ xử lý NiFi để xử lý dữ liệu. Nội dung tệp thường chứa dữ liệu được tìm nạp từ hệ thống nguồn. Các thuộc tính phổ biến nhất của Apache NiFi FlowFile là:
UUID
Điều này là viết tắt của từ định danh duy nhất phổ biến, là một danh tính duy nhất của một luồng được tạo bởi NiFi.
Tên tệp
Thuộc tính này chứa tên tệp của lưu lượng đó và nó không được chứa bất kỳ cấu trúc thư mục nào.
Kích thước tập tin
Nó chứa kích thước của Apache NiFi FlowFile.
mime.type
Nó chỉ định Kiểu MIME của FlowFile này.
con đường
Thuộc tính này chứa đường dẫn tương đối của tệp chứa lưu lượng và không chứa tên tệp.
Kết nối luồng dữ liệu Apache NiFi có một hệ thống xếp hàng để xử lý lượng dữ liệu lớn. Các hàng đợi này có thể xử lý một lượng rất lớn các FlowFiles để cho phép bộ xử lý xử lý chúng theo thứ tự.
Hàng đợi trong hình trên có 1 lưu lượng được chuyển qua quan hệ thành công. Người dùng có thể kiểm tra lưu lượng bằng cách chọnList queuetrong danh sách thả xuống. Trong trường hợp quá tải hoặc lỗi, người dùng cũng có thể xóa hàng đợi bằng cách chọnempty queue và sau đó người dùng có thể khởi động lại luồng để lấy lại các tệp đó trong luồng dữ liệu.
Danh sách các luồng trong hàng đợi, bao gồm vị trí, UUID, Tên tệp, Kích thước tệp, Thời lượng hàng đợi và Thời lượng dòng. Người dùng có thể xem tất cả các thuộc tính và nội dung của một lưu lượng bằng cách nhấp vào biểu tượng thông tin hiện diện ở cột đầu tiên của danh sách tập tin.
Trong Apache NiFi, người dùng có thể duy trì các luồng dữ liệu khác nhau trong các nhóm quy trình khác nhau. Các nhóm này có thể dựa trên các dự án khác nhau hoặc các tổ chức mà phiên bản Apache NiFi hỗ trợ.
Biểu tượng thứ tư trong menu ở đầu giao diện người dùng NiFi như thể hiện trong hình trên được sử dụng để thêm nhóm quy trình trong khung NiFi. Nhóm quy trình có tên “Tutorialspoint.com_ProcessGroup” chứa một luồng dữ liệu với bốn bộ xử lý hiện đang ở giai đoạn dừng như bạn có thể thấy trong hình trên. Các nhóm quy trình có thể được tạo theo cách phân cấp để quản lý luồng dữ liệu theo cấu trúc tốt hơn, dễ hiểu.
Trong phần chân trang của NiFi UI, bạn có thể thấy các nhóm quy trình và có thể quay lại đầu nhóm quy trình mà người dùng hiện đang có mặt.
Để xem danh sách đầy đủ các nhóm quy trình có trong NiFi, người dùng có thể đi tới phần tóm tắt bằng cách sử dụng menu hiện diện ở phía trên bên trái của giao diện người dùng NiFi. Tóm lại, có tab nhóm quy trình nơi tất cả các nhóm quy trình được liệt kê với các thông số như Trạng thái phiên bản, Đã chuyển / Kích thước, In / Kích thước, Đọc / Ghi, Ra / Kích thước, v.v. như trong hình dưới đây.
Apache NiFi cung cấp các nhãn để cho phép nhà phát triển viết thông tin về các thành phần có trong NiFI canvas. Biểu tượng ngoài cùng bên trái trong menu trên cùng của NiFi UI được sử dụng để thêm nhãn trong NiFi canvas.
Nhà phát triển có thể thay đổi màu của nhãn và kích thước của văn bản bằng cách nhấp chuột phải vào nhãn và chọn tùy chọn thích hợp từ menu.
Apache NiFi là nền tảng có cấu hình cao. Tệp nifi.properties trong thư mục conf
chứa hầu hết các cấu hình.
Các thuộc tính thường được sử dụng của Apache NiFi như sau:
Thuộc tính cốt lõi
Phần này chứa các thuộc tính bắt buộc để chạy một phiên bản NiFi.
Không. | Tên tài sản | Giá trị mặc định | sự miêu tả |
---|---|---|---|
1 | nifi.flow.configuration.file | ./conf/flow.xml.gz | Thuộc tính này chứa đường dẫn đến tệp flow.xml. Tệp này chứa tất cả các luồng dữ liệu được tạo trong NiFi. |
2 | nifi.flow.configuration.archive.enabled | thật | Thuộc tính này được sử dụng để bật hoặc tắt tính năng lưu trữ trong NiFi. |
3 | nifi.flow.configuration.archive.dir | ./conf/archive/ | Thuộc tính này được sử dụng để chỉ định thư mục lưu trữ. |
4 | nifi.flow.configuration.archive.max.time | 30 ngày | Điều này được sử dụng để chỉ định thời gian lưu trữ nội dung lưu trữ. |
5 | nifi.flow.configuration.archive.max.storage | 500 MB | nó chứa kích thước tối đa của thư mục lưu trữ có thể phát triển. |
6 | nifi.authorizer.configuration.file | ./conf/authorizers.xml | Để chỉ định tệp cấu hình trình ủy quyền, được sử dụng để ủy quyền người dùng. |
7 | nifi.login.identity.provider.configuration.file | ./conf/login-identity-providers.xml | Thuộc tính này chứa cấu hình của các nhà cung cấp danh tính đăng nhập, |
số 8 | nifi.templates.directory | ./conf/templates | Thuộc tính này được sử dụng để chỉ định thư mục, nơi các mẫu NiFi sẽ được lưu trữ. |
9 | nifi.nar.library.directory | ./lib | Thuộc tính này chứa đường dẫn đến thư viện, mà NiFi sẽ sử dụng để tải tất cả các thành phần bằng cách sử dụng tệp NAR có trong thư mục lib này. |
10 | nifi.nar.working.directory | ./work/nar/ | Thư mục này sẽ lưu trữ các tệp nar đã giải nén, sau khi NiFi xử lý chúng. |
11 | nifi.documentation.working.directory | ./work/docs/components | Thư mục này chứa tài liệu của tất cả các thành phần. |
Quản lý Nhà nước
Các thuộc tính này được sử dụng để lưu trữ trạng thái của các thành phần hữu ích để bắt đầu xử lý, nơi các thành phần còn lại sau khi khởi động lại và trong lịch trình tiếp theo đang chạy.
Không. | Tên tài sản | Giá trị mặc định | sự miêu tả |
---|---|---|---|
1 | nifi.state.management.configuration.file | ./conf/state-management.xml | Thuộc tính này chứa đường dẫn đến tệp state-management.xml. Tệp này chứa tất cả trạng thái thành phần có trong luồng dữ liệu của phiên bản NiFi đó. |
2 | nifi.state.management.provider.local | nhà cung cấp địa phương | Nó chứa ID của nhà cung cấp tiểu bang địa phương. |
3 | nifi.state.management.provider.cluster | zk-nhà cung cấp | Thuộc tính này chứa ID của nhà cung cấp trạng thái toàn cụm. Điều này sẽ bị bỏ qua nếu NiFi không được phân cụm nhưng phải được điền nếu chạy trong một cụm. |
4 | nifi.state.management. nhúng. người trông coi vườn thú. khởi đầu | sai | Thuộc tính này chỉ định liệu phiên bản NiFi này có nên chạy một máy chủ ZooKeeper được nhúng hay không. |
5 | nifi.state.management. nhúng. Zookeeper.properties | ./conf/zookeeper.properties | Thuộc tính này chứa đường dẫn của tệp thuộc tính cung cấp thuộc tính ZooKeeper để sử dụng nếu <nifi.state.management. nhúng. người trông coi vườn thú. start> được đặt thành true. |
Kho lưu trữ FlowFile
Bây giờ chúng ta hãy xem xét các chi tiết quan trọng của kho lưu trữ FlowFile -
Không. | Tên tài sản | Giá trị mặc định | sự miêu tả |
---|---|---|---|
1 | nifi.flowfile.repository. thực hiện | org.apache.nifi. bộ điều khiển. kho. WriteAhead FlowFileRepository | Thuộc tính này được sử dụng để chỉ định lưu trữ các tập tin trong bộ nhớ hoặc đĩa. Nếu người dùng muốn lưu trữ các tập tin trong bộ nhớ thì hãy thay đổi thành "org.apache.nifi.controller. Repository.VolatileFlowFileRepository". |
2 | nifi.flowfile.repository.directory | ./flowfile_repository | Để chỉ định thư mục cho kho lưu trữ tệp tin. |
Apache NiFi cung cấp hỗ trợ cho nhiều công cụ như ambari, người giữ vườn thú cho mục đích quản trị. NiFi cũng cung cấp cấu hình trong tệp nifi.properties để thiết lập HTTPS và những thứ khác cho quản trị viên.
người giữ vườn thú
Bản thân NiFi không xử lý quá trình bỏ phiếu trong cụm. Điều này có nghĩa là khi một cụm được tạo, tất cả các nút là chính và là điều phối viên. Vì vậy, Zookeeper được cấu hình để quản lý việc bỏ phiếu của nút chính và bộ điều phối. Tệp nifi.properties chứa một số thuộc tính để thiết lập Zookeeper.
Không. | Tên tài sản | Giá trị mặc định | sự miêu tả |
---|---|---|---|
1 | nifi.state.management.embedded.zookeeper. tính chất | ./conf/zookeeper.properties | Để chỉ định đường dẫn và tên của tệp thuộc tính người giữ vườn thú. |
2 | nifi.zookeeper.connect.string | trống | Để chỉ định chuỗi kết nối của người giữ vườn thú. |
3 | nifi.zookeeper.connect.timeout | 3 giây | Để chỉ định thời gian chờ kết nối của người giữ vườn thú với NiFi. |
4 | nifi.zookeeper.session.timeout | 3 giây | Để chỉ định thời gian chờ phiên của người giữ vườn thú với NiFi. |
5 | nifi.zookeeper.root.node | / nifi | Để chỉ định nút gốc cho người giữ vườn thú. |
6 | nifi.zookeeper.auth.type | trống | Để chỉ định loại xác thực cho người giữ vườn thú. |
Bật HTTPS
Để sử dụng NiFi qua HTTPS, quản trị viên phải tạo kho khóa và kho tin cậy và đặt một số thuộc tính trong tệp nifi.properties. Bộ công cụ TLS có thể được sử dụng để tạo tất cả các khóa cần thiết để kích hoạt HTTPS trong apache NiFi.
Không. | Tên tài sản | Giá trị mặc định | sự miêu tả |
---|---|---|---|
1 | nifi.web.https.port | trống | Để chỉ định số cổng https. |
2 | nifi.web.https.network.interface.default | trống | Giao diện mặc định cho https trong NiFi. |
3 | nifi.security.keystore | trống | Để chỉ định đường dẫn và tên tệp của kho khóa. |
4 | nifi.security.keystoreType | trống | Để chỉ định kiểu loại kho khóa như JKS. |
5 | nifi.security.keystorePasswd | trống | Để chỉ định mật khẩu kho khóa. |
6 | nifi.security.truststore | trống | Để chỉ định đường dẫn và tên tệp của cửa hàng tin cậy. |
7 | nifi.security.truststoreType | trống | Để chỉ định loại kiểu kho tin cậy như JKS. |
số 8 | nifi.security.truststorePasswd | trống | Để chỉ định mật khẩu cửa hàng tin cậy. |
Các thuộc tính khác cho quản trị
Có một số thuộc tính khác, được quản trị viên sử dụng để quản lý NiFi và cho tính liên tục của dịch vụ.
Không. | Tên tài sản | Giá trị mặc định | sự miêu tả |
---|---|---|---|
1 | nifi.flowcontroller.graceful.shutdown.period | 10 giây | Để chỉ định thời gian tắt bộ điều khiển luồng NiFi một cách duyên dáng. |
2 | nifi.administrative.yield.duration | 30 giây | Để chỉ định thời hạn lợi nhuận quản trị cho NiFi. |
3 | nifi.authorizer.configuration.file | ./conf/authorizers.xml | Để chỉ định đường dẫn và tên tệp của tệp cấu hình trình ủy quyền. |
4 | nifi.login.identity.provider.configuration.file | ./conf/login-identity-providers.xml | Để chỉ định đường dẫn và tên tệp của tệp cấu hình nhà cung cấp danh tính đăng nhập. |
Apache NiFi cung cấp một số lượng lớn các thành phần để giúp các nhà phát triển tạo luồng dữ liệu cho bất kỳ loại giao thức hoặc nguồn dữ liệu nào. Để tạo luồng, một nhà phát triển kéo các thành phần từ thanh menu sang canvas và kết nối chúng bằng cách nhấp và kéo chuột từ thành phần này sang thành phần khác.
Nói chung, NiFi có một thành phần lắng nghe khi bắt đầu luồng như getfile, thành phần này lấy dữ liệu từ hệ thống nguồn. Ở đầu bên kia có một thành phần truyền như putfile và có các thành phần ở giữa, xử lý dữ liệu.
Ví dụ: hãy tạo một luồng, lấy một tệp trống từ một thư mục và thêm một số văn bản trong tệp đó và đặt nó vào một thư mục khác.
Để bắt đầu, hãy kéo biểu tượng bộ xử lý vào khung NiFi và chọn bộ xử lý GetFile từ danh sách.
Tạo một thư mục đầu vào như c:\inputdir.
Nhấp chuột phải vào bộ xử lý và chọn cấu hình và trong tab thuộc tính, thêm Input Directory (c:\inputdir) và nhấp vào áp dụng và quay lại canvas.
Kéo biểu tượng bộ xử lý vào canvas và chọn bộ xử lý ReplaceText từ danh sách.
Nhấp chuột phải vào bộ xử lý và chọn cấu hình. bên trongproperties tab, thêm một số văn bản như “Hello tutorialspoint.com” trong hộp văn bản của Giá trị Thay thế và nhấp vào áp dụng.
Đi tới tab cài đặt, chọn hộp kiểm lỗi ở bên phải, sau đó quay lại khung vẽ.
Kết nối bộ xử lý GetFIle với ReplaceText trên mối quan hệ thành công.
Kéo biểu tượng bộ xử lý vào canvas và chọn bộ xử lý PutFile từ danh sách.
Tạo một thư mục đầu ra như c:\outputdir.
Nhấp chuột phải vào bộ xử lý và chọn cấu hình. Trong tab thuộc tính, hãy thêmDirectory (c:\outputdir) và nhấp vào áp dụng và quay lại canvas.
Chuyển đến tab cài đặt và chọn hộp kiểm thất bại và thành công ở phía bên phải, sau đó quay lại canvas.
Kết nối bộ xử lý ReplaceText với PutFile trên mối quan hệ thành công.
Bây giờ bắt đầu luồng và thêm một tệp trống trong thư mục đầu vào và bạn sẽ thấy rằng, nó sẽ chuyển đến thư mục đầu ra và văn bản sẽ được thêm vào tệp.
Bằng cách làm theo các bước trên, các nhà phát triển có thể chọn bất kỳ bộ xử lý nào và thành phần NiFi khác để tạo luồng phù hợp cho tổ chức hoặc khách hàng của họ.
Apache NiFi đưa ra khái niệm về Mẫu, giúp việc sử dụng lại và phân phối các luồng NiFi dễ dàng hơn. Các luồng có thể được sử dụng bởi các nhà phát triển khác hoặc trong các cụm NiFi khác. Nó cũng giúp các nhà phát triển NiFi chia sẻ công việc của họ trong các kho lưu trữ như GitHub.
Tạo mẫu
Hãy để chúng tôi tạo một mẫu cho luồng, mà chúng tôi đã tạo trong chương số 15 “Apache NiFi - Tạo luồng”.
Chọn tất cả các thành phần của quy trình bằng cách sử dụng phím shift và sau đó nhấp vào biểu tượng tạo mẫu ở phía bên trái của canvas NiFi. Bạn cũng có thể thấy một hộp công cụ như trong hình trên. Bấm vào biểu tượngcreate templateđược đánh dấu màu xanh lam như trong hình trên. Nhập tên cho mẫu. Nhà phát triển cũng có thể thêm mô tả, tùy chọn này.
Tải xuống mẫu
Sau đó, chuyển đến tùy chọn mẫu NiFi trong menu có ở góc trên cùng bên phải của giao diện người dùng NiFi như trong hình dưới đây.
Bây giờ hãy nhấp vào biểu tượng tải xuống (hiện ở bên tay phải trong danh sách) của mẫu mà bạn muốn tải xuống. Tệp XML có tên mẫu sẽ được tải xuống.
Tải lên mẫu
Để sử dụng một mẫu trong NiFi, một nhà phát triển sẽ phải tải tệp xml của nó lên NiFi bằng giao diện người dùng. Có biểu tượng Tải lên Mẫu (được đánh dấu bằng màu xanh lam trong hình ảnh bên dưới) bên cạnh biểu tượng Tạo Mẫu, hãy nhấp vào biểu tượng đó và duyệt qua xml.
Thêm mẫu
Trong thanh công cụ trên cùng của NiFi UI, biểu tượng mẫu nằm trước biểu tượng nhãn. Biểu tượng được đánh dấu màu xanh lam như trong hình dưới đây.
Kéo biểu tượng mẫu và chọn mẫu từ danh sách thả xuống và nhấp vào thêm. Nó sẽ thêm mẫu vào NiFi canvas.
NiFi cung cấp một số lượng lớn API, giúp các nhà phát triển thực hiện các thay đổi và lấy thông tin về NiFi từ bất kỳ công cụ nào khác hoặc các ứng dụng được phát triển tùy chỉnh. Trong hướng dẫn này, chúng tôi sẽ sử dụng ứng dụng người đưa thư trong google chrome để giải thích một số ví dụ.
Để thêm postmantoy Google Chrome của bạn, hãy truy cập URL được đề cập bên dưới và nhấp vào nút thêm vào chrome. Bây giờ bạn sẽ thấy một ứng dụng mới được thêm vào Google Chrome.
cửa hàng Chrome trực tuyến
Phiên bản hiện tại của NiFi rest API là 1.8.0 và tài liệu có trong URL được đề cập bên dưới.
https://nifi.apache.org/docs/nifi-docs/rest-api/index.html
Sau đây là các Mô-đun API phần còn lại NiFi được sử dụng nhiều nhất:
http: // <url nifi>: <cổng nifi> / nifi-api / <api-path>
Trong trường hợp HTTPS được bật https: // <nifi url>: <nifi port> / nifi-api / <api-path>
Không. | Tên mô-đun API | api-path | Sự miêu tả |
---|---|---|---|
1 | Truy cập | /truy cập | Để xác thực người dùng và nhận mã thông báo truy cập từ NiFi. |
2 | Bộ điều khiển | / controller | Để quản lý cụm và tạo tác vụ báo cáo. |
3 | Dịch vụ điều khiển | / controller-services | Nó được sử dụng để quản lý các dịch vụ bộ điều khiển và cập nhật các tham chiếu dịch vụ bộ điều khiển. |
4 | Báo cáo Nhiệm vụ | / báo cáo-nhiệm vụ | Để quản lý các tác vụ báo cáo. |
5 | lưu lượng | /lưu lượng | Để nhận siêu dữ liệu luồng dữ liệu và trạng thái thành phần và lịch sử truy vấn |
6 | Nhóm xử lý | / process-groups | Để tải lên và khởi tạo một mẫu và tạo các thành phần. |
7 | Bộ xử lý | / bộ xử lý | Để tạo và lên lịch cho một bộ xử lý và thiết lập các thuộc tính của nó. |
số 8 | Kết nối | / kết nối | Để tạo kết nối, hãy đặt mức độ ưu tiên hàng đợi và cập nhật điểm đến của kết nối |
9 | Hàng đợi FlowFile | / flowfile-queues | Để xem nội dung hàng đợi, hãy tải xuống nội dung tệp luồng và hàng đợi trống. |
10 | Nhóm quy trình từ xa | / remote-process-groups | Để tạo một nhóm từ xa và cho phép truyền. |
11 | Nguồn gốc | /nguồn gốc | Để truy vấn xuất xứ và tìm kiếm dòng sự kiện. |
Bây giờ chúng ta hãy xem xét một ví dụ và chạy trên người đưa thư để biết chi tiết về phiên bản NiFi đang chạy.
Yêu cầu
GET http://localhost:8080/nifi-api/flow/about
Phản ứng
{
"about": {
"title": "NiFi",
"version": "1.7.1",
"uri": "http://localhost:8080/nifi-api/",
"contentViewerUrl": "../nifi-content-viewer/",
"timezone": "SGT",
"buildTag": "nifi-1.7.1-RC1",
"buildTimestamp": "07/12/2018 12:54:43 SGT"
}
}
Apache NiFi ghi nhật ký và lưu trữ mọi thông tin về các sự kiện xảy ra trên dữ liệu đã nhập trong luồng. Kho dữ liệu xuất xứ lưu trữ thông tin này và cung cấp giao diện người dùng để tìm kiếm thông tin sự kiện này. Nguồn gốc dữ liệu có thể được truy cập cho mức NiFi đầy đủ và cả mức bộ xử lý.
Bảng sau liệt kê các trường khác nhau trong danh sách sự kiện NiFi Data Provenance có các trường sau:
Không. | Tên trường | Sự miêu tả |
---|---|---|
1 | Ngày giờ | Ngày và thời gian của sự kiện. |
2 | Kiểu | Loại sự kiện như 'CREATE'. |
3 | FlowFileUuid | UUID của tệp lưu lượng mà sự kiện được thực hiện. |
4 | Kích thước | Kích thước của tệp lưu lượng. |
5 | Tên thành phần | Tên của thành phần đã thực hiện sự kiện. |
6 | Loại thành phần | Loại thành phần. |
7 | Hiển thị dòng dõi | Cột cuối cùng có biểu tượng dòng dõi hiển thị, được sử dụng để xem dòng lưu lượng như thể hiện trong hình ảnh bên dưới. |
Để biết thêm thông tin về sự kiện này, người dùng có thể nhấp vào biểu tượng thông tin có trong cột đầu tiên của giao diện người dùng NiFi Data Provenance.
Có một số thuộc tính trong tệp nifi.properties, được sử dụng để quản lý kho lưu trữ NiFi Data Provenance.
Không. | Tên tài sản | Giá trị mặc định | Sự miêu tả |
---|---|---|---|
1 | nifi.provenance.repository.directory.default | ./provenance_repository | Để chỉ định đường dẫn mặc định của nguồn gốc dữ liệu NiFi. |
2 | nifi.provenance.repository.max.storage.time | 24 giờ | Để chỉ định thời gian lưu giữ tối đa của nguồn gốc dữ liệu NiFi. |
3 | nifi.provenance.repository.max.storage.size | 1 GB | Để chỉ định lưu trữ tối đa nguồn gốc dữ liệu NiFi. |
4 | nifi.provenance.repository.rollover.time | 30 giây | Để chỉ định thời gian di chuyển của nguồn gốc dữ liệu NiFi. |
5 | nifi.provenance.repository.rollover.size | 100 MB | Để chỉ định kích thước cuộn qua của nguồn gốc dữ liệu NiFi. |
6 | nifi.provenance.repository.indexed.fields | EventType, FlowFileUUID, Filename, ProcessorID, Relationship | Để chỉ định các trường được sử dụng để tìm kiếm và lập chỉ mục nguồn gốc dữ liệu NiFi. |
Trong Apache NiFi, có nhiều cách để theo dõi các thống kê khác nhau của hệ thống như lỗi, sử dụng bộ nhớ, sử dụng CPU, thống kê Luồng dữ liệu, v.v. Chúng ta sẽ thảo luận về những cách phổ biến nhất trong hướng dẫn này.
Trong Giám sát xây dựng
Trong phần này, chúng ta sẽ tìm hiểu thêm về giám sát tích hợp trong Apache NiFi.
Bảng tin
Bảng thông báo hiển thị LỖI và CẢNH BÁO mới nhất do bộ xử lý NiFi tạo ra trong thời gian thực. Để truy cập bảng thông báo, người dùng sẽ phải vào menu thả xuống bên phải và chọn tùy chọn Bảng thông báo. Nó tự động làm mới và người dùng cũng có thể tắt nó. Người dùng cũng có thể điều hướng đến bộ xử lý thực bằng cách nhấp đúp vào lỗi. Người dùng cũng có thể lọc các bản tin bằng cách thực hiện các bước sau:
- bằng tin nhắn
- bằng tên
- theo id
- theo id nhóm
Giao diện người dùng xuất xứ dữ liệu
Để theo dõi các Sự kiện xảy ra trên bất kỳ bộ xử lý cụ thể nào hoặc trong toàn bộ NiFi, người dùng có thể truy cập Nguồn gốc dữ liệu từ cùng một menu như bảng thông báo. Người dùng cũng có thể lọc các sự kiện trong kho lưu trữ nguồn gốc dữ liệu bằng cách làm việc với các trường sau:
- theo tên thành phần
- theo loại thành phần
- theo loại
Giao diện người dùng Tóm tắt NiFi
Bản tóm tắt Apache NiFi cũng có thể được truy cập từ menu tương tự như bảng thông báo. Giao diện người dùng này chứa thông tin về tất cả các thành phần của phiên bản hoặc cụm NiFi cụ thể đó. Chúng có thể được lọc theo tên, theo loại hoặc theo URI. Có các tab khác nhau cho các loại thành phần khác nhau. Sau đây là các thành phần, có thể được theo dõi trong giao diện người dùng tóm tắt NiFi -
- Processors
- Cổng đầu vào
- Cổng đầu ra
- Nhóm quy trình từ xa
- Connections
- Nhóm xử lý
Trong giao diện người dùng này, có một liên kết ở dưới cùng bên phải có tên là chẩn đoán hệ thống để kiểm tra thống kê JVM.
Báo cáo Nhiệm vụ
Apache NiFi cung cấp nhiều tác vụ báo cáo để hỗ trợ các hệ thống giám sát bên ngoài như Ambari, Grafana, v.v. Nhà phát triển có thể tạo tác vụ báo cáo tùy chỉnh hoặc có thể định cấu hình các tác vụ có sẵn để gửi các số liệu của NiFi đến các hệ thống giám sát bên ngoài. Bảng sau liệt kê các tác vụ báo cáo do NiFi 1.7.1 cung cấp.
Không. | Báo cáo Tên Nhiệm vụ | Sự miêu tả |
---|---|---|
1 | AmbariReportingTask | Để thiết lập Dịch vụ đo lường Ambari cho NiFi. |
2 | ControllerStatusReportingTask | Để báo cáo thông tin từ giao diện người dùng tóm tắt NiFi trong 5 phút qua. |
3 | MonitorDiskUsage | Để báo cáo và cảnh báo về việc sử dụng đĩa của một thư mục cụ thể. |
4 | MonitorMemory | Để theo dõi số lượng Java Heap được sử dụng trong nhóm Bộ nhớ Java của JVM. |
5 | SiteToSiteBulletinReportingTask | Để báo cáo các lỗi và cảnh báo trong các bản tin bằng giao thức Site to Site. |
6 | SiteToSiteProvenanceReportingTask | Để báo cáo các sự kiện NiFi Data Provenance sử dụng giao thức Site to Site. |
API NiFi
Có một API được đặt tên là chẩn đoán hệ thống, có thể được sử dụng để theo dõi thống kê NiFI trong bất kỳ ứng dụng được phát triển tùy chỉnh nào. Hãy để chúng tôi kiểm tra API trong bưu tá.
Yêu cầu
http://localhost:8080/nifi-api/system-diagnostics
Phản ứng
{
"systemDiagnostics": {
"aggregateSnapshot": {
"totalNonHeap": "183.89 MB",
"totalNonHeapBytes": 192819200,
"usedNonHeap": "173.47 MB",
"usedNonHeapBytes": 181894560,
"freeNonHeap": "10.42 MB",
"freeNonHeapBytes": 10924640,
"maxNonHeap": "-1 bytes",
"maxNonHeapBytes": -1,
"totalHeap": "512 MB",
"totalHeapBytes": 536870912,
"usedHeap": "273.37 MB",
"usedHeapBytes": 286652264,
"freeHeap": "238.63 MB",
"freeHeapBytes": 250218648,
"maxHeap": "512 MB",
"maxHeapBytes": 536870912,
"heapUtilization": "53.0%",
"availableProcessors": 4,
"processorLoadAverage": -1,
"totalThreads": 71,
"daemonThreads": 31,
"uptime": "17:30:35.277",
"flowFileRepositoryStorageUsage": {
"freeSpace": "286.93 GB",
"totalSpace": "464.78 GB",
"usedSpace": "177.85 GB",
"freeSpaceBytes": 308090789888,
"totalSpaceBytes": 499057160192,
"usedSpaceBytes": 190966370304,
"utilization": "38.0%"
},
"contentRepositoryStorageUsage": [
{
"identifier": "default",
"freeSpace": "286.93 GB",
"totalSpace": "464.78 GB",
"usedSpace": "177.85 GB",
"freeSpaceBytes": 308090789888,
"totalSpaceBytes": 499057160192,
"usedSpaceBytes": 190966370304,
"utilization": "38.0%"
}
],
"provenanceRepositoryStorageUsage": [
{
"identifier": "default",
"freeSpace": "286.93 GB",
"totalSpace": "464.78 GB",
"usedSpace": "177.85 GB",
"freeSpaceBytes": 308090789888,
"totalSpaceBytes": 499057160192,
"usedSpaceBytes": 190966370304,
"utilization": "38.0%"
}
],
"garbageCollection": [
{
"name": "G1 Young Generation",
"collectionCount": 344,
"collectionTime": "00:00:06.239",
"collectionMillis": 6239
},
{
"name": "G1 Old Generation",
"collectionCount": 0,
"collectionTime": "00:00:00.000",
"collectionMillis": 0
}
],
"statsLastRefreshed": "09:30:20 SGT",
"versionInfo": {
"niFiVersion": "1.7.1",
"javaVendor": "Oracle Corporation",
"javaVersion": "1.8.0_151",
"osName": "Windows 7",
"osVersion": "6.1",
"osArchitecture": "amd64",
"buildTag": "nifi-1.7.1-RC1",
"buildTimestamp": "07/12/2018 12:54:43 SGT"
}
}
}
}
Trước khi bắt đầu nâng cấp Apache NiFi, hãy đọc ghi chú phát hành để biết về những thay đổi và bổ sung. Người dùng cần đánh giá tác động của những bổ sung và thay đổi này trong cài đặt NiFi hiện tại của họ. Dưới đây là liên kết để nhận các ghi chú phát hành cho các bản phát hành mới của Apache NiFi.
https://cwiki.apache.org/confluence/display/NIFI/Release+Notes
Trong thiết lập cụm, người dùng cần nâng cấp cài đặt NiFi của mọi Node trong một cụm. Làm theo các bước dưới đây để nâng cấp Apache NiFi.
Sao lưu tất cả các NAR tùy chỉnh có trong NiFi hoặc lib hiện tại của bạn hoặc bất kỳ thư mục nào khác.
Tải xuống phiên bản Apache NiFi mới. Dưới đây là liên kết để tải xuống mã nguồn và mã nhị phân của phiên bản NiFi mới nhất.
https://nifi.apache.org/download.html
Tạo một thư mục mới trong cùng thư mục cài đặt của NiFi hiện tại và giải nén phiên bản Apache NiFi mới.
Dừng NiFi một cách duyên dáng. Đầu tiên hãy dừng tất cả các bộ xử lý và để tất cả các tập tin có trong quy trình được xử lý. Khi không còn lưu lượng nào nữa, hãy dừng NiFi lại.
Sao chép cấu hình của Authozers.xml từ cài đặt NiFi hiện tại sang phiên bản mới.
Cập nhật các giá trị trong bootstrap-notification-services.xml và bootstrap.conf của phiên bản NiFi mới từ phiên bản hiện tại.
Thêm ghi nhật ký tùy chỉnh từ logback.xml vào cài đặt NiFi mới.
Định cấu hình nhà cung cấp danh tính đăng nhập trong login-ID-provider.xml từ phiên bản hiện tại.
Cập nhật tất cả các thuộc tính trong nifi.properties của cài đặt NiFi mới từ phiên bản hiện tại.
Vui lòng đảm bảo rằng nhóm và người dùng phiên bản mới giống với phiên bản hiện tại, để tránh bất kỳ lỗi nào bị từ chối cho phép.
Sao chép cấu hình từ state-management.xml của phiên bản hiện tại sang phiên bản mới.
Sao chép nội dung của các thư mục sau từ phiên bản cài đặt NiFi hiện tại vào cùng các thư mục trong phiên bản mới.
./conf/flow.xml.gz
Cũng như flow.xml.gz từ thư mục lưu trữ.
Đối với xuất xứ và kho nội dung thay đổi các giá trị trong nifi. tệp thuộc tính vào kho lưu trữ hiện tại.
sao chép trạng thái từ ./state/local hoặc thay đổi trong nifi.properties nếu bất kỳ thư mục bên ngoài nào khác được chỉ định.
Kiểm tra lại tất cả các thay đổi đã thực hiện và kiểm tra xem chúng có ảnh hưởng đến bất kỳ thay đổi mới nào được thêm vào phiên bản NiFi mới hay không. Nếu có bất kỳ tác động nào, hãy kiểm tra các giải pháp.
Khởi động tất cả các nút NiFi và xác minh xem tất cả các luồng có hoạt động chính xác hay không và các kho đang lưu trữ dữ liệu và Ui đang truy xuất dữ liệu đó với bất kỳ lỗi nào.
Theo dõi các bản tin trong một thời gian để kiểm tra các lỗi mới.
Nếu phiên bản mới hoạt động bình thường, thì phiên bản hiện tại có thể được lưu trữ và xóa khỏi thư mục.
Apache NiFi Remote Process Group hoặc RPG cho phép luồng để hướng các FlowFiles theo luồng tới các phiên bản NiFi khác nhau bằng giao thức Site-to-Site. Kể từ phiên bản 1.7.1, NiFi không cung cấp các mối quan hệ cân bằng, vì vậy RPG được sử dụng để cân bằng tải trong luồng dữ liệu NiFi.
Một nhà phát triển có thể thêm RPG từ thanh công cụ trên cùng của NiFi UI bằng cách kéo biểu tượng như trong hình trên vào canvas. Để định cấu hình một game nhập vai, Nhà phát triển phải thêm các trường sau:
Không. | Tên trường | Sự miêu tả |
---|---|---|
1 | URL | Để chỉ định các URL NiFi đích từ xa được phân tách bằng dấu phẩy. |
2 | Giao thức vận tải | Để chỉ định giao thức truyền tải cho các phiên bản NiFi từ xa. Đó là RAW hoặc HTTP. |
3 | Giao diện mạng cục bộ | Để chỉ định giao diện mạng cục bộ để gửi / nhận dữ liệu. |
4 | Tên máy chủ proxy HTTP | Để chỉ định tên máy chủ của máy chủ proxy cho mục đích truyền tải trong RPG. |
5 | Cổng máy chủ proxy HTTP | Để chỉ định cổng của máy chủ proxy cho mục đích vận chuyển trong RPG. |
6 | Người dùng proxy HTTP | Đây là trường tùy chọn để chỉ định tên người dùng cho proxy HTTP. |
7 | Mật khẩu proxy HTTP | Đây là trường tùy chọn để chỉ định mật khẩu cho tên người dùng trên. |
Một nhà phát triển cần phải kích hoạt nó trước khi sử dụng nó giống như chúng ta khởi động bộ xử lý trước khi sử dụng chúng.
Apache NiFi cung cấp các dịch vụ chia sẻ, có thể được chia sẻ bởi bộ xử lý và tác vụ báo cáo được gọi là cài đặt bộ điều khiển. Chúng giống như nhóm kết nối cơ sở dữ liệu, có thể được sử dụng bởi các bộ xử lý truy cập cùng một cơ sở dữ liệu.
Để truy cập cài đặt bộ điều khiển, hãy sử dụng menu thả xuống ở góc trên cùng bên phải của NiFi UI như thể hiện trong hình dưới đây.
Có nhiều cài đặt bộ điều khiển được cung cấp bởi Apache NiFi, chúng ta sẽ thảo luận về cài đặt thường được sử dụng và cách chúng tôi thiết lập nó trong NiFi.
DBCPConnectionPool
Thêm dấu cộng vào trang Cài đặt Nifi sau khi nhấp vào tùy chọn Cài đặt bộ điều khiển. Sau đó chọn DBCPConnectionPool từ danh sách cài đặt bộ điều khiển. DBCPConnectionPool sẽ được thêm vào trang cài đặt NiFi chính như thể hiện trong hình bên dưới.
Nó chứa thông tin sau về bộ điều khiển setting:Name
- Type
- Bundle
- State
- Scope
- Định cấu hình và xóa biểu tượng
Nhấp vào biểu tượng cấu hình và điền vào các trường bắt buộc. Các trường được liệt kê trong bảng dưới đây -
Không. | Tên trường | Giá trị mặc định | sự miêu tả |
---|---|---|---|
1 | URL kết nối cơ sở dữ liệu | trống | Để chỉ định URL kết nối với cơ sở dữ liệu. |
2 | Tên lớp trình điều khiển cơ sở dữ liệu | trống | Để chỉ định tên lớp trình điều khiển cho cơ sở dữ liệu như com.mysql.jdbc.Driver cho mysql. |
3 | Thời gian chờ tối đa | 500 mili | Để chỉ định thời gian chờ dữ liệu từ một kết nối đến cơ sở dữ liệu. |
4 | Tổng số kết nối tối đa | số 8 | Để chỉ định số lượng kết nối được cấp phát tối đa trong nhóm kết nối cơ sở dữ liệu. |
Để dừng hoặc định cấu hình cài đặt bộ điều khiển, trước tiên phải dừng tất cả các thành phần NiFi đính kèm. NiFi cũng thêm phạm vi trong cài đặt bộ điều khiển để quản lý cấu hình của nó. Do đó, chỉ những cái được chia sẻ cùng cài đặt sẽ không bị ảnh hưởng và sẽ sử dụng cùng cài đặt bộ điều khiển.
Các tác vụ báo cáo Apache NiFi tương tự như các dịch vụ bộ điều khiển, chạy ở chế độ nền và gửi hoặc ghi lại các thống kê của phiên bản NiFi. Nhiệm vụ báo cáo NiFi cũng có thể được truy cập từ cùng một trang như cài đặt bộ điều khiển, nhưng trong một tab khác.
Để thêm nhiệm vụ báo cáo, nhà phát triển cần nhấp vào nút dấu cộng ở trên cùng bên phải của trang nhiệm vụ báo cáo. Các tác vụ báo cáo này chủ yếu được sử dụng để theo dõi các hoạt động của một cá thể NiFi, trong bản tin hoặc nguồn gốc. Chủ yếu các tác vụ báo cáo này sử dụng Site-to-Site để vận chuyển dữ liệu thống kê NiFi đến nút khác hoặc hệ thống bên ngoài.
Bây giờ chúng ta hãy thêm một nhiệm vụ báo cáo đã định cấu hình để hiểu rõ hơn.
MonitorMemory
Tác vụ báo cáo này được sử dụng để tạo bản tin, khi một nhóm bộ nhớ vượt qua tỷ lệ phần trăm được chỉ định. Làm theo các bước sau để định cấu hình nhiệm vụ báo cáo MonitorMemory -
Thêm vào dấu cộng và tìm kiếm MonitorMemory trong danh sách.
Chọn MonitorMemory và nhấp vào THÊM.
Sau khi nó được thêm vào trang chính của trang chính của nhiệm vụ báo cáo, hãy nhấp vào biểu tượng cấu hình.
Trong tab thuộc tính, hãy chọn nhóm bộ nhớ mà bạn muốn theo dõi.
Chọn phần trăm mà sau đó bạn muốn các bản tin thông báo cho người dùng.
Bắt đầu tác vụ báo cáo.
Apache NiFi - Bộ xử lý tùy chỉnh
Apache NiFi là một nền tảng mã nguồn mở và cung cấp cho các nhà phát triển các tùy chọn để thêm bộ xử lý tùy chỉnh của họ trong thư viện NiFi. Làm theo các bước sau để tạo bộ xử lý tùy chỉnh.
Tải xuống phiên bản mới nhất của Maven từ liên kết dưới đây.
https://maven.apache.org/download.cgi
Thêm một biến môi trường có tên là M2_HOME và đặt giá trị làm thư mục cài đặt của maven.
Tải xuống Eclipse IDE từ liên kết bên dưới.
https://www.eclipse.org/downloads/download.php
Mở dấu nhắc lệnh và thực hiện lệnh Maven Archetype.
> mvn archetype:generate
Tìm kiếm kiểu nifi trong các dự án nguyên mẫu.
Chọn org.apache.nifi: nifi-processor-pack-archetype project.
Sau đó, từ danh sách các phiên bản, hãy chọn phiên bản mới nhất, tức là 1.7.1 cho hướng dẫn này.
Nhập groupId, tạo tác, phiên bản, gói và tên tạo tác, v.v.
Sau đó, một dự án maven sẽ được tạo ra với các thư mục.
nifi-<artifactBaseName>-processors
nifi-<artifactBaseName>-nar
Chạy lệnh dưới đây trong thư mục nifi- <artifactBaseName> -processors để thêm dự án vào nhật thực.
mvn install eclipse:eclipse
Mở nhật thực và chọn nhập từ menu tệp.
Sau đó chọn “Dự án hiện có vào không gian làm việc” và thêm dự án từ thư mục nifi- <artifactBaseName> -processors trong eclipse.
Thêm mã của bạn vào chức năng public void onTrigger (ProcessContext context, ProcessSession session), chức năng này sẽ chạy khi một bộ xử lý được lên lịch chạy.
Sau đó, đóng gói mã vào một tệp NAR bằng cách chạy lệnh được đề cập bên dưới.
mvn clean install
Tệp NAR sẽ được tạo tại nifi-
-nar / thư mục đích. Sao chép tệp NAR vào thư mục lib của Apache NiFi và khởi động lại NiFi.
Sau khi khởi động lại NiFi thành công, hãy kiểm tra danh sách bộ xử lý để biết bộ xử lý tùy chỉnh mới.
Đối với bất kỳ lỗi nào, hãy kiểm tra tệp ./logs/nifi.log.
Apache NiFi - Dịch vụ bộ điều khiển tùy chỉnh
Apache NiFi là một nền tảng mã nguồn mở và cung cấp cho các nhà phát triển các tùy chọn để thêm dịch vụ bộ điều khiển tùy chỉnh của họ trong Apache NiFi. Các bước và công cụ gần giống như được sử dụng để tạo bộ xử lý tùy chỉnh.
Mở dấu nhắc lệnh và thực hiện lệnh Maven Archetype.
> mvn archetype:generate
Tìm kiếm kiểu nifi trong các dự án nguyên mẫu.
Lựa chọn org.apache.nifi:nifi-service-bundle-archetype dự án.
Sau đó, từ danh sách các phiên bản, hãy chọn phiên bản mới nhất - 1.7.1 cho hướng dẫn này.
Nhập groupId, tạo tác, phiên bản, gói và tên tạo tác, v.v.
Một dự án maven sẽ được tạo có các thư mục.
nifi-<artifactBaseName>
nifi-<artifactBaseName>-nar
nifi-<artifactBaseName>-api
nifi-<artifactBaseName>-api-nar
Chạy lệnh dưới đây trong các thư mục nifi- <artifactBaseName> và nifi- <artifactBaseName> -api để thêm hai dự án này vào nhật thực.
mvn cài đặt eclipse: eclipse
Mở nhật thực và chọn nhập từ menu tệp.
Sau đó chọn “Dự án hiện có vào không gian làm việc” và thêm dự án từ thư mục nifi- <artifactBaseName> và nifi- <artifactBaseName> -api trong eclipse.
Thêm mã của bạn vào các tệp nguồn.
Sau đó, đóng gói mã vào một tệp NAR bằng cách chạy lệnh được đề cập bên dưới.
mvn cài đặt sạch
Hai tệp NAR sẽ được tạo trong mỗi thư mục nifi- <artifactBaseName> / target và nifi- <artifactBaseName> -api / target.
Sao chép các tệp NAR này vào thư mục lib của Apache NiFi và khởi động lại NiFi.
Sau khi khởi động lại NiFi thành công, hãy kiểm tra danh sách bộ xử lý để biết bộ xử lý tùy chỉnh mới.
Đối với bất kỳ lỗi nào, hãy kiểm tra ./logs/nifi.log tập tin.
Apache NiFi - Ghi nhật ký
Apache NiFi uses logback library to handle its logging. There is a file logback.xml present in the conf directory of NiFi, which is used to configure the logging in NiFi. The logs are generated in logs folder of NiFi and the log files are as described below.
nifi-app.log
This is the main log file of nifi, which logs all the activities of apache NiFi application ranging from NAR files loading to the run time errors or bulletins encountered by NiFi components. Below is the default appender in logback.xml file for nifi-app.log file.
<appender name="APP_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${org.apache.nifi.bootstrap.config.log.dir}/nifi-app.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
${org.apache.nifi.bootstrap.config.log.dir}/
nifi-app_%d{yyyy-MM-dd_HH}.%i.log
</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<immediateFlush>true</immediateFlush>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
</encoder>
</appender>
The appender name is APP_FILE, and the class is RollingFileAppender, which means logger is using rollback policy. By default, the max file size is 100 MB and can be changed to the required size. The maximum retention for APP_FILE is 30 log files and can be changed as per the user requirement.
nifi-user.log
This log contains the user events like web security, web api config, user authorization, etc. Below is the appender for nifi-user.log in logback.xml file.
<appender name="USER_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${org.apache.nifi.bootstrap.config.log.dir}/nifi-user.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>
${org.apache.nifi.bootstrap.config.log.dir}/
nifi-user_%d.log
</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
</encoder>
</appender>
The appender name is USER_FILE. It follows the rollover policy. The maximum retention period for USER_FILE is 30 log files. Below is the default loggers for USER_FILE appender present in nifi-user.log.
<logger name="org.apache.nifi.web.security" level="INFO" additivity="false">
<appender-ref ref="USER_FILE"/>
</logger>
<logger name="org.apache.nifi.web.api.config" level="INFO" additivity="false">
<appender-ref ref="USER_FILE"/>
</logger>
<logger name="org.apache.nifi.authorization" level="INFO" additivity="false">
<appender-ref ref="USER_FILE"/>
</logger>
<logger name="org.apache.nifi.cluster.authorization" level="INFO" additivity="false">
<appender-ref ref="USER_FILE"/>
</logger>
<logger name="org.apache.nifi.web.filter.RequestLogger" level="INFO" additivity="false">
<appender-ref ref="USER_FILE"/>
</logger>
nifi-bootstrap.log
This log contains the bootstrap logs, apache NiFi’s standard output (all system.out written in the code mainly for debugging), and standard error (all system.err written in the code). Below is the default appender for the nifi-bootstrap.log in logback.log.
<appender name="BOOTSTRAP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${org.apache.nifi.bootstrap.config.log.dir}/nifi-bootstrap.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>
${org.apache.nifi.bootstrap.config.log.dir}/nifi-bootstrap_%d.log
</fileNamePattern>
<maxHistory>5</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
</encoder>
</appender>
nifi-bootstrap.log file,s appender name is BOOTSTRAP_FILE, which also follows rollback policy. The maximum retention for BOOTSTRAP_FILE appender is 5 log files. Below is the default loggers for nifi-bootstrap.log file.
<logger name="org.apache.nifi.bootstrap" level="INFO" additivity="false">
<appender-ref ref="BOOTSTRAP_FILE" />
</logger>
<logger name="org.apache.nifi.bootstrap.Command" level="INFO" additivity="false">
<appender-ref ref="CONSOLE" />
<appender-ref ref="BOOTSTRAP_FILE" />
</logger>
<logger name="org.apache.nifi.StdOut" level="INFO" additivity="false">
<appender-ref ref="BOOTSTRAP_FILE" />
</logger>
<logger name="org.apache.nifi.StdErr" level="ERROR" additivity="false">
<appender-ref ref="BOOTSTRAP_FILE" />
</logger>