无法启动配置单元,目录“配置单元”在trino中不存在

whlutmcx  于 2021-07-15  发布在  Hadoop
关注(0)|答案(1)|浏览(505)

我安装了ApacheHive3、ApacheHadoop3、mysql和trino来查询数据。我启动了hive metastore,mysql正在运行。但是当我在trino中运行一个简单的查询时: trino> show tables from default; ==>失败:行1:1:目录“配置单元”不存在
当我尝试启动hive cli时。我有个例外:

Hive Session ID = dd740516-a5d0-4f8d-ae24-065e2cfe889c 
Exception in thread "main" java.lang.ClassCastException: jdk.internal.loader.ClassLoaders$AppClassLoader incompatible with java.net.URLClassLoader 
 at org.apache.hadoop.hive.ql.session.SessionState.<init>(SessionState.java:413) 
 at org.apache.hadoop.hive.ql.session.SessionState.<init>(SessionState.java:389) 
 at org.apache.hadoop.hive.cli.CliSessionState.<init>(CliSessionState.java:60) 
 at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:705) 
 at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:683) 
 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
 at java.base/java.lang.reflect.Method.invoke(Method.java:566) 
 at org.apache.hadoop.util.RunJar.run(RunJar.java:318) 
 at org.apache.hadoop.util.RunJar.main(RunJar.java:232)

我尝试将这些属性添加到 hive-site.xml 但我无法启动hive cli。

<property> 
 <name>system:java.io.tmpdir</name> 
 <value>/tmp/hive</value> 
 </property> 
 <property> 
 <name>system:user.name</name> 
 <value>${user.name}</value> 
 </property>

有人能帮忙吗?谢谢

0sgqnhkj

0sgqnhkj1#

我可以回答关于trino cli的第一个问题。
在trino中对hdfs中的数据运行查询之前,首先需要配置配置单元连接器目录。在trino安装中,应该有 etc 目录。在那个目录下是 etc/catalog 目录。
创建新文件 etc/catalog/hive.properties 并添加以下配置。

connector.name=hive-hadoop2
hive.metastore.uri=thrift://<your-metastore-ip-address>:9083

我们来分析一下这些属性的含义: connector.name=hive-hadoop2 指示目录将使用trino配置单元连接器。 hive.metastore.uri=thrift://<your-metastore-ip-address>:9083 告诉trino在何处找到与配置单元一起安装的元存储。
如果您不确定在哪里可以找到metastore ip地址,那么配置单元文档会根据您运行的hadoop/hive版本指示一些包含它们的配置文件。
hive和trino共享metastore,但是在完全不同的资源上运行查询。我写这个博客是为了在人们开始使用trino的时候介绍这些概念。也许它能帮助你开始。
假设你的设置没有什么太复杂的地方,那就足够了。在某些情况下,您可能需要 hive.config.resources 去控制你生命的轨迹 hdfs-site.xml 以及 core-site.xml .

相关问题