【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则负责数据的权限管理
本文来自博客园,作者:哥们要飞,转载请注明原文链接:https://www.cnblogs.com/liujinhui/p/15635478.html