Apache nifi 在没有HDInsight的情况下,如何使用NiFi直接从ADL读/写

Apache nifi 在没有HDInsight的情况下,如何使用NiFi直接从ADL读/写,apache-nifi,azure-data-lake,azure-hdinsight,databricks,Apache Nifi,Azure Data Lake,Azure Hdinsight,Databricks,我们希望使用NiFi连接ADL(使用PutHDFS和FetchHDFS),而无需安装HDInsight。随后,我们希望使用Azure DataBricks来运行Spark作业,并希望可以使用NiFi的ExecuteSparkInteractive处理器来完成。从我能找到的所有例子中,似乎总是需要HDP或HDInsight 任何人都可以分享如何在不需要HDP或HDInsight的情况下完成这项工作的要点吗 提前感谢。据我所知,如果使用Apache NiFi中可用的*HDFS处理器,ADL将无法正常

我们希望使用NiFi连接ADL(使用PutHDFS和FetchHDFS),而无需安装HDInsight。随后,我们希望使用Azure DataBricks来运行Spark作业,并希望可以使用NiFi的ExecuteSparkInteractive处理器来完成。从我能找到的所有例子中,似乎总是需要HDP或HDInsight

任何人都可以分享如何在不需要HDP或HDInsight的情况下完成这项工作的要点吗


提前感谢。

据我所知,如果使用Apache NiFi中可用的
*HDFS
处理器,ADL将无法正常工作(或根本无法工作)。曾经提出过一个功能请求——随后也提出了一个相同的PR——但经过了简要审查,但现在进展不大。您可以将其分叉或复制到代码库中,并希望能够对其进行检查。

我在一年多前做了一个测试设置。PutHDFS处理器使用一些额外的类路径资源。需要以下依赖项:

  • adls2-oauth2-token-provider-1.0.jar
  • azure-data-lake-store-sdk-2.0.4-SNAPSHOT.jar
  • hadoop-azure-datalake-2.0.0-SNAPSHOT.jar
  • jackson-core-2.2.3.jar
  • okhttp-2.4.0.jar
  • okio-1.4.0.jar

有关更多详细信息,请参见以下内容。您可以将libs、core-site.xml和hdfs-site.xml从HDInsight设置复制到运行NiFi的机器上。您还应该正确设置dfs.adls.home.mountpoint,指向根目录或数据目录。请注意,这不是官方支持的,因此phps。您还应该考虑Azure数据工厂或流集作为数据摄取的选项。 PutHDFS一开始并不期望有一个经典的hadoop集群。它期望core-site.xml只是出于常规原因。正如您将在下面的示例中看到的,一个使PutHDFS与adl一起工作的最简配置文件

使用NiFi PutHDFS处理器进入ADL非常简单。以下步骤将导致解决方案

  • 设置ADLS Gen1(ADLS已重命名为ADLS Gen1)
  • 另外,为您的ADLS帐户设置OAUTH身份验证。看
  • 创建空的core-site.xml以配置PuHDFS处理器 使用以下属性更新core-site.xml(在本例中,我使用auth的客户端密钥模式)
    fs.defaultFS=adl://.azuredatalakestore.net

    fs.adl.oauth2.access.token.provider.type=ClientCredential

    fs.adl.oauth2.refresh.url=

    fs.adl.oauth2.client.id=

    fs.adl.oauth2.credential=

  • 更新您的NiFi PutHDFS处理器,以参考在上一步中创建的core-site.xml和其他ADLS库(hadoop-azure-datalake-3.1.1.jar和azure-data-lake-store-sdk-2.3.1.jar),如下所示。

  • 更新上游处理器并进行测试

  • 谢谢你,豪克。积极考虑流集,ADF目前不是一个选项。谢谢湿婆。也在探索溪流。克里希南,谢谢,但这看起来像是一个黑客。我想等待对ADL的正式支持,而不依赖于任何Hadoop发行版。