nifi处理器连接配置单元|配置单元| cli |服务|协议| v7异常

weylhg0b  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(413)

我正在开发nifi处理器来连接hive并使用controller服务执行查询。我能够在nifi中部署它并尝试运行它,但它失败了,出现以下异常

RegisterSchema[id=6b1152ca-015f-1000-d7b9-e44e251aba70] failed to process due to java.lang.NoSuchFieldError: HIVE_CLI_SERVICE_PROTOCOL_V7; rolling back session: {}
java.lang.NoSuchFieldError: HIVE_CLI_SERVICE_PROTOCOL_V7
    at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:175)
    at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
    at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
    at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
    at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
    at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)

下面是我的版本依赖关系
配置单元版本:1.1.0 hadoop:2.7.3

<!-- https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc -->
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-jdbc</artifactId>
            <version>1.1.0-cdh5.10.0</version>

        </dependency>
            <!-- https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc -->
            <dependency>
                <groupId>org.apache.hive</groupId>
                <artifactId>hive-service</artifactId>
                <version>1.1.0-cdh5.10.0</version>
            </dependency>

有什么提示吗?

vyswwuz2

vyswwuz21#

这个问题似乎是相关的,这意味着apachehive1.1.0对于hadoop2.6.0上运行的配置单元来说“太旧了”。如果您只计划部署在特定于供应商的hadoop版本上(例如hdp或cdh,而不是apachehadoop),那么您可能希望将它们的存储库添加到pom中(参见顶级nifi pom的示例),并将版本设置为对应于它们的hadoop版本的特定于供应商的版本。
例如,apachenifi中现有的配置单元nar与hdp的更新版本不兼容,因为hdp配置单元比相应的apache配置单元基线更新。因此,可以设置特定于供应商的配置文件( -Phortonworks 在本例中)和重写属性,例如 hive.version 以及 hive.hadoop.version ,设置为特定于供应商的值。

相关问题