API Apache Nifi Python: FactoryBean выдал исключение при создании объекта. Не удалось связаться с контроллером Python.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 API Apache Nifi Python: FactoryBean выдал исключение при создании объекта. Не удалось связаться с контроллером Python.

Сообщение Anonymous »

Я следовал этому руководству, чтобы добавить собственные процессоры Python через Python API в Apache nifi-2.0.0-SNAPSHOT
Я разместил пользовательские скрипт Python по следующему пути C:\nifi-2.0.0-SNAPSHOT\python\extensions, и я установил nifi.properties следующим образом:
#####################
# Python Extensions #
#####################
# Uncomment in order to enable Python Extensions.
nifi.python.command="C:/Program Files/Python311/python.exe"
nifi.python.framework.source.directory=C:/nifi-2.0.0-SNAPSHOT/python/framework
nifi.python.extensions.source.directory.default=C:/nifi-2.0.0-SNAPSHOT/python/extensions
nifi.python.working.directory=C:/nifi-2.0.0-SNAPSHOT/work/python
nifi.python.max.processes=100
nifi.python.max.processes.per.extension.type=10
nifi.python.logs.directory=./logs

но я все еще получаю следующую ошибку в журнале nifi-app.log
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flowController': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: Failed to communicate with Python Controller
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:176)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:101)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1898)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getObjectForBeanInstance(AbstractAutowireCapableBeanFactory.java:1284)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:345)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
... 93 common frames omitted
Caused by: java.lang.IllegalStateException: Failed to communicate with Python Controller
at org.apache.nifi.controller.FlowController.(FlowController.java:568)
at org.apache.nifi.controller.FlowController.createStandaloneInstance(FlowController.java:412)
at org.apache.nifi.spring.FlowControllerFactoryBean.getObject(FlowControllerFactoryBean.java:83)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:169)
... 105 common frames omitted
Caused by: java.io.IOException: Cannot run program "C:\nifi-2.0.0-SNAPSHOT\work\python\controller\bin\python.exe": CreateProcess error=2, The system cannot find the file specified
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1170)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089)
at org.apache.nifi.py4j.PythonProcess.launchPythonProcess(PythonProcess.java:167)
at org.apache.nifi.py4j.PythonProcess.start(PythonProcess.java:101)
at org.apache.nifi.py4j.StandardPythonBridge.start(StandardPythonBridge.java:73)
at org.apache.nifi.components.ClassLoaderAwarePythonBridge.start(ClassLoaderAwarePythonBridge.java:53)
at org.apache.nifi.controller.FlowController.(FlowController.java:566)
... 108 common frames omitted
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.base/java.lang.ProcessImpl.create(Native Method)
at java.base/java.lang.ProcessImpl.(ProcessImpl.java:500)
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:159)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1126)
... 114 common frames omitted
2024-11-11 12:18:58,817 INFO [Thread-0] org.apache.nifi.NiFi Application Server shutdown started

Я использую Python 3.11.4, как мне избавиться от этой ошибки, чтобы я мог видеть следующие процессоры в моем холсте apache-nifi.
Я использую Python 3.11.4, как мне избавиться от этой ошибки, чтобы я мог видеть следующие процессоры в моем холсте apache-nifi.
Я использую Python 3.11.4. р>
import pandas as pd
import io
from nifiapi.flowfiletransform import FlowFileTransform, FlowFileTransformResult

class ConvertCsvToExcel(FlowFileTransform):
class Java:
implements = ['org.apache.nifi.python.processor.FlowFileTransform']
class ProcessorDetails:
dependencies = ['pandas', 'xlsxwriter']
version = '0.0.1-SNAPSHOT'
description = 'Converts a CSV file into a Microsoft Excel file'
tags = ['csv', 'excel']

def __init__(self, **kwargs):
pass

def transform(self, context, flowFile):
csv_df = pd.read_csv(io.BytesIO(flowFile.getContentsAsBytes()))
bytesIo = io.BytesIO()
writer = pd.ExcelWriter(bytesIo, engine='xlsxwriter')
csv_df.to_excel(writer, index=False)
writer.close()

return FlowFileTransformResult(relationship = "success", contents = bytesIo.getvalue())

def getPropertyDescriptors(self):
return []


Подробнее здесь: https://stackoverflow.com/questions/791 ... -failed-to
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»