前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >hive读写ES集群及Role权限控制

hive读写ES集群及Role权限控制

原创
作者头像
沈小翊
发布2023-11-15 19:53:15
2180
发布2023-11-15 19:53:15
举报
文章被收录于专栏:大数据生态大数据生态

hive读写ES

1.下载elasticsearch-hadoop-hive-xxx.jar包,版本要与ES集群对应

代码语言:javascript
复制
add jar hdfs:///user/es/jars/elasticsearch-hadoop-hive-7.14.2.jar; 

create external table hive (id string)
    STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
    location '/user/es/hive_test'
    TBLPROPERTIES('es.nodes' = '172.16.48.53',
            'es.port'='9200',
            'es.index.auto.create' = 'true',
            'es.resource' ='hive/_doc',
            'es.net.http.auth.user'='elastic',
            'es.net.http.auth.pass'='passwd',
            'es.read.metadata' = 'true',
            'es.mapping.names' = 'id',
            'es.nodes.wan.only'='true',
            'es.index.read.missing.as.empty'='true',
            'es.input.use.sliced.partitions'='false',
            'es.input.max.docs.per.partition'='100000000'
);

select * from hive_test;

insert into table hive_test values('1','emr_ip','request','success');

问题:可以建表,查询,但是数据查询为空

原因:建表根本没关联到ES,所以查询数据为空。es.resource指定关联的ES索引名称

'es.resource' ='hive/_doc' 在ES源端创建hive index即成功关联

ES Roles权限控制hive读写

Roles是ES中具有若干种权限的角色,用于分配给某类用户固定权限。例如对于营销人员用户分配的Roles具有集群,索引级别上的读权限但没有写权限,管理权限,所有营销员工用户都被分配此Role,精确管控用户权限集。

读权限控制

ES具有集群,索引,字段,文档4种级别读权限。

1. hive绑定重新建表,用户更换为test

2. 配置Role,拥有集群的monitor权限,test和.ds-test-xxxx索引的读权限,没有hive 索引的任何权限。将Role分配给test用户

3. 查询hive表发现没有权限,符合预期

4. 为test的Role添加hive索引的读权限(需要包括元数据读权限)

5. 此时成功读取数据

6.没有delete权限但是删除表成功,原因是外部表仅有元数据

7. 重新建表,只给name的读权限,id无法读取符合预期

8. 设置仅授权访问值为1的name字段

写权限控制

1. 向hive表插入数据报错,由于没有写权限,符合预期

2. 写数据需要添加索引的write,create_doc和maintenance权限

注:不添加maintenance权限也能写入成功,但会写入多条相同数据。

写数据场景下权限无法细粒度到字段级别,只要有写权限即可写入,无论有没有字段访问权限。

Cluster privileges

1. 没有任何集群权限时,不影响test用户索引维度的权限。

2. monitor权限决定集群状态的读权限,hive读数据需要此权限。

3. manage_security决定所有与安全相关的操作,例如对用户和角色的 CRUD 操作以及缓存清除。

其他权限控制见Security privileges | Elasticsearch Guide [7.9] | Elastic

Space介绍

Space是ES中的相互独立的空间,用户可创建含有不同功能的Space供不同用户使用,例如提供给营销人员使用的Space只需有DashBoard, Monitor功能,他们无法访问含有开发,管理配置功能的Space。

下面是管理员用户使用的Default Space和test用户使用的test Space(管理员自定义)

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • hive读写ES
  • ES Roles权限控制hive读写
    • 读权限控制
      • 写权限控制
        • Cluster privileges
          • Space介绍
          相关产品与服务
          Elasticsearch Service
          腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档