在以下代码中,我尝试从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上是否还缺少一个额外的设置步骤?
1条答案
按热度按时间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:-where:-
<http_endpoint>
中是否配置了相应的http端点hive-site.xml
. 默认值为cliservice。http传输模式的默认端口是10001。
资源链接:
配置单元客户端详细信息
配置单元jdbc:无法使用jdbc uri打开客户端传输