【问题标题】:Nifi Processor to connect Hive | HIVE_CLI_SERVICE_PROTOCOL_V7 ExceptionNifi 处理器连接 Hive | HIVE_CLI_SERVICE_PROTOCOL_V7 异常
【发布时间】:2017-10-31 01:41:55
【问题描述】:

我正在开发 Nifi 处理器来连接配置单元并使用控制器服务执行查询。我能够在 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)

下面是我的版本依赖

Hive 版本: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>

这里有什么建议吗?

【问题讨论】:

    标签: hive apache-nifi


    【解决方案1】:

    This SO question 似乎相关,并暗示 Apache Hive 1.1.0 对于您在 Hadoop 2.6.0 上运行的 Hive “太旧”。如果您只计划在特定于供应商的 Hadoop 版本上部署(例如 HDP 或 CDH,与 Apache Hadoop 相比),那么您可能希望将他们的存储库添加到 POM(请参阅顶级 NiFi POM 以获取示例)和将版本设置为与其 Hadoop 版本相对应的供应商特定版本。

    例如,Apache NiFi 中现有的 Hive NAR 与较新版本的 HDP 不兼容,因为 HDP Hive 比相应的 Apache Hive 基线更新。因此,可以设置特定于供应商的配置文件(在此示例中为 -Phortonworks)并覆盖诸如 hive.versionhive.hadoop.version 之类的属性,设置为特定于供应商的值。

    【讨论】:

    • 我正在使用带有 Hive 1.1 的 cloudera,并且正在使用下面的 pom 进行构建并不能解决它。 mvnrepository.com/artifact/org.apache.hive/hive-jdbc/… 我也尝试使用 Hive 2.7.x 和 Hive 1.1.0 组合导致相同的异常
    • 您的 CDH 版本是 5.5.1 吗?您的 CDH 集群上的 Hive 版本是 1.1.0-cdh5.5.1 吗?
    • 用 pom.xml 中的确切配置更新问题
    • 我不确定当时发生了什么。根据issues.apache.org/jira/browse/HIVE-6647 的说法,V7 应该很久以前就在 Hive 中了。
    • 好吧,它对我有用,但真的不确定根本原因是什么。它重新安装了 Nifi 1.2 并且流文件开始流动.. :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多