gpt4 book ai didi

hadoop - 使用 Apache Drill Embedded 连接到 EMR 上的 Hive

转载 作者:可可西里 更新时间:2023-11-01 15:05:01 25 4
gpt4 key购买 nike

我正在尝试以嵌入式模式在 Apache Drill 1.4 上进行实验,并尝试连接到在 EMR 上运行的 Hive - Drill 在 EMR 外部的服务器上运行。

我有一些基本问题需要澄清,还有一些配置问题需要修复。

这是我目前所拥有的 -

运行 AWS EMR 集群。运行 Drill Embedded 服务器。

根据有关为 Hive 配置存储插件的文档,https://drill.apache.org/docs/hive-storage-plugin/ ,我对是否使用 Remote Metastore 或 Embedded Metastore 感到困惑。 有什么区别?

接下来,我的 EMR 集群正在运行,这里是 hive-site.xml 的样子 -

<property>
<name>hive.metastore.uris</name>
<value>thrift://ec2-XX-XX-XX-XX.compute-1.amazonaws.com:9083</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://ec2-XX-XX-XX-XX.compute-1.amazonaws.com:3306/hive?createDatabaseIfNotExist=true</value>
<description>username to use against metastore database</description>
</property>

还定义了其他属性,如 MySQL 用户名和密码等。但我想这些在这里很重要。

我应该使用哪个连接到 Hive?我试图将它们都放在存储插件中,但 Drill 不接受。

我试过的存储插件是这样的——

{
"type": "hive",
"enabled": true,
"configProps": {
"hive.metastore.uris": "thrift://ec2-XX-XX-XX-XX.compute-1.amazonaws.com:9083",
"fs.default.name": "hdfs://ec2-XX-XX-XX-XX.compute-1.amazonaws.com/",
"hive.metastore.sasl.enabled": "false"
}
}

{
"type": "hive",
"enabled": true,
"configProps": {
"hive.metastore.uris": "thrift://ec2-XX-XX-XX-XX.compute-1.amazonaws.com:9083",
"javax.jdo.option.ConnectionURL": "jdbc:derby:ec2-XX-XX-XX-XX.compute-1.amazonaws.com;databaseName=data;create=true",
"hive.metastore.warehouse.dir": "/user/hive/warehouse",
"fs.default.name": "file:///",
"hive.metastore.sasl.enabled": "false"
}
}

如果您能指导我进行设置,那将非常有帮助。谢谢!

最佳答案

是否使用 Remote Metastore 或 Embedded Metastore?

嵌入式模式:建议仅用于测试或实验目的。在此模式下,元存储使用 Derby 数据库,数据库和元存储服务都是嵌入到主 HiveServer 进程中。当您启动 HiveServer 进程时,两者都会为您启动。

远程模式:Hive metastore 服务在它自己的 JVM 进程中运行。 HiveServer2、HCatalog 和其他进程通过 Thrift 网络 API(通过 hive.metastore.uris 属性配置)与其通信。 Metastore 服务通过 JDBC(通过 javax.jdo.option.ConnectionURL 属性配置)与 Metastore 数据库通信。这应该用于生产

您正在使用 MySQL 来存储 Hive 的元数据。因此,Drill 也需要 javax.jdo.option.ConnectionUserNamejavax.jdo.option.ConnectionPassword 来创建连接。

示例配置单元插件(远程模式):

{
"type": "hive",
"enabled": true,
"configProps": {
"hive.metastore.uris":<--->,
"javax.jdo.option.ConnectionURL":<--->,
"javax.jdo.option.ConnectionDriverName":<--->,
"javax.jdo.option.ConnectionUserName":<--->,
"javax.jdo.option.ConnectionPassword":<--->,
"hive.metastore.warehouse.dir":<--->,
"fs.default.name":<--->
}
}

<---> :可以从 hive-site.xml 中获取。

关于hadoop - 使用 Apache Drill Embedded 连接到 EMR 上的 Hive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34478580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com