hadoop - 无法使用 java 连接到 AWS EMR 上的 hive

标签 hadoop amazon-web-services hive emr

我已经使用 hive 设置了 AWS EMR 集群。我想使用 java 从本地计算机连接到 hive thrift 服务器。我尝试了以下代码 -

Class.forName("com.amazon.hive.jdbc3.HS2Driver");
con = DriverManager.getConnection("jdbc:hive2://ec2XXXX.compute-1.amazonaws.com:10000/default","hadoop", "");

http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/HiveJDBCDriver.html.As开发人员指南中提到,将与 hive jdbc 驱动程序相关的 jar 添加到类路径中。 但我在尝试建立连接时遇到异常。 我能够使用上面的代码(使用不同的 jdbc 驱动程序)连接到简单 hadoop 集群上的 hive 服务器。 如果我遗漏了什么,有人可以建议吗? 是否可以使用 hive jdbc 从本地计算机连接到 AWS EMR 上的 hive 服务器?

最佳答案

(合并评论中的答案)

Hive 在端口 10000 上运行,但仅在本地运行,您必须创建到 emr 的 ssh 隧道。

以下内容来自documentation对于 hive 0.13.1

创建隧道

ssh -o ServerAliveInterval=10 -i path-to-key-file -N -L 10000:localhost:10000 hadoop@master-public-dns-name 

连接到 JDBC

 jdbc:hive2://localhost:10000/default

关于hadoop - 无法使用 java 连接到 AWS EMR 上的 hive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30588157/

相关文章:

hadoop - 如何从配置单元中的特定存储桶中检索数据

hadoop - 创建一个 HIVE 表并将其保存到一个制表符分隔的文件中?

sql - Hive 时间戳查询

hadoop - 在 cygwin 中运行简单的 map-reduce hadoop 示例时出现问题

amazon-ec2 - 如何在亚马逊上托管持久数据存储系统

java - 带有.a​​ddCacheFile的Hadoop Mapreduce CompileError(使用外部Jar)

amazon-web-services - ElasticBeanstalk - 应用程序更改未显示

amazon-web-services - 如何在 AWS ELB 日志中获取完整的 POST 正文?

hadoop - 如何在现有的非CDH群集上安装CM

amazon-web-services - 为什么我无法远程登录我的 aws 实例?