无法启动 Hive 并且目录 'hive' 在 Trino 中不存在
Unable to start Hive and Catalog 'hive' does not exist in Trino
我安装了 Apache Hive 3、Apache Hadoop 3、MySQL 和 Trino 来查询数据。
我启动了 Hive metastore,我已经 MySQL 是 运行ning。但是当我 运行 在 Trino 中进行一个简单的查询时:
trino> show tables from default;
==>失败:行1:1:目录'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 中的数据之前,您需要先配置配置单元连接器目录。在你的 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 连接器。
hive.metastore.uri=thrift://<your-metastore-ip-address>:9083
告诉 Trino 在哪里可以找到与 Hive 一起安装的 Metastore。
如果您不确定在哪里可以找到您的 Metastore IP 地址,the hive documentation 会指出一些包含它们的配置文件,具体取决于您正在 运行 的 Hadoop/Hive 版本。
Hive 和 Trino 共享 Metastore,但 运行 对完全不同资源的查询。当人们开始使用 Trino 时,我 wrote this blog 帮助介绍这些概念。也许它可以帮助你开始。
假设您的设置没有什么太复杂的地方,这应该就是全部要求了。在 some cases 中,您可能需要 hive.config.resources
来包含 hdfs-site.xml
和 core-site.xml
.
的路径
我安装了 Apache Hive 3、Apache Hadoop 3、MySQL 和 Trino 来查询数据。 我启动了 Hive metastore,我已经 MySQL 是 运行ning。但是当我 运行 在 Trino 中进行一个简单的查询时:
trino> show tables from default;
==>失败:行1:1:目录'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 中的数据之前,您需要先配置配置单元连接器目录。在你的 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 连接器。hive.metastore.uri=thrift://<your-metastore-ip-address>:9083
告诉 Trino 在哪里可以找到与 Hive 一起安装的 Metastore。
如果您不确定在哪里可以找到您的 Metastore IP 地址,the hive documentation 会指出一些包含它们的配置文件,具体取决于您正在 运行 的 Hadoop/Hive 版本。
Hive 和 Trino 共享 Metastore,但 运行 对完全不同资源的查询。当人们开始使用 Trino 时,我 wrote this blog 帮助介绍这些概念。也许它可以帮助你开始。
假设您的设置没有什么太复杂的地方,这应该就是全部要求了。在 some cases 中,您可能需要 hive.config.resources
来包含 hdfs-site.xml
和 core-site.xml
.