【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

相关文章

使用Java发送邮件到QQ邮箱的完整指南

《使用Java发送邮件到QQ邮箱的完整指南》在现代软件开发中,邮件发送功能是一个常见的需求,无论是用户注册验证、密码重置,还是系统通知,邮件都是一种重要的通信方式,本文将详细介绍如何使用Java编写程... 目录引言1. 准备工作1.1 获取QQ邮箱的SMTP授权码1.2 添加JavaMail依赖2. 实现

Vue中动态权限到按钮的完整实现方案详解

《Vue中动态权限到按钮的完整实现方案详解》这篇文章主要为大家详细介绍了Vue如何在现有方案的基础上加入对路由的增、删、改、查权限控制,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、数据库设计扩展1.1 修改路由表(routes)1.2 修改角色与路由权限表(role_routes)二、后端接口设计

mysql线上查询之前要性能调优的技巧及示例

《mysql线上查询之前要性能调优的技巧及示例》文章介绍了查询优化的几种方法,包括使用索引、避免不必要的列和行、有效的JOIN策略、子查询和派生表的优化、查询提示和优化器提示等,这些方法可以帮助提高数... 目录避免不必要的列和行使用有效的JOIN策略使用子查询和派生表时要小心使用查询提示和优化器提示其他常

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API