【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

相关文章

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客

浅析Rust多线程中如何安全的使用变量

《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.