【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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

走方格(蓝桥杯2020年试题H)

【问题描述】在平面上有一些二维点阵。这些点的编号就像二维数组的编号一样,从上到下依次为第1~n行,从左到右依次为第1~m列,每个点可以用行号和列号表示。 现在有个人站在第1行第1列,他要走到第n行第m列,只能向右或者向…

uniapp Stripe 支付

引入 Stripe npm install stripe/stripe-js import { loadStripe } from stripe/stripe-js; Stripe 提供两种不同类型组件 Payment Element 和 Card Element:如果你使用的是 Payment Element,它是一个更高级别的组件,能够自动处理多种支…

Visual Studio 2022安装教程

1、下载网址 Visual Studio 2022 IDE安装网址借助 Visual Studio 设计,具有自动完成、构建、调试、测试功能的代码将与 Git 管理和云部署融为一体。https://visualstudio.microsoft.com/zh-hans/vs/ 点击图片所示 双击运行 2、安装 点击C桌面开发(右边…

php 根据sdk重命名华为云obs临时访问 url

public function getDownloadUrl($bucket,$path,$oldfilename){ $this->obsClient new ObsClient([key > env(huawei.key),secret > env(huawei.secreat),endpoint > obs.cn-south-1.myhuaweicloud.com,//替换成自己的endpoint ]); $signedUrl $this->obsCli…

论文笔记PhotoReg: Photometrically Registering 3D Gaussian Splatting Models

1.abstract 最近推出的3D高斯飞溅(3DGS),它用多达数百万个原始椭球体来描述场景,可以实时渲染。3DGS迅速声名鹊起。然而,一个关键的悬而未决的问题仍然存在:我们如何将多个3DG融合到一个连贯的模型中?解决这个问题将使…

数据结构(ing)

学习内容 指针 指针的定义: 指针是一种变量,它的值为另一个变量的地址,即内存地址。 指针在内存中也是要占据位置的。 指针类型: 指针的值用来存储内存地址,指针的类型表示该地址所指向的数据类型并告诉编译器如何解…

Synopsys软件基本使用方法

Synopsys软件基本使用方法 1 文件说明2 编译流程3 查看波形4 联合仿真 本文主要介绍Synopsys软件vcs、verdi的基本使用方法,相关文件可从 GitHub下载。 1 文件说明 创建verilog源文件add.v、mult.v、top.vmodule add (input signed [31:0] dina,input signed [3…

【DAGMM】直接跑tip

1.from sklearn.externals import joblib 版本高 joblib没有 直接pip install joblib&#xff0c;然后 import joblib 2.AttributeError: module ‘tensorflow’ has no attribute ‘set_random_seed’ # tf.set_random_seed(args.seed)#tf<2.0 tf.random.set_seed(args.s…

软件测试基础详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 “尽早的介入测试&#xff0c;遇到问题的解决成本就越低” 随着软件测试技术的发展&#xff0c;测试工作由原来单一的寻找缺陷逐渐发展成为预防缺陷&#xff0c;…

sql优化(1)

SQL优化很重要&#xff0c;能提高性能&#xff0c;减少查询执行时间&#xff0c;在处理大量数据或高并发场景时可以快速返回结果&#xff0c;提升系统吞吐量&#xff0c;节省资源&#xff0c;降低服务器CPU、内存和I/O的负载。 GROUP BY优化 GROUP BY子句用于将查询结果按照一…

Lua迭代器如何使用?

在Lua中&#xff0c;迭代器是一种用于遍历集合元素的重要工具。掌握迭代器的使用方法&#xff0c;对于提高Lua编程的效率和代码的可读性具有重要意义。 1.迭代器概述 12.1.1 迭代器介绍 迭代器是一种设计模式&#xff0c;它提供了一种访问集合元素的方法&#xff0c;而不需要…

人工智能知识分享第六天-机器学习_​逻辑回归(Logistic Regression)

简介 在机器学习中&#xff0c;分类问题是一种常见的任务&#xff0c;目标是根据输入特征将数据点分配到不同的类别中。为了实现分类&#xff0c;我们需要训练一个分类器&#xff0c;该分类器能够根据输入数据的特征进行预测。 逻辑回归&#xff08;Logistic Regression&…

OpenCV-Python实战(11)——边缘检测

一、Sobel 算子 通过 X 梯度核与 Y 梯度核求得图像在&#xff0c;水平与垂直方向的梯度。 img cv2.Sobel(src*,ddepth*,dx*,dy*,ksize*,scale*,delta*,borderType*)img&#xff1a;目标图像。 src&#xff1a;原始图像。 ddepth&#xff1a;目标图像深度&#xff0c;-1 代表…

Docker- Unable to find image “hello-world“locally

Docker- Unable to find image “hello-world“locally 文章目录 Docker- Unable to find image “hello-world“locally问题描述一. 切换镜像1. 编辑镜像源2. 切换镜像内容 二、 检查设置1、 重启dockers2、 检查配置是否生效3. Docker镜像源检查4. Dokcer执行测试 三、自定义…

【UE5 C++课程系列笔记】19——通过GConfig读写.ini文件

步骤 1. 新建一个Actor类&#xff0c;这里命名为“INIActor” 2. 新建一个配置文件“Test.ini” 添加一个自定义配置项 3. 接下来我们在“INIActor”类中获取并修改“CustomInt”的值。这里定义一个方法“GetINIVariable” 方法实现如下&#xff0c;其中第16行代码用于构建配…

互慧-急诊综合管理平台 ServicePage.aspx 任意文件读取漏洞复现

0x01 产品简介 互慧急诊急救快速联动平台,是用于管理门诊急诊病人的系统,主要包括门诊急诊业务和急诊物资管理两部分,其中门诊急诊业务主要包括院前急救、院内抢救、留观监护、绿色通道、预检分诊等;急诊物资管理包括急诊药品管理、急诊设备管理、抢救车管理、急救箱管理、…

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(五)

****非斜体正文为原文献内容&#xff08;也包含笔者的补充&#xff09;&#xff0c;灰色块中是对文章细节的进一步详细解释&#xff01; 五、 解释评估&#xff08;Explanation Evaluation&#xff09; 在前面的章节中&#xff0c;我们介绍了不同的解释技术和它们的用途&#…

pyside6-deploy 提示相对路径错误

Pyside6.5的nuitka_helper.py中的 qml_args.extend([f"--include-data-files{qml_file}./{qml_file.relative_to(source_file.parent)}"for qml_file in qml_files])在qml_file为相对路径的时候会报错。通过增加resolve()来强制转为绝对路径

Echart实现3D饼图示例

在可视化项目中&#xff0c;很多地方会遇见图表&#xff1b;echart是最常见的&#xff1b;这个示例就是用Echart&#xff0c; echart-gl实现3D饼图效果&#xff0c;复制即可用 //需要安装&#xff0c;再引用依赖import * as echarts from "echarts"; import echar…

Linux之ARM(MX6U)裸机篇----6.BSP工程管理实验

一&#xff0c;BSP工程管理 定义&#xff1a;是为了模块化整理代码&#xff0c;相同属性的文件存放在同一个目录下。 ①先mkdir多个文件夹er ②把共同.h文件转移到指定文件夹下 二&#xff0c;启动文件 .global _start /* 全局标号 *//** 描述&#xff1a; _start函数&am…