问题标签 [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 回答
1781 浏览

mysql - 未使用 Hive MySQL 元存储中的 Spark 构建

我正在使用 Apache Spark 2.1.1,并将以下 hive-site.xml 放在$SPARK_HOME/conf文件夹中:

当我启动 thrift 服务器时,metastore 模式是在我的 MySQL 数据库上创建的,但没有使用,而是使用了 Derby。

在 thrift 服务器日志文件上找不到任何错误,唯一引起我注意的是它首先尝试使用 MySQL(INFO MetaStoreDirectSql: Using direct SQL, underlying DB is MYSQL),但随后没有任何错误,而是使用 Derby(INFO MetaStoreDirectSql: Using direct SQL, underlying DB is DERBY)。这是 thrift 服务器日志https://www.dropbox.com/s/rxfwgjm9bdccaju/spark-root-org.apache.spark.sql.hive.thriftserver.HiveThriftServer2-1-s-master.value-iq.com。出?dl=0

我的系统上没有安装 Hive,我只是假装使用 Apache Spark 的内置 Hive。

我正在使用mysql-connector-java-5.1.23-bin.jar位于$SPARK_HOME/jars文件夹中的哪个。

0 投票
1 回答
1900 浏览

hadoop - 使用 Spark 2.2.0 从 Hive Metastore 2.x 读取

在 2.2.0 版本之前,Spark 无法与 Hive 2.X 通信,所以我被困在使用 Hive 1 + Spark 1/2 上。对于我在这两个方面读到的内容:

https://issues.apache.org/jira/browse/SPARK-18112 https://spark.apache.org/releases/spark-release-2-2-0.html

现在可以使用 Spark 2 + Hive 2,但我仍然面临一些问题。使用预编译的 Spark-without-hadoop,在访问临时配置单元表时出现以下错误:

线程“main”java.lang.IllegalArgumentException 中的异常:无法使用 Hive 支持实例化 SparkSession,因为未找到 Hive 类。在 io.bigdatabenchmark.v2.queries.q05.LogisticRegression$.main(LogisticRegression.scala:87) 在 io.bigdatabenchmark.v2 的 org.apache.spark.sql.SparkSession$Builder.enableHiveSupport(SparkSession.scala:845)。 query.q05.LogisticRegression.main(LogisticRegression.scala) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl. java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.

我通常通过使用选项“-Phive -Phive-thriftserver”编译我自己的 Spark 版本来解决此问题,但默认情况下,Spark 将使用 Hive 1.2.1 绑定构建,如文档中所示。

因此,Spark 2.2.0 似乎解决了 Spark 2 -> Hive 2 绑定的问题,但我找不到合适的方法来编译它,以便它可以访问具有模式 2.x 的元存储。

谢谢您的帮助!

0 投票
0 回答
897 浏览

apache-spark - 从 Hive Metastore 加载的 Spark 2.1 表具有空值

我正在尝试将表定义从一个 Hive 元存储迁移到另一个。

源集群具有:

  • 火花 1.6.0
  • Hive 1.1.0 (cdh)
  • 高密度文件系统

目标集群是一个 EMR 集群,具有:

  • 火花 2.1.1
  • 蜂巢 2.1.1
  • S3

要迁移表,我执行了以下操作:

  1. 将数据从 HDFS 复制到 S3
  2. SHOW CREATE TABLE my_table;在源集群中运行
  3. 修改返回的创建查询——LOCATION从HDFS路径改为S3路径
  4. 在目标集群的 Hive 上运行修改后的查询
  5. 运行SELECT * FROM my_table;。这将返回 0 行(预期)
  6. 运行MSCK REPAIR TABLE my_table;。这会按预期通过并在元存储中注册分区。
  7. 运行SELECT * FROM my_table LIMIT 10;- 10 行返回正确的值
  8. 在目标集群上,从配置为使用 Hive Metastore 的 Spark 运行以下代码:spark.sql("SELECT * FROM my_table limit 10").show()- 这将返回空值!

Spark SQL 查询返回的结果包含所有正确的列和正确的行数,但所有值均为空。

为了让 Spark 正确加载值,我可以将以下属性添加到TBLPROPERTIES创建查询的部分:

这个问题的另一面是,在源集群中,Spark 读取表值没有任何问题,也没有额外的TBLPROPERTIES.

为什么会这样?如何修复?

0 投票
1 回答
1241 浏览

java - 无法在 Hive 中实例化 metadata.SessionHiveMetaStoreClient(Ubuntu 16.04)

我正在尝试在 Ubuntu 16.04 上使用 mysql 设置 hive 2.3.0。我已经安装了 Hadoop,它运行良好。我能够进入配置单元控制台,但是没有执行任何命令,而是给我一个错误:

SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: 无法实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

这是我的hive-site.xml

我还使用链接在 mysql 中创建了元存储数据库。

错误图像

0 投票
1 回答
603 浏览

mysql - 停止上下文后如何强制关闭与 mysql 的 Spark Hive 元存储连接?

我正在使用 Spark 查询 Hive,然后进行转换。我的 Scala 应用程序创建了多个 Spark 应用程序。只有在关闭前一个 Spark App 的 SparkSession 和 Spark Context 后,才会创建一个新的 Spark 应用。

但是,在停止 sc 和 spark 时,以某种方式与 Hive Metastore (Mysql) 的连接没有被正确破坏。对于每一个 Spark 应用程序,我都可以看到大约 5 个 Mysql 连接正在创建(旧连接仍然处于活动状态!)。最终,Mysql 在打开 150 个连接后开始拒绝新连接。如何强制 spark 关闭与 Mysql 的 Hive Metastore 连接(在 spark.stop() 和 sc.stop() 之后)?

注意:我使用的是 Spark 2.1.1。我正在使用 Spark 的 Thriftserver 而不是 HiveServer。所以,我认为我没有使用过 Hive Metastore 服务。

0 投票
0 回答
682 浏览

mysql - Hive Metastore 服务因 MySQL 数据库而失败

这是hive metastore错误日志,我autoReconnect=true在JDBC url中试过,没有效果。你有什么想法吗?

0 投票
1 回答
392 浏览

mysql - 在 Hive Metastore db 中,如何获取 alter table 的 update_time

我已经像这样使用“alter table”更改了 Hive 中的表。

TBLSHive Metastore 数据库的表中,它只记录了该表的创建时间。如何获取alter table的更新时间。

0 投票
1 回答
1647 浏览

apache-spark - Spark 和 Metastore 的关系

我知道 Hive Metastore 用于存储我们在 HIVE 中创建的表的元数据,但为什么 spark 需要 Metastore,Metastore 和 Spark 之间的默认关系是什么

spark SQL 是否正在使用 metasore,如果是的话,这是用来存储数据帧元数据的吗?

为什么即使 iam 不使用任何 sql 库,默认情况下 spark 也会检查元存储连接?

0 投票
2 回答
1161 浏览

hadoop - 无法更改或删除大的 Imapa 分区表 - 原因:MetaException:执行时超时

我有几个具有超过 50k 分区的impala 分区表DROP,除了 Hive Metastore 操作之外它工作得很好,比如和ALTER... RENAME,我面临这个错误消息:

查询: drop table cars

错误: ImpalaRuntimeException:将“dropTable”RPC 发送到 Hive Metastore 时出错:原因:MetaException:执行方法时超时:drop_table_with_environment_context;600003ms 超过 600000ms

不知道是不是内存问题?或者这是正常的,我应该调整超时值..?如果是,是哪一个?

任何帮助,将不胜感激。

0 投票
0 回答
156 浏览

hadoop - DDL(ALTER..) 和 DML(SELECT..) Impala 操作之间的冲突 - 在 120000 毫秒内未收到丢失的表

当我同时执行任何 2 个查询时:

  1. 更改(删除)表 1 ..
  2. SELECT * FROM table2 .. / INSERT..

Impala 日志文件:

W0929 09:40:11.309067 28378 Frontend.java:917]在 120000 毫秒内未收到缺失的表。将重试加载请求。

W0929 09:42:11.316686 28378 Frontend.java:917]在 120000 毫秒内未收到缺失的表。将重试加载请求。

W0929 09:44:11.323714 28378 Frontend.java:917]在 120000 毫秒内未收到缺失的表。将重试加载请求。

W0929 09:46:11.330497 28378 Frontend.java:917]在 120000 毫秒内未收到缺失的表。将重试加载请求。

W0929 09:48:11.337724 28378 Frontend.java:917]在 120000 毫秒内未收到缺失的表。将重试加载请求。

注意:我使用的是 2017 年 6 月 29 日星期四 04:17:31 PDT 构建的 Impala Shell v2.9.0-cdh5.12.0 (03c6ddb)

提前致谢。