我们想使用NiFi来连接ADLS(使用PutHDFS和FetchHDFS),而不必安装HDInsight。随后,我们希望使用Azure DataBricks运行Spark作业,并希望可以使用NiFi的ExecuteSparkInteractive处理器来完成。从我可以找到的所有示例中,似乎总是需要HDP或HDInsight。
任何人都可以共享这些指针而无需HDP或HDInsight怎么做吗?
谢谢。
答案 0 :(得分:1)
据我所知,ADLS在Apache NiFi中可用的*HDFS
处理器上不能很好地工作(或完全不能工作)。提出了一项功能请求-NIFI-4360,并为此提出了后续的PR-#2158,但经过了简短的审核,但现在进展不大。您可以将其分叉或复制该代码库的面食,并希望对其进行审查。
答案 1 :(得分:0)
一年多以前,我进行了一次测试设置。 PutHDFS处理器可以使用其他一些类路径资源。需要以下依赖项:
有关更多详细信息,另请参见以下Blog。您可以将库,core-site.xml和hdfs-site.xml从HDInsight设置复制到运行NiFi的计算机上。您还应该正确设置dfs.adls.home.mountpoint,将其指向根目录或数据目录。请注意,这不是官方支持,因此是phps。您还应该将Azure Data Factory或StreamSets视为Data Ingest的选项。
答案 2 :(得分:0)
PutHDFS首先并不希望使用经典的hadoop集群。它仅出于常规原因需要core-site.xml。如以下示例所示,PutHDFS与ADLS一起使用时需要使用一个最低限度的配置文件。
使用NiFi PutHDFS处理器进入ADLS很简单。以下步骤将导致解决方案
创建一个空的core-site.xml以配置PuHDFS处理器
使用以下属性更新core-site.xml(在此示例中,我使用Client Key模式进行身份验证)
fs.defaultFS = adl://<yourADLname>.azuredatalakestore.net
fs.adl.oauth2.access.token.provider.type = ClientCredential
fs.adl.oauth2.refresh.url = <Your Azure refresh endpoint>
fs.adl.oauth2.client.id = <Your application id>
fs.adl.oauth2.credential = <Your key>
更新您的NiFi PutHDFS处理器以引用core-site.xml和其他ADLS库(hadoop-azure-datalake-3.1.1.jar和azure-data-lake-store-sdk-2.3.1 .jar)在上一步中创建,如下所示。