Kerberos

1.定义

Kerberos是一种计算机网络认证协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。

1)KDC(Key Distribute Center):密钥分发中心,负责存储用户信息,管理发放票据。

2)Realm:Kerberos所管理的一个领域或范围。

3)Rrincipal:可以理解为Kerberos中保存的一个账号,其格式通常如下:primary/instance@realm

4)keytab:密钥文件。

有个疑问 ,对谁认证?是对不同用户吗(root,user1,user2)?

2.认证原理

https://cloud.tencent.com/developer/article/1496451

https://blog.csdn.net/jewes/article/details/20792021

3.基本操作

https://blog.csdn.net/Happy_Sunshine_Boy/article/details/102801386

1 创建管理员用户

2 注册

3 认证

4.HADOOP

配置

https://www.cnblogs.com/yjt1993/p/11769515.html

https://makeling.github.io/bigdata/39395030.html

访问HDFS集群文件

  1. Shell命令

    kinit admin/admin

    klist

  2. web页面

    1.安装Kerberos客户端

    2.配置火狐浏览器

    3.认证

5.HIVE

配置

https://zhuanlan.zhihu.com/p/137424234

客服端访问

  1. beeline

    0.首先需使用hive用户启动hiveserver2

    [root@hadoop102 ~]# sudo -i -u hive hiveserver2

    1.认证,执行以下命令,并按照提示输入密码

    [atguigu@hadoop102 ~]$ kinit atguigu

    2.使用beeline客户端连接hiveserver2

    [atguigu@hadoop102 ~]$ beeline

    3.使用如下url进行连接

    1
    !connect jdbc:hive2://hadoop102:10000/;principal=hive/hadoop102@EXAMPLE.COM
  2. DataGrip客户端

    https://blog.csdn.net/github_39319229/article/details/112692897

    经常连接不稳定,连接失败可以尝试重启DataGrip

6.数仓

此处统一将数仓的全部数据资源的所有者设为hive用户,全流程的每步操作均认证为hive用户。

7.即席查询

8.spark

https://www.cnblogs.com/bainianminguo/p/12639887.html

9 hbase

1 hbase shell kerberos认证错误

1
root:kinit atguigu

参考

https://blog.csdn.net/jewes/article/details/20792021

Zabbix

概述

Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。

基础架构

HBase

0 简介

Apache HBase is the Hadoop database, a distributed, scalable, big data store. HBase is a type of “NoSQL” database.

HBase是一种构建在HDFS之上的分布式、面向列的存储系统。

Hadoop已经有了HDFS和MapReduce,为什么需要HBase

1 Hadoop可以很好地解决大规模数据的离线批量处理问题,但是,受限于HadoopMapReduce编程框架的高延迟数据处理机制,使得Hadoop无法满足大规模数据实时处理应用的需求。

2 传统的通用关系型数据库无法应对在数据规模剧增时导致的系统扩展性和性能问题(分库分表也不能很好解决)。传统关系数据库在数据结构变化时一般需要停机维护;空列浪费存储空间。

HBase与传统的关系数据库的区别

1、数据类型:关系数据库采用关系模型,具有丰富的数据类型和存储方式,HBase则采用了更加简单的数据模型,它把数据存储为未经解释的字符串。

2、数据操作:关系数据库中包含了丰富的操作,其中会涉及复杂的多表连接。HBase操作则不存在复杂的表与表之间的关系,只有简单的插入、查询、删除、清空等,因为HBase在设计上就避免了复杂的表和表之间的关系。

3、存储模式:关系数据库是基于行模式存储的。HBase是基于列存储的,每个列族都由几个文件保存,不同列族的文件是分离的。

4、数据索引:关系数据库通常可以针对不同列构建复杂的多个索引,以提高数据访问性能。HBase只有一个索引——行键,通过巧妙的设计,HBase中的所有访问方法,或者通过行键访问,或者通过行键扫描,从而使得整个系统不会慢下来。

5、数据维护:在关系数据库中,更新操作会用最新的当前值去替换记录中原来的旧值,旧值被覆盖后就不会存在。而在HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧有的版本仍然保留。

6、可伸缩性:关系数据库很难实现横向扩展,纵向扩展的空间也比较有限。相反,HBase和BigTable这些分布式数据库就是为了实现灵活的水平扩展而开发的,能够轻易地通过在集群中增加或者减少硬件数量来实现性能的伸缩。

1 配置

https://www.cnblogs.com/frankdeng/p/9310191.html

启动成功jps后可以看到hmaster ,hregionservice

2 hbase shell

不支持sql,对表操作需要使用hbase shell命令或者hbase api

3 Phoenix

在hbase上构建SQL层,使得hbase 能够使用标准SQL管理数据,Phoenix中的sql语句还是有些不同的

4 问题

1 org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet

https://cloud.tencent.com/developer/article/1812290

2 stop-hbase.sh关闭不了,一直处于等待状态

https://blog.csdn.net/weixin_45462732/article/details/106909501

3 hregionservice启动就挂了

看日志

参考

https://www.cnblogs.com/wendyw/p/12691971.html#_label3

https://juejin.cn/post/6844903777347043336

https://www.jianshu.com/p/53864dc3f7b4

https://www.cnblogs.com/frankdeng/p/9310191.html

https://blog.csdn.net/weixin_45462732/article/details/106909501

中文文档 http://hbase.org.cn/docs/166.html#regionserver.arch

即席查询(Ad hoc)

定义

即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。

举例说明

以电商的数仓分析项目为例,有一些应用侧/业务侧的分析指标:每日活跃用户数(日活),每日留存用户数(留存),新注册用户有多少下了单(转换率),因为计算方法固定,变化的是每天的数据,因此这些指标的查询/计算SQL是提前写好的,到店被调度(Azkaban)执行即可;

但有一些指标或者临时增加的指标、临时增加的一些分析需求,是无法预知其计算逻辑的,所以要现写查询SQL,并且希望能很快拿到查询/计算结果,这就是即席查询

工具

Kylin、druid、presto、impala

https://zhuanlan.zhihu.com/p/266695601

Kylin

架构

Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。

1)REST Server

REST Server是一套面向应用程序开发的入口点,旨在实现针对Kylin平台的应用开发工作。 此类应用程序可以提供查询、获取结果、触发cube构建任务、获取元数据以及获取用户权限等等。另外可以通过Restful接口实现SQL查询。

2)查询引擎(Query Engine)

当cube准备就绪后,查询引擎就能够获取并解析用户查询。它随后会与系统中的其它组件进行交互,从而向用户返回对应的结果。

3)路由器(Routing)

在最初设计时曾考虑过将Kylin不能执行的查询引导去Hive中继续执行,但在实践后发现Hive与Kylin的速度差异过大,导致用户无法对查询的速度有一致的期望,很可能大多数查询几秒内就返回结果了,而有些查询则要等几分钟到几十分钟,因此体验非常糟糕。最后这个路由功能在发行版中默认关闭。

4)元数据管理工具(Metadata)

Kylin是一款元数据驱动型应用程序。元数据管理工具是一大关键性组件,用于对保存在Kylin当中的所有元数据进行管理,其中包括最为重要的cube元数据。其它全部组件的正常运作都需以元数据管理工具为基础。 Kylin的元数据存储在hbase中。

5)任务引擎(Cube Build Engine)

这套引擎的设计目的在于处理所有离线任务,其中包括shell脚本、Java API以及Map Reduce任务等等。任务引擎对Kylin当中的全部任务加以管理与协调,从而确保每一项任务都能得到切实执行并解决其间出现的故障。

Kylin Cube构建原理,构建优化

https://jishuin.proginn.com/p/763bfbd2bb9c

BI工具集成

可以与Kylin结合使用的可视化工具很多,例如:

ODBC:与Tableau、Excel、PowerBI等工具集成

JDBC:与Saiku、BIRT等Java工具集成

RestAPI:与JavaScript、Web网页集成

Kylin开发团队还贡献了Zepplin的插件,也可以使用Zepplin来访问Kylin服务。

superset

作用

Apache Superset是一个开源的、现代的、轻量级BI(Business Intelligence)分析工具,能够对接多种数据源、拥有丰富的图表展示形式、支持自定义仪表盘,且拥有友好的用户界面,十分易用。

由于Superset能够对接常用的大数据分析工具,如Hive、Kylin、Druid等,且支持自定义仪表盘,故可作为数仓的可视化工具。

Azkaban

https://blog.csdn.net/wtzhm/article/details/89220508

1 为什么需要工作流调度系统

1)一个完整的数据分析系统通常都是由大量任务单元组成:Shell脚本程序,Java程序,MapReduce程序、Hive脚本等

2)各任务单元之间存在时间先后及前后依赖关系

3)为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行

2 常见工作流调度系统

1)简单的任务调度

直接使用Linux的Crontab来定义;

2)复杂的任务调度

开发调度平台或使用现成的开源调度系统,比如Ooize、Azkaban、 Airflow、DolphinScheduler等。

3)Azkaban

Azkaban is a batch workflow job scheduler created at LinkedIn to run Hadoop jobs. Azkaban resolves the ordering through job dependencies and provides an easy to use web user interface to maintain and track your workflows.

Azkaban是一个开源的任务调度系统,用于负责任务的调度运行(如数据仓库调度),用以替代linux中的crontab。

和Oozie对比

总体来说,Ooize相比Azkaban是一个重量级的任务调度系统,功能全面,但配置使用也更复杂。如果可以不在意某些功能的缺失,轻量级调度器Azkaban是很不错的候选对象。

3 使用

1 使用流程

1.数据准备

2.编写Azkaban工作流程配置文件

​ a.编写azkaban.project

​ b.编写gmall.flow文件

2 多Executor模式下注意事项

方案一:指定特定的Executor(hadoop102)去执行任务。

​ a.在MySQL中azkaban数据库executors表中,查询hadoop102上的Executor的id。

​ b.在执行工作流程时加入useExecutor属性

方案二:在Executor所在所有节点部署任务所需脚本和应用。

推荐使用方案二


:D 一言句子获取中...