如何使用 Presto 查询 Hive 数据



我刚刚安装了presto,当我使用presto-cli查询hive数据时,我收到以下错误:

$ ./presto --server node6:8080 --catalog hive --schema default
presto:default> show tables;
Query 20131113_150006_00002_u8uyp failed: Table hive.information_schema.tables does not exist

配置属性为:

coordinator=true
datasources=jmx,hive
http-server.http.port=8080
presto-metastore.db.type=h2
presto-metastore.db.filename=/root/h2
task.max-memory=1GB
discovery-server.enabled=true
discovery.uri=`http://node6:8080`

hive.properties 是:

connector.name=hive-cdh4
hive.metastore.uri=thrift://node6:9083

我使用的Hadoop发行版是CDH 4.4。我相信它已正确安装,并且 Hive 可以自行成功处理查询。

谁能帮我解决?任何想法将不胜感激。

按照入门的建议,我创建了一个控制器(仅限 jmx)和一个单独的工作线程(jmx,hive),每个控制器都在不同的计算机上。

最终为我解决这个问题的是指定工人的主机名和http-server.http.port作为presto--server参数。指定控制器时,它不起作用。

这一切都是有道理的,但我仍然想知道当我有两个Presto-Hive工人时会发生什么......

向 etc/catalog/hive.properties 添加更多行"hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml"当然,在执行此操作之前检查路径的值。

presto-metastore.db.filename= <- 这是 Hive Warehouse 的值吗 目录? =>这个Presto的元存储,而不是蜂巢。

我刚刚弄清楚了我的情况出了什么问题:您还必须将以下行添加到 $HIVE_HOME/conf/hive-env.sh 中,以通知 Hive 打开 thrift port(与 Hive-site.xml 文件中的 hive.metastore.uris 属性下提到的相同)。蜂巢客户端使用此端口通过 RPC 连接到元存储。

导出METASTORE_PORT=9084

在 conf 文件夹的 hive-env.sh 文件中。这应该将您的配置单元与 presto 同步。

相关内容

  • 没有找到相关文章

最新更新