问题标签 [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 投票
1 回答
466 浏览

sql - 是否可以更改 Hive 中分区表上的列的元数据?

这是我之前提出的问题的扩展:是否可以在 HIVE 中更改分区元数据?

我们正在探索更改表上的元数据的想法,而不是对 SELECT 语句中的数据执行 CAST 操作。更改 MySQL 元数据中的元数据非常简单。但是,是否可以将元数据更改应用于分区表上的列(它们是每天的)?注意:列本身不是分区列。这是一个简单的 ID 字段,正在从 STRING 更改为 BIGINT。

否则,我们可能会遇到当前和未来数据为 BIGINT 类型而历史为 STRING 的情况。

问题:是否可以更改 Hive 中的分区元数据?如果是,如何?

注意:我将此作为一个单独的问题提出,因为原始答案似乎是针对分区表上的列,该列也是分区列。所以,我不想搅浑水。

更新:

我运行了ALTER TABLE .. CHANGE COLUMN ... CASCADE命令,但出现以下错误:

处理语句时出错:FAILED:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。不允许更改具有外部架构的 Avro 存储表的架构。考虑从表属性中删除 avro.schema.literal 或 avro.schema.url。

元数据存储在单独的 avro 文件中。我可以确认更新的元数据在 avro 文件中,但不在单个分区文件中。

注意:该表存储为EXTERNAL。

0 投票
0 回答
334 浏览

sql - 是否可以更改由 AVRO 模式文件定义的 EXTERNAL 表上现有列的元数据?

这是我之前提出的问题的扩展:是否可以更改 Hive 中分区表上列的元数据?

问题:是否可以更改由 AVRO 模式文件定义的 EXTERNAL 表上现有列的元数据?

我需要更改一个既分区又存储为EXTERNAL的表上的列元数据。列本身不是分区列。元数据存储在单独的 AVRO 文件中。我可以确认更新的元数据在 AVRO 文件中,但不在单个分区文件中。

为了更改分区文件中的元数据,我运行了ALTER TABLE TableName CHANGE COLUMN ColumnName ColumnName BIGINT CASCADE;命令,但出现以下错误:

处理语句时出错:FAILED:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。不允许更改具有外部架构的 Avro 存储表的架构。考虑从表属性中删除 avro.schema.literal 或 avro.schema.url。

我继续并成功运行了以下命令:

ALTER TABLE TableName UNSET TBLPROPERTIES ('avro.schema.url');

然后我成功运行了 CHANGE COLUMN 命令:

ALTER TABLE TableName CHANGE COLUMN ColumnName ColumnName BIGINT CASCADE;

当我SELECT在表上执行 a 时,我仍然收到一个错误,表明元数据在元存储中的内容与分区文件中的内容不匹配。我通过打开分区数据文件确认了这一点。因此,似乎 CASCADE 选项不适用于分区。

0 投票
0 回答
1067 浏览

hive - 如何在 Metastore 和 HiveServer2 中创建委托令牌?

我有 HDP3 kerberized 集群。

问题是 - 如何为没有 keytab 的用户创建委托令牌?

对于那个用户,我想从 Metastore 中检索信息并在 Hive 表上运行 SQL 查询。

属性hive.cluster.delegation.token.store.class等于org.apache.hadoop.hive.thrift.ZooKeeperTokenStore

Znodes/hive/cluster/delegationHIVESERVER2/tokens/hive/cluster/delegationMETASTORE/tokens是空的。

我找到了有关如何为 HDFS 生成 DT 的信息。

但是对于 Hive,只有关于如何获取该令牌的信息,这意味着该令牌已经存在。但是如何创建一个?

0 投票
1 回答
2331 浏览

apache-spark - 如何在 Kubernetes 中安装 Hive Metastore?

我正在 Kubernetes 上开展一个项目,在该项目中我使用 Spark SQL 创建表,并且我想将分区和模式添加到 Hive Metastore。但是,我没有找到任何合适的文档来在 Kubernetes 上安装 Hive Metastore。知道我已经安装了 PostGreSQL 数据库有可能吗?如果是的话,你能帮我提供任何官方文件吗?

提前致谢。

0 投票
0 回答
186 浏览

hadoop - Hivemetastore 服务未在 ambari 中启动

我正在启动 Hive 服务,在 Metastore 和 hiveserver2 服务中出现错误。

检查了 mysql-connectore-java.jar

0 投票
1 回答
452 浏览

hadoop - Hive/Impala 列评论在几个字符后被截断

当我查看我们的数据湖中的列注释时(Hadoop,在使用 Hive 或 Impala 创建拼花表期间所做的注释),它们在大约 200 个字符后被删除。

这可能是我们的 hadoop 系统中的全局字符设置或一些 Hive 限制?如果没有,有没有办法在表创建期间设置评论的最大字符串长度?不幸的是,我对系统本身没有管理员访问权限,因此洞察力有限。

0 投票
0 回答
404 浏览

apache-spark - 在 Spark 中读取压缩的 JSON

我将数据作为 utf-8 编码的 json 文件存储在 S3 中,并使用 snappy/lz4 压缩。我想使用 Spark 来读取/处理这些数据,但 Spark 似乎需要文件名后缀( .lz4, .snappy) 才能理解压缩方案。

问题是我无法控制文件的命名方式——它们不会用这个后缀编写。重命名所有此类文件以包含诸如后缀之类的文件也太昂贵了。

spark有什么办法可以正确读取这些JSON文件吗?对于 parquet 编码文件'parquet.compression' = 'snappy',Hive Metastore 中有一个,它似乎解决了 parquet 文件的这个问题。文本文件有类似的东西吗?

0 投票
1 回答
484 浏览

json - Hive table with nested JSON as string value

I am trying to create a table from nested json.
The second layer of the the JSON is very complex and I don't want to keep the schema of that JSON in the table definition with struct column.

I am looking for solution that allow me to keep it as string.

for example:

I was trying to use the following create statement:

Is there any SerDe property/mapping I can use to define the nested object as String?

0 投票
1 回答
175 浏览

hive - 带有 Postgres 后端的 Hive Metastore 3 - 架构

如何使用 Postgres 后端获取配置单元元存储的架构?

我看到 github repo: https://github.com/apache/hive/tree/rel/release-3.1.2/metastore/scripts/upgrade/postgreshas files related to 2.3.0and no further?

0 投票
1 回答
292 浏览

azure - 如何将 Hive 分区和分桶文件中的文件合并为一个大文件?

我正在开发用于大数据处理的 Azure HDInsight 集群。几天前,我通过合并许多文件在 hive 中创建了一个分区和桶表。

由于 Azure 没有提供任何停止集群的选项,因此我不得不删除集群以节省成本。数据独立存储在 Azure 存储帐户中。当我使用相同的存储帐户创建新集群时,我可以使用 HDFS 命令查看数据库和表,但 hive 无法读取该数据库或表,也许 hive 没有关于它的元数据。

我剩下的唯一选择是将所有这些分区和分桶文件合并到一个文件中,然后再次创建表。那么有什么方法可以将该表迁移到另一个数据库或合并它以便更容易迁移?