xmlaccessortype xml中添加属性_CDP中Hive Metastore介绍

Hive Metastore概述Hive Metastore(HMS)是一项单独的服务,不是Hive的一部分,甚至不必位于同一集群上。HMS将元数据存储在Hive、Impala、Spark和其他组件的后端。Beeline、Hue、JDBC和Impala Shell客户端通过thrift或JDBC向HiveServer发出请求。冗余的HiveServer是被动的,可提供故障转移服务。HiveServer实例将数据读取/写入HMS。后端的一个或多个HMS实例可以与其他服务(例如Ranger)对话。冗余HMS是被动的,可提供故障转移服务。物理数据驻留在后端RDBMS中,一个用于HMS,一个用于安全服务,例如Ranger。在任何给定时间,所有连接都会路由到单个RDBMS服务。HMS通过thrift与NameNode进行对话,并充当HDFS的客户端。 98f73461369164e0eb85fcce50812edc.png HMS表存储 您需要了解在运行CREATE TABLE语句或将表迁移到Cloudera Data Platform时HMS如何存储Hive表。 语句的成功或失败,结果表类型和表位置取决于许多因素。 HMS表转换HMS包含以下有关您创建的表的Hive元数据:

• 表定义

• 列名

• 数据类型

• 集中的Schema存储库中的注释

在CREATE TABLE语句中使用EXTERNAL关键字时,HMS将表存储为外部表。当您省略EXTERNAL关键字并创建托管表或从托管表摄取数据时,HMS可能会将表转换为外部表,否则表创建可能失败,具体取决于表属性。影响表转换的重要表属性是ACID或Non-ACID表类型:• 非 ACID表属性不包含任何设置为true的与ACID相关的属性。例如,该表不包含此类属性transactional = true或insert_only = true• ACID表属性确实包含一个或多个设置为true的ACID属性。• Full-ACID表属性包含transactional = true但 不包含insert_only = true• 仅插入的 ACID表属性包含insert_only = true。以下矩阵显示了表类型以及是否支持location属性。
ACID受管位置属性注释行动
非ACID迁移到CDP,例如从HDP或CDH集群。表存储为外部
非ACID,ACID,完整ACID,仅插入ACID没有表位置为空表存储在子目录中 metastore.warehouse.external.dir
HMS检测用于与HMS进行交互的客户端类型,例如Hive或Spark,并将客户端的功能与表要求进行比较。HMS根据比较结果执行以下操作:
表要求客户符合要求托管表ACID表类型行动
客户端可以写入任何类型的ACID表没有创建表失败
客户端可以写入完整的ACID表没有insert_only = true创建表失败
客户端可以写入仅插入的ACID表没有insert_only = true创建表失败
例如,如果Spark客户端不具备所需的功能,则会出现以下类型的错误消息:
Spark has no access to table `mytable`. Clients can access this table only ifthey have the following capabilities: CONNECTORREAD,HIVEFULLACIDREAD, HIVEFULLACIDWRITE,HIVEMANAGESTATS, HIVECACHEINVALIDATE, . . .
配置HMS属性以进行授权 作为管理员,如果您对查询授权有任何疑问,则可能需要通过Ranger设置Apache Hive Metastore(HMS)授权。 例如,如果您配置了Hive查询的基于存储的授权,然后又想通过Ranger切换到授权,则必须配置HMS属性。要集成HMS API和Ranger以授权查询,您需要使用Cloudera Manager将以下HMS属性和值添加到hive-site.xml中:hive.metastore.pre.event.listeners的值为: org .apache .hadoop .hive .ql .security .authorization .plugin .metastore .HiveMetaStoreAuthorizer 配置 HMS 写入。 hive.security.authenticator.manager 的值为: org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator 使用 Cloudera Manager 安全阀将属性添加到 hive-site.xml 。1) 在Cloudera Manager中,要配置Hive Metastore属性,请单击集群> Hive-1 >配置。2) 搜索Hive-site。在hive-site.xml的Hive Metastore Server高级配置代码段(安全阀)中,单击 +。 d81e5051feb598cda24689b07778c884.png3) 添加属性名称和值。4) 重复步骤以添加其他属性。5) 保存更改。 过滤HMS结果编写用于从Hive筛选数据的API后,您需要知道如何设置、启用和禁用API。您需要使用Cloudera Manager在 hive-site.xml 的安全阀中添加一些Hive Metastore(HMS)属性 。HMS可以对读取操作返回的数据执行服务器端过滤。默认情况下启用筛选,该筛选根据用户身份显示语句的结果,例如SHOW TABLES或SHOW DATABASES。您可以通过设置布尔标志和挂钩来禁用过滤。该钩子标识实现过滤的类名。您在 hive-site.xml 中为HMS API-Ranger集成添加了以下属性和值 : metastore.server.filter.enabled 值: true (进行过滤)或 false (不进行过滤) metastore.filter.hook 值: org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.HiveMetaStoreAuthorizer如上一节所述添加属性。 设置Metastore数据库如果您具有本地集群,则需要知道如何为Hive Metastore(HMS)设置后端数据库。设置包括安装受支持的数据库、配置属性、指定metastore位置以及可选的连接参数。在CDP私有云基础中,您需要为Hive Metastore(HMS)安装受支持的数据库以存储元数据。您可以通过修改配置Hive Metastore到 hive-site.xml 。您可以使用Cloudera Manager安全阀功能,而不要  hive set key=value在命令行上使用。 调优Metastore通常,您需要限制与Hive Metastore的并发连接。随着打开的连接数量的增加,延迟也会增加。后端数据库问题,Hive使用不当(例如极其复杂的查询,连接泄漏)和其他因素可能会影响性能。 CDP私有云基础中的常规Metastore调优尝试进行以下更改以调整HMS性能:• 购买SSD用于一个或多个HMS。• Cloudera建议单个查询访问不超过10,000个表分区。如果查询的表进行了联接,请计算跨所有表访问的合并分区数。• 调整后端(RDBMS)。HiveServer连接到HMS,只有HMS连接到RDBMS。后端花费的时间越长,HMS需要更多的内存来响应相同的请求。限制后端数据库中的连接数。MySQL:例如,在/etc/my.cnf中:
[mysqld]       datadir=/var/lib/mysql       max_connections=8192       . . .
MariaDB:例如,在/etc/systemd/system/mariadb.service.d/limits.conf中:
[Service]       LimitNOFILE=24000       . . .
使用默认的 thrift 属性( 8K ):
hive.server2.async.exec.threads 8192hive.server2.async.exec.wait.queue.size 8192hive.server2.thrift.max.worker.threads 8192
为您的应用程序设置datanucleus.connectionPool.maxPoolSize。例如,如果poolSize = 100,具有3个HMS实例(一个专门用于压缩),并且每个服务器具有4个池,则可以容纳1200个连接。 来源: https://docs.cloudera.com/cdp-private-cloud-base/7.1.3/hive-hms-overview/topics/hive-hms-introduction.html https://docs.cloudera.com/cdp-private-cloud-base/7.1.3/hive-metastore/topics/hive-hms-table-storage.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值