无法启动 Hive,Trino 中不存在目录 'hive'



我安装了Apache Hive 3, Apache Hadoop 3, MySQL和Trino来查询数据。我启动Hive metastore, MySQL正在运行。但是当我在Trino中运行一个简单的查询:

trino> show tables from default;==>目录'hive'不存在

当我尝试启动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> 

有人能帮忙吗?谢谢你。

我可以回答关于Trino CLI的第一个问题了。

在使用Trino对HDFS中的数据运行查询之前,您需要首先配置hive连接器目录。在您的Trino安装中,应该有一个etc目录。在该目录下是etc/catalog目录。

新建文件etc/catalog/hive.properties,并添加以下配置:

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

让我们来分析一下这些属性的含义:

  1. connector.name=hive-hadoop2表示目录将使用Trino hive连接器。
  2. hive.metastore.uri=thrift://<your-metastore-ip-address>:9083告诉Trino在哪里找到安装在Hive中的metastore。

如果你不确定在哪里找到你的metastore ip地址,hive文档指出一些配置文件包含它们,这取决于你运行的是哪个版本的Hadoop/hive。

Hive和Trino共享metastore,但是在完全不同的资源上运行查询。我写这篇博客是为了帮助人们在开始使用Trino时介绍这些概念。也许它可以帮助你开始。

假设您的设置没有太复杂,这应该是所有需要的。在某些情况下,您可能需要hive.config.resources包含hdfs-site.xmlcore-site.xml的路径。

最新更新