org.apache.thrift.tapplicationexception:必填字段“client\u protocol”未设置

zour9fqk  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(353)

我正在尝试连接到hiveserver2并从java应用程序运行查询。在本地服务器上运行时(配置单元版本: 2.1.1 ). 它与以下依赖项完美结合:

compile('org.apache.hadoop:hadoop-core:1.2.1')

compile ('org.apache.hive:hive-jdbc:2.1.0'){
    exclude group: 'org.eclipse.jetty.aggregate', module: '*'
    exclude group: "org.slf4j", module: "slf4j-log4j12"
    exclude group: "log4j", module: "log4j"    }

compile ('org.apache.hadoop:hadoop-common:3.0.0'){
    exclude group: "org.slf4j", module: "slf4j-log4j12"
    exclude group: "log4j", module: "log4j"
}

但是当我在远程服务器上运行时(配置单元版本: 0.13.1-SNAPSHOT ). 它抛出下面提到的错误。我知道,问题是hivejdbc、hadoop核心和hadoop公共版本。有人能告诉我哪些版本的依赖我需要使用的配置单元 0.13.1-SNAPSHOT ```
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]]

5f0d552i

5f0d552i1#

经过一些跟踪和错误,我修复了版本问题。问题是Hive-jdbc:2.1.0 is 与hive 0.13.1-snapshot不向后兼容,我们需要使用hive-jdbc:0.13.1 to 让它工作。下面的代码无疑有效。

compile('org.apache.hadoop:hadoop-core:1.2.1')

compile ('org.apache.hive:hive-jdbc:0.13.1'){
    exclude group: 'org.eclipse.jetty.aggregate', module: '*'
    exclude group: "org.slf4j", module: "slf4j-log4j12"
    exclude group: "log4j", module: "log4j"    }

compile ('org.apache.hadoop:hadoop-common:3.0.0'){
    exclude group: "org.slf4j", module: "slf4j-log4j12"
    exclude group: "log4j", module: "log4j"
}

相关问题