【Hadoop】Hadoop安全之Knox网关

目录

一、概述

2.1 knox介绍

2.2 版本信息

二、部署

三、验证Knox网关

3.1 Hdfs RESTFULL

3.2 HDFSUI

3.3 YARNUI

3.4 HBASEUI


一、概述


2.1 knox介绍


Apache Knox网关是一个用于与Apache Hadoop部署的REST api和ui交互的应用程序网关。Knox网关为所有与Apache Hadoop集群的REST和HTTP交互提供了一个单一的访问点。

Apache Knox Gateway是一款用于保护Hadoop生态体系安全的代理网关系统,为Hadoop集群提供唯一的代理入口。Knox以类似反向代理的形式挡在集群前面,隐匿部署细节(例如端口号和机器名等),接管所有用户的HTTP请求(例如WEB UI 控制台访问和RESTful 服务调用),以此来保护集群安全。

Knox提供三组面向用户的服务:

代理服务

Apache Knox项目的主要目标是通过代理HTTP资源提供对Apache Hadoop的访问。

身份验证服务

REST API访问的身份验证以及ui的WebSSO流。LDAP/AD,基于报头的预认证,Kerberos,SAML、OAuth都是可用的选项。

客户服务

客户端开发可以通过DSL编写脚本或直接使用Knox Shell类作为SDK来完成。KnoxShell交互式脚本环境将groovy shell的交互式shell与Knox shell SDK类相结合,用于与部署的Hadoop集群中的数据进行交互。

Knox网关本质上是一款基于Jetty实现的高性能反向代理服务器,通过内置的过滤器链来处理URL请求,支持使用LDAP进行用户身份认证。Knox网关在架构设计上具有良好的可扩展性,这种扩展性主要通过Service和Provider这两个扩展性框架来实现。Server扩展性框架还提供了一种网关新增的HTTP或RESTful服务端点的途径,例如WebHDFS就是以新建的Service的形式加入Knox网关的。而Provider扩展性框架则是用来定义并实现相应Service所提供的功能,例如端点的用户认证或是WebHDFS中的文件上传等功能。当我们使用Knox作为代理网关之后,大数据平台中Hadoop系统的逻辑拓扑就会变成如下图所示:

2.2 版本信息


序号

名称

版本

描述

1

HDFS

3.3.3

分布式大数据存储

2

YARN

3.3.3

分布式资源调度与管理平台

3

Spark

3.1.3

分布式计算系统

4

Hbase

2.0.2

分布式列式存储数据库

二、部署


安装包下载地址:

Apache Download Mirrors

解压

unzip  knox-2.0.0.zip
ll knox-2.0.0

bin目录说明

[root@ddp01 knox-2.0.0]# ll bin/
总用量 140
-rw-r--r-- 1 root root 22425 1月  22 2020 gateway.jar
-rwxr-xr-x 1 root root  4657 1月  22 2020 gateway.sh  # 启动gateway的脚本
-rw-r--r-- 1 root root  1024 1月  22 2020 gateway.xml
-rw-r--r-- 1 root root 22386 1月  22 2020 knoxcli.jar
-rwxr-xr-x 1 root root  1987 1月  22 2020 knoxcli.sh  # 内置的knox客户端脚本,一般用于密码、证书、别名、ldap服务、测试等
-rwxr-xr-x 1 root root  5599 1月  22 2020 knox-env.sh
-rwxr-xr-x 1 root root  8580 1月  22 2020 knox-functions.sh  # 一些预定的脚本函数,例如appStart等,在ldap.sh和gateway.sh加载使用
-rw-r--r-- 1 root root 22454 1月  22 2020 ldap.jar
-rwxr-xr-x 1 root root  2862 1月  22 2020 ldap.sh  # /启动ldap脚本,gateway的服务依赖于ldap服务,不启动会报错
-rw-r--r-- 1 root root  1059 1月  22 2020 ldap.xml
-rw-r--r-- 1 root root 22421 1月  22 2020 shell.jar

conf 目录说明

[root@ddp01 knox-2.0.0]# ll conf/
总用量 36
drwxr--r-- 2 root root   20 1月  22 2020 descriptors
-rw-r--r-- 1 root root 4714 1月  22 2020 gateway-log4j2.xml
-rw-r--r-- 1 root root 8052 1月  22 2020 gateway-site.xml # gateway总配置,主要配置例如ldap服务url、网关的port、网关的名字(访问路径)、黑白名单等
-rw-r--r-- 1 root root 1684 1月  22 2020 knoxcli-log4j2.xml
-rw-r--r-- 1 root root 1765 1月  22 2020 ldap-log4j2.xml
-rw-r--r-- 1 root root   91 1月  22 2020 README
drwxr--r-- 2 root root   50 1月  22 2020 shared-providers
-rw-r--r-- 1 root root 1621 1月  22 2020 shell-log4j2.xml
drwxr--r-- 2 root root  134 1月  22 2020 topologies  # 主要用户配置服务,所有的服务,不管是hdfsui、yarnui、sparkui都从这里配置
-rw-r--r-- 1 root root 2987 1月  22 2020 users.ldif  # 内置的ldap的配置文件,在ldap服务启动的时候,会自动读取这个配置文件

gateway-site.xml 重要参数如下:

param

default

description

gateway.port

8443

knox默认端口

gateway.path

gateway

默认url中的路径

gateway.hadoop.kerberos.secured

FALSE

集群是否开启kerberos

java.security.krb5.conf

/etc/knox/conf/krb5.conf

krb5.conf的完整路径

java.security.auth.login.config

/etc/knox/conf/krb5JAASLogin.conf

JAAS登陆配置的完整路径

gateway.dispatch.whitelist

default

一个以分号分隔的正则表达式列表,用于控制允许Knox将调度和重定向到哪些端点。

gateway.dispatch.whitelist.services

localhost

将应用白名单服务角色列表以逗号分隔

topologies 放置所有的网络拓扑xml文件,用于部署集群代理:

添加 knox用户并启动 ldap和gateway 服务

使用knox 用户启动,然后使用 jps 可以看到两个进程

使用 jps 可以看到两个进程

https://192.168.2.98:8443/gateway/homepage/home/, 账号: admin/admin-password

https://192.168.2.98:8443/gateway/knoxsso/knoxauth/lgin.html?originalUrl=https://192.168.2.98:8443/gateway/homepage/home/
https://192.168.2.98:8443/gateway/homepage/home/

如下可以看到两个配置


三、验证Knox网关


3.1 Hdfs RESTFULL


curl -i -ku admin:admin-password -X GET "https://localhost:8443/gateway/my_hdfs/webhdfs/v1/?op=LISTSTATUS"

3.2 HDFSUI


https://192.168.2.98:8443/gateway/my_hdfs/hdfs
https://192.168.2.98:8443/gateway/my_hdfs/hdfs/?host=http://192.168.2.100:9870

账号密码:admin/admin-password

可以正常访问HDFSUI

3.3 YARNUI


https://192.168.2.98:8443/gateway/my_hdfs/yarn/

提交测试任务

spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--executor-memory 1G \
--num-executors 1 \
/opt/datasophon/spark3/examples/jars/spark-examples_2.12-3.1.3.jar \
2

查看job日志

3.4 HBASEUI


https://192.168.2.98:8443/gateway/my_hdfs/hbase/webui/master?&host=192.168.2.100&port=16010

master页面


参考文章链接:

2020全网最全Apache Knox实战总结_apache knox 实践-CSDN博客

LDAP:LDAP介绍及使用-CSDN博客

Apache Knox安装测试_knox 安装-CSDN博客

Ambari 使用 Knox 进行 LDAP 身份认证:https://zhuanlan.zhihu.com/p/679909497

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/947373.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PyCharm专项训练5 最短路径算法

一、实验目的 本文的实验目的是通过编程实践,掌握并应用Dijkstra(迪杰斯特拉)算法和Floyd(弗洛伊德)算法来解决图论中的最短路径问题。 二、实验内容 数据准备: 使用邻接表的形式定义两个图graph_dijkstra…

分布式算法(五):初识ZAB协议

文章目录 一、什么是Zookeeper二、ZAB与Zookeeper的关系为什么Zookeeper不直接使用Paxos 三、ZAB简介1.名词解释提案(Proposal)事务(Transaction)原子广播(Atomic Broadcast) 2.集群角色领导者(…

word中插入zotero引用

1、参考文献末尾没有文献? 在文献条目要显示的地方点击“refresh” 2、参考文献条目没有悬挂缩进? 把“书目”添加到样式库中,修改样式为悬挂缩进1.5字符 3、交叉引用? 宏 新建一个宏 粘贴下面代码 Public Sub ZoteroLinkCita…

利用3DGS中convert.py处理自采数据

前言 3DGS源码中convert.py提供对自采数据集的处理,需要预先安装Colmap和ImageMagick. ubuntu22.04安装colmap 点击进入NVIDIA官网,查看GPU的CMAKE_CUDA_ARCHITECTURES 1、克隆colmap源码,并进入colmap文件夹 git clone https://github.c…

【Vue】vue-router使用addRoute动态加载路由后刷新页面404

场景:动态加载路由,点击菜单路由跳转正常,但刷新页面报404 原因:使用404做异常路由捕获 刷新页面会导致路由丢失,重建路由时先加载了静态路由(包含异常路由捕获404),此时动态路由还未…

USB射频微波功率计的功能与优势-盛铂科技

USB射频功率计是一种用于测量射频信号(RF)功率的仪器,它通过USB接口与计算机或其他设备连接,以便于进行数据采集、处理和显示。 主要功能 功率测量:能够测量射频信号的功率,通常以毫瓦(mW&…

【Vim Masterclass 笔记01】Section 1:Course Overview + Section 2:Vim Quickstart

文章目录 Section 1:Course Introduction 课程概述S01L01 Course Overview 课程简介课程概要 S01L02 Course Download 课程资源下载S01L03 What Vim Is and Why You Should Learn It 何为 Vim?学来干啥?1 何为 Vim2 为何学 Vim Section 2&…

Elasticsearch JavaRestClient版

文章目录 初始化RestHighLeveClient(必要条件)索引库操作1.创建索引库(4步)2.删除索引库(3步)3.判断索引库是否存在(3步)4.总结:四步走 文档操作1.创建文档(4…

基于Pytorch和yolov8n手搓安全帽目标检测的全过程

一.背景 还是之前的主题,使用开源软件为公司搭建安全管理平台,从视觉模型识别安全帽开始。主要参考学习了开源项目 https://github.com/jomarkow/Safety-Helmet-Detection,我是从运行、训练、标注倒过来学习的。由于工作原因,抽空…

driftingblues6靶机

打开靶场 查看页面源代码,最下面有一个注释,提供了一个网址 vmlist.github.io,我们去访问一下 这里是一个github页面,提供攻防虚拟机的下载,对我们解题并没有什么有用的信息,我们再去扫描端口 发现只有80端…

python学习笔记—12—布尔类型、if语句

1. 布尔类型 (1) 定义 (2) 比较运算符 (3) 代码演示 1. 手动定义 bool_1 True bool_2 False print(f"bool_1的内容是:{bool_1}, 类型是:{type(bool_1)}") print(f"bool_2的内容是:{bool_2}, 类型是:{type(bool…

EasyExcel自定义动态下拉框(附加业务对象转换功能)

全文直接复制粘贴即可,测试无误 一、注解类 1、ExcelSelected.java 设置下拉框 Documented Target({ElementType.FIELD})//用此注解用在属性上。 Retention(RetentionPolicy.RUNTIME)//注解不仅被保存到class文件中,jvm加载class文件之后&#xff0c…

Fetch处理大模型流式数据请求与解析

为什么有的大模型可以一次返回多个 data? Server-Sent Events (SSE):允许服务器连续发送多个 data: 行,每个代表一个独立的数据块。 流式响应:大模型服务通常以流式响应方式返回数据,提高响应速度。 批量处理&#x…

开源低代码平台-Microi吾码-一键安装使用(CentOS一键安装MySql+Redis+MinIO+MongoDB+Watchtower脚本)

开源低代码平台-Microi吾码-一键安装使用 前言CentOS7一键安装脚本注意事项:安装成功预览图安装过程图安装结果docker脚本代码【有点东西:)】踩过的坑开源低代码平台Microi吾码-系列文档 前言 有小伙伴提出他并不想在本地编译代码、打包镜像、…

Ubuntu 24.04 LTS 解决网络连接问题

1. 问题描述 现象:ens33 网络接口无法获取 IPv4 地址,导致网络不可用。初步排查: 运行 ip a,发现 ens33 接口没有分配 IPv4 地址。运行 ping www.baidu.com,提示“网络不可达”。查看 NetworkManager 日志&#xff0c…

Docker--Docker Container(容器) 之 操作实例

容器的基本操作 容器的操作步骤其实很简单,根据拉取的镜像,进行启动,后可以查看容器,不用时停止容器,删除容器。 下面简单演示操作步骤 1.创建并运行容器 例如,创建一个名为"my-nginx"的交互…

大模型WebUI:Gradio全解系列8——Additional Features:补充特性(上)

大模型WebUI:Gradio全解系列8——Additional Features:补充特性(上) 前言本篇摘要8. Additional Features:补充特性8.1 队列8.1.1 使用方法8.1.2 配置队列演示 8.2 输入输出流8.2.1 输出流1. 生成器yield2. 流媒体 8.2…

leetcode 2658. 网格图中鱼的最大数目

题目如下 数据范围 使用并查集来做这道题。 其实按照题目的意思就是让我们求每一个联通的水域可以捞到的最大权值。 我们可以从前往后遍历这个二维数组只需要判断前一个水域和上一个水域是否和当前的(i, j)联通如果有则合并水域,同时用一个weight数组保存每一个联…

【go每日一题】golang异常、错误 {源码、实践、总结}

错误与异常在golang中区分 Go 的错误处理设计与其他语言的异常不同。Go 中的 error 就是一个普通的值对象,而其他语言如 Java 中的 Exception 将会造成程序控制流的终止和其他行为,Exception 与普通的值不同。虽然 Go 也有类似的异常机制 —— panic&am…

大模型 Fine-Tuning 技术解析

引言 在大型语言模型(LLMs, Large Language Models)的发展历程中,预训练模型和微调(Fine-tuning)技术起到了至关重要的作用。这些技术使得模型不仅能够学习到丰富的语言特征,还能根据具体任务进行优化调整…