【成神之路】Ambari实战-050-UI-如何通过配置修改ambari样式

news2024/10/9 9:38:13

在Ambari中,通过自定义UI控件(Widget),你可以灵活调整配置项的展现形式,使其更符合实际需求。这篇文章将详细介绍各种控件的使用,并提供代码示例和实际应用场景,帮助你成为UI配置的行家!💻✨

在这里插入图片描述

1. 配置说明

1.1 Ambari 配置中的 Widget 和 Metadata 结构

WidgetMetadata Used (元数据使用)解释 (Explanation)
Slider(滑块)<value-attributes>
<type>int</type>
<minimum>1073741824</minimum>
<maximum>17179869184</maximum>
<unit>B</unit>
<increment-step>1073741824</increment-step>
</value-attributes>
滑块控件用于调整数值范围,适合设置内存或磁盘大小等配置项。用户可以通过滑动条来选择一个范围,比如1GB到16GB。🎚️
Combo(下拉菜单)<value-attributes>
<type>value-list</type>
<entries>
<entry><value>2</value></entry>
<entry><value>4</value></entry>
<entry><value>8</value></entry>
</entries>
<selection-cardinality>1</selection-cardinality>
</value-attributes>
下拉菜单适合选择固定选项的配置,比如从多个调度器中选择一个。⬇️
List(列表)<value-attributes>
<type>value-list</type>
<entries>
<entry><value>2</value></entry>
<entry><value>4</value></entry>
<entry><value>8</value></entry>
</entries>
<selection-cardinality>2+</selection-cardinality>
</value-attributes>
列表控件允许用户选择多个值,适合配置多个路径或选项的场景,比如磁盘路径的选择。📋
Time Interval Spinner(时间间隔选择器)<value-attributes>
<type>int</type>
<minimum>0</minimum>
<maximum>2592000000</maximum>
<unit>milliseconds</unit>
</value-attributes>
时间选择器用于设置时间间隔,支持从毫秒到天的配置。⏳
Toggle, Checkbox(切换按钮、复选框)<value-attributes>
<type>value-list</type>
<entries>
<entry>
<value>true</value>
<label>Enabled</label>
</entry>
<entry>
<value>false</value>
<label>Disabled</label>
</entry>
</entries>
<selection-cardinality>1</selection-cardinality>
</value-attributes>
适合启用或禁用某项功能的场景,例如开关某个服务。🔘
Directory, Directories, Password, Text Field, Text Area无需特定的 <value-attributes> 元素。
用户直接输入路径、密码或其他文本内容。
这些控件适用于需要手动输入的场景,例如目录路径、密码或大段文本。📂🔑
Radio-Buttons(单选按钮)<value-attributes>
<type>value-list</type>
<entries>
<entry><value>1</value><label>Option 1</label></entry>
<entry><value>2</value><label>Option 2</label></entry>
</entries>
<selection-cardinality>1</selection-cardinality>
</value-attributes>
单选按钮用于让用户在多个选项中选择一个,适合互斥选项的配置场景。🔘

2. HBase为例,配置的UI控件详细解析

2.1 Slider(滑块)

适用于数值范围的配置

应用场景
滑块(Slider)控件非常适合那些需要调整数值的配置,用户可以通过滑动来选择值,例如内存大小、文件大小或超时时间等。滑动条让数值调节变得简单直观。

在这里插入图片描述

  • 配置项:HBase Master Maximum Memory

    • 配置文件: hbase-env.xml
    • 描述: 该配置用于设置 HBase Master 进程的最大堆内存,默认值为 4096MB。Master 进程是 HBase 中的管理节点,负责管理 RegionServer 及集群的健康状态。适合用滑块来方便地调整内存大小。
    <property>
      <name>hbase_master_heapsize</name>
      <value>4096</value>
      <description>Maximum amount of memory each HBase Master can use.</description>
      <display-name>HBase Master Maximum Memory</display-name>
      <value-attributes>
        <type>int</type>
        <minimum>0</minimum>
        <maximum>16384</maximum>
        <unit>MB</unit>
        <increment-step>256</increment-step>
      </value-attributes>
      <on-ambari-upgrade add="false"/>
    </property>
    
    • UI展现: 🎚️ 滑块可让用户在 0 到 16GB 范围内调整 HBase Master 的最大内存大小,用户可以通过拖动滑块来分配更多或更少的内存资源,适用于集群扩展时。

⬇️⬇️⬇️查看全部内容⬇️⬇️⬇️


更多详细内容请关注我们的微信公众号:发送"文章"关键字获取

或加入QQ1群,了解版本动向,解答大数据问题。


⬆️⬆️⬆️查看全部内容⬆️⬆️⬆️

2.7 Radio-Buttons(单选按钮)

适用于互斥的配置选项

应用场景
Radio-Buttons(单选按钮) 控件适用于那些互斥的配置选项,用户只能从多个选项中选择一个。这种控件用于模式选择、日志级别等,确保用户只能选择一个值,且每个选项都有对应的说明标签。

注意首先根据官方文档配置,entry 个数 > 3 , 有label ,单选才会触发 radiobox 。但是目前页面上没看到,不知道是不是卡bug了

注意首先根据官方文档配置,entry 个数 > 3 , 有label ,单选才会触发 radiobox 。但是目前页面上没看到,不知道是不是卡bug了

注意首先根据官方文档配置,entry 个数 > 3 , 有label ,单选才会触发 radiobox 。但是目前页面上没看到,不知道是不是卡bug了

在这里插入图片描述

  • 配置项:Hive Log Level

    • 配置文件: hive-env.xml
    • 描述: 用户可以通过此单选按钮选择 Hive 的日志级别(INFODEBUGWARNERROR)。该配置控制 Hive 的日志输出级别,用户可以根据需求选择合适的级别。
    <property>
      <name>hive.log.level</name>
      <description>Hive Log level to control log4j - Options are INFO, DEBUG, WARN, ERROR</description>
      <value>INFO</value>
      <display-name>Hive Log Level</display-name>
      <value-attributes>
        <type>value-list</type>
        <entries>
          <entry>
            <value>INFO</value>
            <label>INFO (Recommended)</label>
          </entry>
          <entry>
            <value>DEBUG</value>
            <label>DEBUG (Most Verbose)</label>
          </entry>
          <entry>
            <value>WARN</value>
            <label>WARN</label>
          </entry>
          <entry>
            <value>ERROR</value>
            <label>ERROR (Least Verbose)</label>
          </entry>
        </entries>
        <selection-cardinality>1</selection-cardinality>
      </value-attributes>
      <on-ambari-upgrade add="false"/>
    </property>
    
    • UI展现: 🔘 用户可以通过单选按钮选择日志输出级别,INFO 为推荐选项,DEBUG 输出最详细的日志,WARNERROR 适合过滤不必要的信息,保证系统运行日志的简洁性。

3. 控件样式的区别(基于 value-attributes 关键字段)

条件页面样式解释示例配置
entries 个数 <= 2 且 无 labelToggle 切换开关entries 少于等于 2 且没有 label 时,页面会显示为切换开关,用于简单启用/禁用功能。hbase.security.authorization
entries 个数 <= 2 且 带有 labelToggle 切换开关尽管带有 label,但因为选项少于等于 2,依旧会显示为切换开关。hbase.security.authentication
entries 个数 > 2 且 带有 labelRadio-Buttons(单选按钮)entries 大于 2 且每个选项带有 label 时,显示为单选按钮,用户只能选择一个选项。hive.log.level
entries 个数 > 2 且 无 labelCombo(下拉菜单)如果选项超过 2 且没有 label,页面会显示为下拉菜单,用户可以从中选择一个选项。hbase.security.authentication
selection-cardinality > 1 且 无 labelList(列表)selection-cardinality 大于 1 且没有 label 时,页面会显示为列表,用户可以选择多个选项。hbase.coprocessor.region.classes
type=directoryDirectory(目录选择器)typedirectory 时,页面展示为单个目录路径输入框。hbase.tmp.dir
type=directoriesDirectories(多目录选择器)typedirectories 时,页面展示为多个目录路径输入框,用户可以输入多个路径。yarn.nodemanager.log-dirs
type=passwordPassword(密码输入框)typepassword 时,输入的内容会被隐藏,适用于输入密码。javax.jdo.option.ConnectionPassword
type=textText Field(单行文本框)typetext 时,页面展示为单行文本输入框,适用于输入简短的字符串内容。hbase.master.info.bindAddress
type=contentText Area(多行文本区域)typecontent 时,页面展示为多行文本输入框,通常用于输入长文本或脚本内容。hbase-env.sh

关键字段解释

  1. entries 的个数

    • 如果 entries 的个数少于等于 2,并且没有 label,页面会显示为 Toggle 切换开关
    • 如果 entries 的个数大于 2 并且带有 label,页面会显示为 Radio-Buttons(单选按钮)
  2. 是否有 label 标签

    • 如果 entries 包含 label,表示每个选项有说明文字。对于 Radio-Buttons 控件来说,label 是必需的。
    • 如果没有 label,则视为没有选项说明。通常在下拉菜单或列表中不需要 label
  3. selection-cardinality 的值

    • selection-cardinality 的值大于 1 时,表示用户可以选择多个选项,页面通常会显示为 List(列表) 控件。
    • 如果 selection-cardinality 的值为 1,页面会显示为单选控件(ComboRadio-Buttons)。
  4. type 的值

    • typedirectory 时,页面显示为 Directory(目录选择器)
    • typedirectories 时,页面显示为 Directories(多目录选择器)
    • typepassword 时,输入的字符会被隐藏,页面显示为 Password(密码输入框)
    • typetext 时,页面显示为 Text Field(单行文本框)
    • typecontent 时,页面显示为 Text Area(多行文本区域)

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

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

相关文章

国家发改委等部门划时间点:到2026年底基本建成国家数据标准体系

摘要 【国家发改委等部门划时间点&#xff1a;到2026年底基本建成国家数据标准体系】10月8日&#xff0c;国家发改委等部门联合印发《国家数据标准体系建设指南》。《建设指南》提出计划&#xff0c;到2026年底&#xff0c;基本建成国家数据标准体系&#xff0c;围绕数据流通利…

jmeter学习(7)beanshell

beanshell preprocessor 发送请求前执行 beanshell postprocessor 发送请求前执行 获取请求相关信息 String body sampler.getArguments().getArgument(0).getValue(); String url sampler.getPath(); 获取响应报文 String responseprev.getResponseDataAsString(); 获…

应急响应:LinuxWindows实战排查

目录 应急响应 介绍&#xff1a; 应急流程&#xff1a; 抑制阶段&#xff1a; 对于Linux&#xff0c;一些常见的排查命令&#xff1a; 对于Windows&#xff0c;常见的排查命令&#xff1a; Windows应急&#xff08;一&#xff09; Windows应急&#xff08;二&#xff0…

C++ string类(超详细一次性讲解)(上)

1. 为什么学习string类&#xff1f; 1.1 C语言中的字符串 C语言中&#xff0c;字符串是以 \0 结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c;但是这些库函数与字符串是分离开的&#xff0c;不太符合OOP的思想&…

Python OpenCV精讲系列 - 三维重建深入理解(十七)

&#x1f496;&#x1f496;⚡️⚡️专栏&#xff1a;Python OpenCV精讲⚡️⚡️&#x1f496;&#x1f496; 本专栏聚焦于Python结合OpenCV库进行计算机视觉开发的专业教程。通过系统化的课程设计&#xff0c;从基础概念入手&#xff0c;逐步深入到图像处理、特征检测、物体识…

细菌实例分割系统源码&数据集分享

细菌实例分割系统源码&#xff06;数据集分享 [yolov8-seg-EfficientFormerV2&#xff06;yolov8-seg-SPPF-LSKA等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Glob…

系分-数据库总结

历年试题2024年05月试题 BCN范式&#xff0c;模式分解&#xff0c;触发器类型2023年05月试题 NoSQL基本特点&#xff0c;NoSQL对比&#xff0c;混合数据库2022年05月试题4 两段锁&#xff0c;事务并发&#xff0c;数据一致&#xff0c;本地事务发布20…

生命的最高境界(深度好文)?

予人玫瑰&#xff0c;手有余香。 生命的最高境界&#xff0c;就一个字&#xff1a;给。 初级的快乐&#xff0c;是放任&#xff1b;中级的快乐&#xff0c;是自律&#xff1b;高级的快乐&#xff0c;是给予。 予人玫瑰&#xff0c;手有余香。 学会“给”&#xff0c;是我们一…

PCL 表面曲率下采样

目录 一、概述二、代码三、结果 一、概述 通过表面曲率信息对点云进行采样&#xff0c;选择表面曲率约束下的代表性点。 二、代码 #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/features/normal_3d.h&g…

《Python 安装指南:开启编程之旅》

《Python 安装指南&#xff1a;开启编程之旅》 在当今数字化的时代&#xff0c;编程已经成为一项越来越重要的技能。而 Python 作为一种简洁、高效且功能强大的编程语言&#xff0c;受到了众多开发者的青睐。无论是数据科学、人工智能、Web 开发还是自动化脚本编写&#xff0c…

2024.10.8 作业+思维导图

优化登录框&#xff1a; 当用户点击取消按钮&#xff0c;弹出问题对话框&#xff0c;询问是否要确定退出登录&#xff0c;并提供两个按钮&#xff0c;yes|No&#xff0c;如果用户点击的Yes&#xff0c;则关闭对话框&#xff0c;如果用户点击的No&#xff0c;则继续登录 当用户点…

gaussdb hccdp认证思考题02 GaussDB数据库应用程序开发指引

02_GaussDB数据库应用程序开发指引 1. &#xff08;单选题&#xff09;在JDBC中用于与数据库建立连接并指向SQL语句的接口是以下哪一项&#xff1f; A. java.sql.ResultSet B. java.sql.Driver C. java.sql.Connection D. javax.sql.DataSource --C 2. &#xff08;单选题…

、Redis 安装

Redis 安装 Redis 下载链接 [rootiZhp3i77hpofuqqxvoc790Z ~]# mkdir redis [rootiZhp3i77hpofuqqxvoc790Z ~]# ll 总用量 4 drwxr-xr-x 2 root root 4096 10月 8 15:23 redis [rootiZhp3i77hpofuqqxvoc790Z ~]# cd redis/ # 将 redis 安装包上传至当前目录下 # 解压当前文件…

《Windows PE》5.1 导出表

导出表&#xff08;Export Table&#xff09;是一个在可执行文件或动态链接库&#xff08;DLL&#xff09;中的数据结构&#xff0c;用于描述该文件中导出的函数、变量和其他符号。导出表通常位于DLL动态链接库中。 本节必须掌握的知识点&#xff1a; 导入表数据结构 PE中的导…

云计算:MySQL

第一周第一天-MySQL的SQL语句解析 数据库的介绍 什么是数据库 数据库是存储和管理数据的系统或集合&#xff0c;通常用于支持软件系统的高效数据处理和查询。它能够以结构化的方式组织数据&#xff0c;使用户可以快速存储、更新、查询和删除数据。数据库不仅保存数据&#xff0…

网络知识_001_浏览器输入域名

文章目录 网络模型IP地址&#xff0c;子网掩码&#xff0c;网关&#xff0c;网络地址&#xff0c;广播地址&#xff0c;NAT转换浏览器输入域名到网页打开发生了什么DNS获取顺序 网络模型 模型协议工具报文添加信息作用应用层http&#xff0c;https&#xff0c;ftp&#xff0c;…

Apache Flume 启动报错及解决方法

在使用 Apache Flume 时&#xff0c;可能会遇到启动报错的情况&#xff0c;其中一个常见问题就是 log4j 错误。本文将结合三个实际案例来分析这个问题&#xff0c;并提供相应的解决方法。 一、问题现象 案例一 执行命令 flume-ng agent -n a1 -c ../conf/ -f ./flume_info.conf…

Matlab绘图总结(进阶)

本文在前文的基础上进一步整理画图方法 MATLAB画动图_CSDN博客 1. 基础图形绘制 1.1 rectangle&#xff08;矩形&#xff0c;圆形&#xff09; 在前文中&#xff0c;讲解了如何使用rectangle&#xff0c;rectangle本意是用来画矩形的&#xff0c;其中&#xff0c;Curvature可…

MATLAB - 机器人机械臂设计轨迹规划器

系列文章目录 前言 本示例介绍了一种设计抓取和轨迹规划器的方法&#xff0c;该规划器可用于垃圾箱拣选系统。 在机器人技术中&#xff0c;垃圾箱拣选包括使用机械手从垃圾箱中取出物品。智能垃圾箱拣选是这一过程的高级版本&#xff0c;具有更强的自主性。使用摄像系统感知部件…

基于sklearn的机器学习应用平台 v2.0

基于sklearn的机器学习应用平台 v2.0 链接&#xff1a;https://pan.baidu.com/s/1nvHMTrtBmtPLT4oNXdw74A 提取码私信博主获取 关于作者 作者&#xff1a;小白熊 作者简介&#xff1a;精通python、matlab、c#语言&#xff0c;擅长机器学习&#xff0c;深度学习&#xff0c;机…