【CDH数仓】Day02:业务数仓搭建、Kerberos安全认证+Sentry权限管理、集群性能测试及资源管理、邮件报警、数据备份、节点添加删除、CDH的卸载...

本文主要是介绍【CDH数仓】Day02:业务数仓搭建、Kerberos安全认证+Sentry权限管理、集群性能测试及资源管理、邮件报警、数据备份、节点添加删除、CDH的卸载...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

五、业务数仓搭建

1、业务数据生成

建库建表gmall

需求:生成日期2019年2月10日数据、订单1000个、用户200个、商品sku300个、删除原始数据。

CALL init_data('2019-02-10',1000,200,300,TRUE);

2、业务数据导入数仓

编写Sqoop定时导入脚本(目录中导入MySQL)

3、ODS层--原始数据层

订单表、订单详情表、商品表、用户表、商品一二三级分类表、支付流水表

编写ODS层数据导入脚本ods_db.sh(目录的指定日期数据导入指定分区)

4、DWD层--活跃设备

对ODS层数据进行判空过滤。对商品分类表进行维度退化(降维)

商品表(增加分类)进行维度退化

  编写DWD层数据导入脚本

5、用户行为宽表

drop table if exists dws_user_action;
create external table dws_user_action 
(   user_id          string      comment '用户 id',order_count     bigint      comment '下单次数 ',order_amount    decimal(16,2)  comment '下单金额 ',payment_count   bigint      comment '支付次数',payment_amount  decimal(16,2) comment '支付金额 '
) COMMENT '每日用户行为宽表'
PARTITIONED BY (`dt` string)
stored as parquet
location '/warehouse/gmall/dws/dws_user_action/'
tblproperties ("parquet.compression"="snappy");

编写数据宽表导入脚本:多个sql组合

6、ADS层(需求:GMV成交总额)

同上

7、Oozie基于Hue实现GMV指标全流程调度

在Hue中创建Oozie任务GMV

生成业务数据

oozie调度脚本上传到HDFS

添加保存并执行workflow

并可以使用hue查看workflow执行进度

MySQL中查看宽表中数据

六、数仓之即席查询数仓搭建

1、Impala安装(对HDFS、Hbase数据的高性能、低延迟的交互式SQL查询功能,基于hive,无需写入磁盘与转换成MR)

添加Impala服务、角色分配、配置、启动

配置Hue支持Impala

Impala基于Hue查询

比较与hive的查询速度

七、安全之Kerberos安全认证

1、Kerberos概述

对个人通信以安全的手段进行身份认证

一些概念需要了解:
1)KDC:密钥分发中心,负责管理发放票据,记录授权。
2)Realm:Kerberos管理领域的标识。
3)principal:当每添加一个用户或服务的时候都需要向kdc添加一条principal,principl的形式为:主名称/实例名@领域名。
4)主名称:主名称可以是用户名或服务名,表示是用于提供各种网络服务(如hdfs,yarn,hive)的主体。
5)实例名:实例名简单理解为主机名。

 2、Kerberos安装

相关软件的安装:yum install -y krb5-server krb5-workstation krb5-libs

#查看结果
[root@hadoop102 ~]# rpm -qa | grep krb5
krb5-devel-1.15.1-37.el7_7.2.x86_64
krb5-server-1.15.1-37.el7_7.2.x86_64
krb5-workstation-1.15.1-37.el7_7.2.x86_64
krb5-libs-1.15.1-37.el7_7.2.x86_64

配置文件kdc.conf和krb5.conf , kdc配置只是需要Server服务节点配置

配置端口号、主机名等信息

文件同步xsync /etc/krb5.conf

生成Kerberos数据库kdb5_util create -s  : kadm5.acl  kdc.conf  principal  principal.kadm5  principal.kadm5.lock  principal.ok

赋予Kerberos管理员所有权限kadm5.acl:  */admin@HADOOP.COM      *

启动服务、创建管理员实例、各机器上使用kinit管理员验证(kinit admin/admin)

3、Kerberos数据库操作

登录Kerberos数据库:kadmin.local 

创建Kerberos主体kadmin.local -q "addprinc atguigu/atguigu"并修改密码kadmin.local -q "cpw atguigu/atguigu"

查看所有主体kadmin.local -q "list_principals"

4、Kerberos主体认证

密码验证/秘钥文件验证

keytab密钥文件认证

生成主体admin/admin的keytab文件到指定目录/root/admin.keytab

认证:kinit -kt /root/atguigu.keytab atguigu/atguigu

查看与销毁凭证:klist  kdestroy

5、CDH启用Kerberos安全认证

为CM创建管理员主体/实例:addprinc cloudera-scm/admin

启用Kerberos,全选并填写配置

重启集群并查看主体:kadmin.local -q "list_principals"

6、Kerberos安全环境实操

系统与系统(flume-kafka)之间的通讯,以及用户与系统(user-hdfs)之间的通讯都需要先进行安全认证

用户访问服务认证

创建用户主体/实例,并认证kinit hive/hive@HADOOP.COM

可以实现hdfs访问与hive查询

配置kafka实现消费Kafka topic

HDFS WebUI浏览器认证

用户行为数仓:日志采集Flume与消费Kafka Flume配置

八、安全之Sentry权限管理

1、Sentry概述

kerberos主要负责平台用户的用户认证,sentry则负责数据的权限管理

 给的不同角色赋予读写权限

2、Sentry安装部署

添加服务、自定义角色分配、配置数据库连接

3、Sentry与Hive/Impala集成

修改配置参数:取消HiveServer2用户模拟、确保hive用户能够提交MR任务

配置Hive使用Sentry

配置Impala使用Sentry

配置HDFS权限与Sentry同步

4、Sentry授权实战

配置HUE支持Sentry

Sentry实战之命令行:添加用户、创建Role、赋予权限

九、测试之集群性能测试

1、DFSIO测试

读写性能测试

2、TeraSort测试:对数据进行排序

十、测试之集群资源管理

资源KPI指标,以及丰富的可视化的资源分配、运维和监控界面

1、动态资源池

Yarn默认有三种调度器——FIFO、Capacity以及Fair Scheduler

CM对公平的进行配置:资源池、计划模式

2、静态资源池

Linux 容器工具,即 LXC,可以提供轻量级的虚拟化,以便隔离进程和资源

保证不同应用、不同任务之间的资源使用独立性

集成了可视化的界面,可以对 CPU、IO、内存等资源进行静态的隔离

十一、测试之邮件报警

1、点击Cloudera Management Service

2、填写邮箱配置

3、重启Cloudera Management Service

4、测试发送邮件

十二、测试之数据备份

1、NameNode元数据备份

选择活动的NameNode、进入安全模式、选择保存Namespace、进入活动namenode所在服务器备份、备份MySQL元数据

备份命令:mysqldump -u root -p -A > /root/mysql_back.dump

十三、集群管理之节点的添加和删除

1、安装

安装jdk、cm

2、添加节点向导

安装所需的组件

3、删除节点

Begin Maintenance进行退役

停止cloudera-scm-agent服务

十四、集群管理之卸载CDH

1、停止所有服务

停止CMservice

2、停用并移除Parcels

对我们安装的parcels,依次执行停用、仅限停用状态、从主机删除

3、删除集群

4、卸载Cloudera Manager Server

5、卸载Cloudera Manager Agent(所有Agent节点)

6、删除用户数据(所有节点)

7、停止并移除数据库

#停止服务
[root@hadoop102 /]# systemctl stop mysqld
#卸载数据库
[root@hadoop102 /]# yum -y remove mysql*

 keberos主要负责平台用户的用户认证,sentry则负责数据的权限管理

这篇关于【CDH数仓】Day02:业务数仓搭建、Kerberos安全认证+Sentry权限管理、集群性能测试及资源管理、邮件报警、数据备份、节点添加删除、CDH的卸载...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/642707

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置