问题标签 [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.
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 中显示分区的输出。
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,则问题将得到解决。
我很感激,指点和建议。
hive - 如何使用 NotificationListener 在 Hive 中获取 CREATE/DROP/ALTER 表事件的通知
我是使用 Hive 的新手。DbNotificationListener
每当发生与 CREATE/DROP/ALTER 相关的任何数据库事件时,有人可以协助如何在 Hive 中获取通知。
我有以下与步骤相关的问题:
- 我需要使用哪个 JAR 文件来
NotificationListener
上课?可以是 Hive 元存储的 Hcatalog JAR 吗? - 我应该添加这个 JAR 文件的类路径是什么?
- 我需要输入哪个条目
hive-Site.xml
? - 它会在元存储日志中写入事件吗?
提前致谢。
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]]
apache - 与 Atlas HiveMetastoreBridge 代码相关的几个问题
我正在浏览 Apache Atlas 中的 HiveMetastoreBridge 代码并且遇到了一些疑问。如果这些问题非常幼稚,请原谅我。
为什么我们要在 findEntity 方法中清除关系?
添加引用实体到底在后台做什么?为了在 toTableEntity 方法中明确,我们将相关实体的 ObjectId 添加为属性,并调用 AtlasEntity 的 addReferredEntity 方法。
在 registerInstance 方法中,为什么我们要在 else if 语句中创建从第一个实体到其他引用实体的引用。何时会创建多个实体,为什么第一个实体会引用其他实体?
在 importTable 方法中,为什么在创建 AtlasEntity processInst 之后我们再次创建 AtlasEntitiesWithExtInfo createTableProcess 并向其添加流程实体和路径实体?为什么不是表实体呢?
amazon-web-services - 远程 Hive 元存储:Spark 连接到本地安装而不是远程元存储
我已经在运行 MySQL 的 RDS 上配置了远程 Hive 元存储。EMR 创建良好并且能够连接到 3306 端口上的 RDS 实例,但是当我创建一些表时,它会在default
数据库中创建它。
为了验证这一点,我检查了 Hive CLI 连接到什么,令我惊讶的是,即使它连接到本地数据库并仅显示default
数据库。
我已经设置了正确的 javax.jdo.option.* properties ConnectionURL
, ConnectionDriverName
, ConnectionUserName
, ConnectionPassword
inhive-site.xml
知道我可能错在哪里吗?
apache-spark - 带有 Hive 元存储 3.1.0 的 Apache Spark 2.3.1
我们已将 HDP 集群升级到 3.1.1.3.0.1.0-187 并发现:
- Hive 有一个新的元存储位置
- 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:
代码如下:
火花提交:
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
不再有效。由于更改数据库的位置不是我正在使用的配置单元版本中的选项,因此我需要不同的解决方法来删除此数据库。
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?
hive - 我们可以预测 Hive SELECT * 查询结果的顺序吗?
SELECT * query (no ORDER BY)
如果使用相同的 DBMS 作为 Metastore ,a 的结果顺序是否可能始终相同?
因此,只要 MySQL 用作 Metastore,SELECT *;
查询结果的顺序将始终相同。如果使用 Postgres,相同数据上的顺序将始终相同,但与使用 MySQL 时不同。我说的是相同的数据。
也许这一切都归结为结果的默认顺序是什么以及为什么 MySQL 和 Postgres Metastore 不同的问题。