Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables Nifi:我可以为Kerberos主体和Kerberos密钥表使用变量吗?_Variables_Expression_Kerberos_Apache Nifi - Fatal编程技术网

Variables Nifi:我可以为Kerberos主体和Kerberos密钥表使用变量吗?

Variables Nifi:我可以为Kerberos主体和Kerberos密钥表使用变量吗?,variables,expression,kerberos,apache-nifi,Variables,Expression,Kerberos,Apache Nifi,我有来自三个不同来源的文件进入“PutHDFS”处理器。这三个源都有单独的键表,并且都将指向单独的目录。由于源的名称在文件名中,所以我可以创建一个名为“source\u name”的变量,我可以使用它来创建一个目录,如下所示: /my/hdfs/directory/${source_name}/reports 我想对Kerberos主体和Kerberos密钥表执行类似的操作,如下所示: /my/hdfs/directory/${source_name}/reports Kerberos主体:

我有来自三个不同来源的文件进入“PutHDFS”处理器。这三个源都有单独的键表,并且都将指向单独的目录。由于源的名称在文件名中,所以我可以创建一个名为“source\u name”的变量,我可以使用它来创建一个目录,如下所示:

/my/hdfs/directory/${source_name}/reports
我想对Kerberos主体和Kerberos密钥表执行类似的操作,如下所示:

/my/hdfs/directory/${source_name}/reports
Kerberos主体:${source_name}@acme.com

Kerberos密钥表:/home/nifi/Keytab/${source_name}.Keytab

然而,Nifi正在逐字读取这些值,我得到了错误,它“无法对${source_name}@acme.com进行身份验证”


Nifi文档说这些字段支持表达式语言,但在Nifi本身(1.7版)中,它说这些字段只支持“仅变量注册表”。尽管进行了大量搜索,我仍然无法确定“仅变量注册表”的含义。我是否被迫硬编码kerberos值?

表达式语言允许引用来自多个不同来源的值,它在一个层次结构中工作,如下所述:

当它表示“仅限变量注册表”时,意味着该属性的表达式语言语句无法访问来自传入流文件的值

这样做的主要原因通常是因为这些值的使用方式不能针对每个流文件。例如,HDFS处理器需要在处理器启动时执行kerberos登录,然后定期续订票据。对无限多的传入流文件值执行此操作会给管理带来问题

更新:

这可以更好地描述表达式语言可以访问的值的层次结构:


非常感谢您的回复-谢谢!不过,我很好奇……当您说“来自传入流文件的值对于该属性的表达式语言语句不可访问”时,您能告诉我哪些类型的值对于该属性的EL语句是可访问的吗?在该链接中有描述,其中说“来自变量注册表:”基本上是nifi.properties中指定的自定义变量文件中的变量,通过右键单击流程组在UI中指定的变量,系统属性和环境变量。因此,请参见我刚才在答案中添加的新链接