在emr上启动hive thrift服务器时出错

zc0qhyus  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(443)

在以下代码中,我尝试从spark启动hive thrift服务器:

val conf = new SparkConf().setAppName("HiveDemo")

val sc = new SparkContext(conf)
val sql = new HiveContext(sc)

sql.setConf("hive.server2.thrift.port", "10001")

val df = sql.read.parquet("s3n://...")
df.registerTempTable("test")

HiveThriftServer2.startWithContext(sql)

while (true) {
  Thread.`yield`()
}

我在emr集群上运行此代码,配置如下:

emr-4.6.0
spark 1.6.1
hive 1.0.0

我连接到集群以测试表是否是使用以下方法创建的:

!connect jdbc:hive2://localhost:10001

i get错误:无法使用jdbc uri打开客户端传输:jdbc:hive2://localhost:10001:java.net.connectexception:连接被拒绝
我在emr上是否还缺少一个额外的设置步骤?

nfzehxib

nfzehxib1#

实际上,这个问题在hive1.3.0和2.0.0中已经修复。所以升级你的版本。
出现此问题的原因是beeline使用失败的连接会导致失败和泄漏。。全部( error reproducing, how it is solved and which versions are containing the fix )包含在此链接中。
希望对你有帮助。

更新1:

您的配置单元服务器是否以http模式运行?
连接url的时间 HiveServer2 正在http中运行mode:-

jdbc:hive2://<host>:<port>/<db>;transportMode=http;httpPath=<http_endpoint>

where:- <http_endpoint> 中是否配置了相应的http端点 hive-site.xml . 默认值为cliservice。
http传输模式的默认端口是10001。

资源链接:

配置单元客户端详细信息
配置单元jdbc:无法使用jdbc uri打开客户端传输

相关问题