问题标签 [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.
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
文件夹中的哪个。
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 的元存储。
谢谢您的帮助!
apache-spark - 从 Hive Metastore 加载的 Spark 2.1 表具有空值
我正在尝试将表定义从一个 Hive 元存储迁移到另一个。
源集群具有:
- 火花 1.6.0
- Hive 1.1.0 (cdh)
- 高密度文件系统
目标集群是一个 EMR 集群,具有:
- 火花 2.1.1
- 蜂巢 2.1.1
- S3
要迁移表,我执行了以下操作:
- 将数据从 HDFS 复制到 S3
SHOW CREATE TABLE my_table;
在源集群中运行- 修改返回的创建查询——
LOCATION
从HDFS路径改为S3路径 - 在目标集群的 Hive 上运行修改后的查询
- 运行
SELECT * FROM my_table;
。这将返回 0 行(预期) - 运行
MSCK REPAIR TABLE my_table;
。这会按预期通过并在元存储中注册分区。 - 运行
SELECT * FROM my_table LIMIT 10;
- 10 行返回正确的值 - 在目标集群上,从配置为使用 Hive Metastore 的 Spark 运行以下代码:
spark.sql("SELECT * FROM my_table limit 10").show()
- 这将返回空值!
Spark SQL 查询返回的结果包含所有正确的列和正确的行数,但所有值均为空。
为了让 Spark 正确加载值,我可以将以下属性添加到TBLPROPERTIES
创建查询的部分:
这个问题的另一面是,在源集群中,Spark 读取表值没有任何问题,也没有额外的TBLPROPERTIES
.
为什么会这样?如何修复?
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 中创建了元存储数据库。
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 服务。
mysql - Hive Metastore 服务因 MySQL 数据库而失败
这是hive metastore错误日志,我autoReconnect=true
在JDBC url中试过,没有效果。你有什么想法吗?
mysql - 在 Hive Metastore db 中,如何获取 alter table 的 update_time
我已经像这样使用“alter table”更改了 Hive 中的表。
在TBLS
Hive Metastore 数据库的表中,它只记录了该表的创建时间。如何获取alter table的更新时间。
apache-spark - Spark 和 Metastore 的关系
我知道 Hive Metastore 用于存储我们在 HIVE 中创建的表的元数据,但为什么 spark 需要 Metastore,Metastore 和 Spark 之间的默认关系是什么
spark SQL 是否正在使用 metasore,如果是的话,这是用来存储数据帧元数据的吗?
为什么即使 iam 不使用任何 sql 库,默认情况下 spark 也会检查元存储连接?
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
不知道是不是内存问题?或者这是正常的,我应该调整超时值..?如果是,是哪一个?
任何帮助,将不胜感激。
hadoop - DDL(ALTER..) 和 DML(SELECT..) Impala 操作之间的冲突 - 在 120000 毫秒内未收到丢失的表
当我同时执行任何 2 个查询时:
- 更改(删除)表 1 ..
- 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)
提前致谢。