问题标签 [hive-metastore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1102 浏览

hive - Hive 显示不存在的分区

我在 hive 中有一张表,其 DDL 如下所示:

我想将数据从 data_updated=NO 移动到 data_updated=YES。我通过 HDFS 命令来做到这一点。

一种选择是编写多个重命名分区 DDL。但是,alter partition DDL 要求将所有分区指定到第 N 级。N级是动态的,不能静态确定。

我在 unix 脚本的帮助下获取 batch_ids,并使用 HDFS 中的 move 命令手动移动目录。

使用 HDFS 命令移动的问题是在 hive 中修复表后,不存在的分区仍然存在于 hive 元数据中。如何从配置单元元数据中删除不存在的分区。有什么建议么?

hive 中显示分区的输出。

0 投票
1 回答
1150 浏览

apache-spark - 如何强制 Spark/Hive 创建具有自定义权限的 task_* 目录

我有以下问题。我会尽量提供尽可能多的细节,但如果我错过了任何可能对这项工作有用的东西,请不要犹豫。

我尝试使用这两者的不同组合来使用上述蜂巢站点设置,但问题仍然存在。

Spark 集群(独立,master/workers/shuffle/thrift/history)作为用户spark(服务帐户)运行,它是spark 用户组的一部分。没有 HDFS,但文件系统是分布式的并且符合 posix 标准(将其视为商业 HDFS),安装了 NFS v3。Hive 元存储在 PostgreSQL 10 中。

星火仓库在这里:

我作为spark 用户组的一部分的user_1运行 PySpark 进程。该过程创建数据库,创建表并将数据写入表中。

该过程失败,但有以下例外:

如果无法重命名和删除文件/目录。

目录结构:

如您所见,直到temporary/0(包括)的目录归user_1所有,但是temporary/0中的task_目录归spark用户所有。此外,用于创建这些task_目录的 umask 是 022,而不是所需的 007。

如果我可以强制创建这些task_目录的spark用户实际使用正确的 umask,则问题将得到解决。

我很感激,指点和建议。

0 投票
0 回答
139 浏览

hive - 如何使用 NotificationListener 在 Hive 中获取 CREATE/DROP/ALTER 表事件的通知

我是使用 Hive 的新手。DbNotificationListener每当发生与 CREATE/DROP/ALTER 相关的任何数据库事件时,有人可以协助如何在 Hive 中获取通知。

我有以下与步骤相关的问题:

  1. 我需要使用哪个 JAR 文件来NotificationListener上课?可以是 Hive 元存储的 Hcatalog JAR 吗?
  2. 我应该添加这个 JAR 文件的类路径是什么?
  3. 我需要输入哪个条目hive-Site.xml
  4. 它会在元存储日志中写入事件吗?

提前致谢。

0 投票
1 回答
853 浏览

amazon-emr - 在 postgresql 上为 EMR 设置远程配置单元元存储

我正在尝试将 postgresql db 设置为 AWS EMR 的外部 Hive 元存储。我已经尝试在 EC2 和 RDS 上托管它。

我已经尝试过这里给出的步骤。

但它没有通过,EMR 在配置步骤中失败,只有消息

在主实例 (instance-id) 上,应用程序配置失败

我无法从故障日志中破译任何内容。

我还在路径中复制了 postgresql jdbc jar

/usr/lib/hive/lib/ 和 /usr/lib/hive/jdbc/ 以防 EMR 还没有它,但仍然没有帮助!

然后我通过手动编辑hive-site.xml和设置属性来设置系统:

并且不得不跑hive --service metatool -listFSRoot

在这些手动设置之后,我能够让 EMR 使用 postgres db 作为远程元存储。

有什么方法可以使用官方文档中提到的配置文件使其工作?

编辑:我用于远程 mysql 元存储的配置设置:

分类=hive-site,properties=[javax.jdo.option.ConnectionURL=jdbc:mysql://[host]:3306/[dbname]?createDatabaseIfNotExist=true,javax.jdo.option.ConnectionDriverName=org.mariadb.jdbc .Driver,javax.jdo.option.ConnectionUserName=[用户],javax.jdo.option.ConnectionPassword=[pass]]

0 投票
0 回答
60 浏览

apache - 与 Atlas HiveMetastoreBridge 代码相关的几个问题

我正在浏览 Apache Atlas 中的 HiveMetastoreBridge 代码并且遇到了一些疑问。如果这些问题非常幼稚,请原谅我。

HiveMetastoreBridge 代码

  1. 为什么我们要在 findEntity 方法中清除关系?

  2. 添加引用实体到底在后台做什么?为了在 toTableEntity 方法中明确,我们将相关实体的 ObjectId 添加为属性,并调用 AtlasEntity 的 addReferredEntity 方法。

  3. 在 registerInstance 方法中,为什么我们要在 else if 语句中创建从第一个实体到其他引用实体的引用。何时会创建多个实体,为什么第一个实体会引用其他实体?

  4. 在 importTable 方法中,为什么在创建 AtlasEntity processInst 之后我们再次创建 AtlasEntitiesWithExtInfo createTableProcess 并向其添加流程实体和路径实体?为什么不是表实体呢?

0 投票
0 回答
53 浏览

amazon-web-services - 远程 Hive 元存储:Spark 连接到本地安装而不是远程元存储

我已经在运行 MySQL 的 RDS 上配置了远程 Hive 元存储。EMR 创建良好并且能够连接到 3306 端口上的 RDS 实例,但是当我创建一些表时,它会在default数据库中创建它。

为了验证这一点,我检查了 Hive CLI 连接到什么,令我惊讶的是,即使它连接到本地数据库并仅显示default数据库。

我已经设置了正确的 javax.jdo.option.* properties ConnectionURL, ConnectionDriverName, ConnectionUserName, ConnectionPasswordinhive-site.xml

知道我可能错在哪里吗?

0 投票
2 回答
5467 浏览

apache-spark - 带有 Hive 元存储 3.1.0 的 Apache Spark 2.3.1

我们已将 HDP 集群升级到 3.1.1.3.0.1.0-187 并发现:

  1. Hive 有一个新的元存储位置
  2. Spark 看不到 Hive 数据库

事实上我们看到:

你能帮我理解发生了什么以及如何解决这个问题吗?

更新:

配置:

(spark.sql.warehouse.dir,/warehouse/tablespace/external/hive/) (spark.admin.acls,) (spark.yarn.dist.files,file:///opt/folder/config.yml,file :///opt/jdk1.8.0_172/jre/lib/security/cacerts) (spark.history.kerberos.keytab,/etc/security/keytabs/spark.service.keytab) (spark.io.compression.lz4. blockSize,128kb) (spark.executor.extraJavaOptions,-Djavax.net.ssl.trustStore=cacerts) (spark.history.fs.logDirectory,hdfs:///spark2-history/) (spark.io.encryption.keygen. algorithm,HmacSHA1) (spark.sql.autoBroadcastJoinThreshold,26214400) (spark.eventLog.enabled,true) (spark.shuffle.service.enabled,true) (spark.driver.extraLibraryPath,/usr/hdp/current/hadoop-client /lib/native:/usr/hdp/current/hadoop-client/lib/native/Linux-amd64-64) (spark.ssl.keyStore,/etc/security/serverKeys/server-keystore.jks) (spark.yarn .queue,默认)(spark.jars,文件:/opt/folder/component-assembly-0.1.0-SNAPSHOT.jar) (spark.ssl.enabled,true) (spark.sql.orc.filterPushdown,true) (spark.shuffle.unsafe.file.output.buffer, 5m) (spark.yarn.historyServer.address,master2.env.project:18481) (spark.ssl.trustStore,/etc/security/clientKeys/all.jks) (spark.app.name,com.company.env. component.MyClass) (spark.sql.hive.metastore.jars,/usr/hdp/current/spark2-client/standalone-metastore/*) (spark.io.encryption.keySizeBits,128) (spark.driver.memory, 2g) (spark.executor.instances,10) (spark.history.kerberos.principal,spark/edge.env.project@ENV.PROJECT) (spark.unsafe.sorter.spill.reader.buffer.size,1m) ( spark.ssl.keyPassword,*********(已编辑))(spark.ssl.keyStorePassword,*********(已编辑))(spark.history.fs.cleaner.enabled, true) (spark.shuffle.io.serverThreads,128) (spark.sql.hive.convertMetastoreOrc,true) (spark.submit.deployMode,client) (spark.sql.orc.char.enabled,true) (spark.master,yarn) (spark.authenticate.enableSaslEncryption,true) (spark.history.fs.cleaner.interval ,7d) (spark.authenticate,true) (spark.history.fs.cleaner.maxAge,90d) (spark.history.ui.acls.enable,true) (spark.acls.enable,true) (spark.history. provider,org.apache.spark.deploy.history.FsHistoryProvider) (spark.executor.extraLibraryPath,/usr/hdp/current/hadoop-client/lib/native:/usr/hdp/current/hadoop-client/lib/native /Linux-amd64-64) (spark.executor.memory,2g) (spark.io.encryption.enabled,true) (spark.shuffle.file.buffer,1m) (spark.eventLog.dir,hdfs:/// spark2-history/) (spark.ssl.protocol,TLS) (spark.dynamicAllocation.enabled,true) (spark.executor.cores,3) (spark.history.ui.port,18081) (spark.sql.statistics. fallBackToHdfs,true) (spark.repl.local.jars,file:///opt/folder/postgresql-42.2.2.jar,file:///opt/folder/ojdbc6.jar) (spark.ssl.trustStorePassword,*********(已编辑)) (spark.history.ui.admin.acls,) (spark.history.kerberos.enabled,true) (spark.shuffle.io.backLog,8192) (spark.sql.orc.impl,native) (spark. ssl.enabledAlgorithms,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA) (spark.sql.orc.enabled,true) (spark.yarn.dist.jars,file:///opt/folder/postgresql-42.2.2.jar,file:///选择/文件夹/ojdbc6.jar) (spark.sql.hive.metastore.version,3.0)TLS_RSA_WITH_AES_256_CBC_SHA) (spark.sql.orc.enabled,true) (spark.yarn.dist.jars,file:///opt/folder/postgresql-42.2.2.jar,file:///opt/folder/ojdbc6. jar) (spark.sql.hive.metastore.version,3.0)TLS_RSA_WITH_AES_256_CBC_SHA) (spark.sql.orc.enabled,true) (spark.yarn.dist.jars,file:///opt/folder/postgresql-42.2.2.jar,file:///opt/folder/ojdbc6. jar) (spark.sql.hive.metastore.version,3.0)

并来自 hive-site.xml:

代码如下:

火花提交:

0 投票
3 回答
791 浏览

hive - 当底层 HDFS 集群不再存在时如何从配置单元元存储中删除数据库

我正在使用临时 GCP Dataproc 集群(Apache Spark 2.2.1、Apache Hadoop 2.8.4 和 Apache Hive 2.1.1)。这些集群都指向同一个 Hive Metastore(托管在 Google Cloud SQL 实例上)。

我在一个这样的集群上创建了一个数据库,并将其位置设置为“HDFS:///database_name”,如下所示:

my-first-ephemeral-cluster然后被删除,并随之删除了相关的 HDFS。

在所有后续集群上,此后一直弹出以下错误:

这可能是因为 Hive Metastore 现在有一个不存在的位置条目。尝试删除损坏的数据库也是不行的:

原因是主机my-first-ephemeral-cluster-m不再有效。由于更改数据库的位置不是我正在使用的配置单元版本中的选项,因此我需要不同的解决方法来删除此数据库。

0 投票
2 回答
1943 浏览

apache-spark - 无法将表保存到配置单元元存储,HDP 3.0

我不能再使用 Metastore 将表保存到配置单元数据库。我在使用 spark 中看到表,spark.sql但在 hive 数据库中看不到相同的表。我试过了,但它没有将表存储到蜂巢中。如何配置 hive 元存储?火花版本是 2.3.1。

如果您想了解更多详细信息,请发表评论。

@catpaws 回答后更新:HDP 3.0 及更高版本,Hive 和 Spark 使用独立目录

将表保存到 spark 目录:

VS

将表保存到 hive 目录:

正如您以这种方式看到的那样,Hive 仓库连接器对于具有数百列的数据框非常不切实际。有没有办法将大型数据帧保存到 Hive?

0 投票
1 回答
344 浏览

hive - 我们可以预测 Hive SELECT * 查询结果的顺序吗?

SELECT * query (no ORDER BY)如果使用相同的 DBMS 作为 Metastore ,a 的结果顺序是否可能始终相同?

因此,只要 MySQL 用作 Metastore,SELECT *;查询结果的顺序将始终相同。如果使用 Postgres,相同数据上的顺序将始终相同,但与使用 MySQL 时不同。我说的是相同的数据。

也许这一切都归结为结果的默认顺序是什么以及为什么 MySQL 和 Postgres Metastore 不同的问题。