第七章 Ambari二次开发之自定义Flink服务 -- configuration配置目录详解

1、configuration目录详解

  • configuration目录:主要对第三方服务的Conf目录下相关配置进行参数定义

  • 核心:configuration被 Ambari Server 加载之后,在前端页面上会出现两个配置项,分别是 高级选项 和 自定义选项。其中 高级选项 里面就是 xml 文件的内容,自定义选项 可以加入自定义配置信息,如果不需要显示自定义配置信息的话,可以通过添加 来隐藏掉自定义配置信息。

在这里插入图片描述

2、自定义目录文件

2.1、目录文件说明
  • 目录中文件如下

在这里插入图片描述

<configuration>
    <property>
        <name>flink_install_dir</name>
        <value>/opt/flink</value>
        <description>Location to install Flink</description>
    </property>
    <property>
        <name>elasticsearch_port</name>
        <display-name>Elasticsearch port</display-name>
        <value>9200</value>
        <description>Elasticsearch port</description>
    </property>

    <property>
        <name>content</name>
        <display-name>Elasticsearch config file template</display-name>
        <description>This is the template for elasticsearch.yml file</description>
        <value>
            http.port: {{elasticsearch_port}}
        </value>
        <value-attributes>
            <type>content</type>
            <show-property-name>true</show-property-name>
        </value-attributes>
        <on-ambari-upgrade add="true"/>
    </property>

    <!-->......省略<-->
</configuration>
  • property属性说明
属性名称属性描述备注
name属性名称,当无 display-name 属性时,name 值将会显示在前端页面上。
display-name前端页面显示的名称,会覆盖显示在前端页面上的 name 值。
value属性值,前端页面对应输入框里面的值,可修改并保存。
description属性描述信息。在前端页面上以鼠标悬浮框的形式显示出来。
  • 页面展示:configuration 文件内的大部分(普通)属性都会在 Ambari Web UI 上的 CONFIGS 下展示,内容可编辑修改。

在这里插入图片描述

2.2、相关参数配置详解

(1)配置项锁定

  • 实现效果:服务安装后不可编辑,
<value-attributes>
  <editable-only-at-install>true</editable-only-at-install>
</value-attributes>
  • 修改前效果图

在这里插入图片描述

  • 修改后效果图

在这里插入图片描述

(2)允许字段为空

  • 实现效果:允许value值为空
<value-attributes>
  <empty-value-valid>true</empty-value-valid>
</value-attributes>
  • 修改前效果:默认情况下字段值为空在安装页面会告警提示

在这里插入图片描述

  • 修改后效果

在这里插入图片描述

(3)设置密码校验

  • 实现效果:修改配置项时需要输入密码
<property require-input="true">
    <name>kadmin.local.password</name>
    <display-name>admin password</display-name>
    <value/>
    <property-type>PASSWORD</property-type>
    <description>The password is used to add the kerberos database administrator</description>
    <value-attributes>
        <type>password</type>
    </value-attributes>
</property>
  • 修改后效果图
    在这里插入图片描述
    (4)实现swith滑块

  • 效果要求:实现滑块形式的开关要求

<property>
    <name>hue-hdfs-module-enabled</name>
    <value>Yes</value>
    <display-name>Hue HDFS Module</display-name>
    <description>Enable Hue Filebrower Module</description>
    <value-attributes>
        <overridable>false</overridable>
        <type>value-list</type>
        <entries>
            <entry>
                <value>Yes</value>
                <label>ON</label>
            </entry>
            <entry>
                <value>No</value>
                <label>OFF</label>
            </entry>
        </entries>
        <selection-cardinality>1</selection-cardinality>
    </value-attributes>
</property>
  • 修改前效果

  • 修改后效果

(5)是否显示配置名称

  • 目标效果:隐藏部分name配置,将value输入框设置为文本框
<value-attributes>
    <!-- 默认为input普通输入框,当type为directories时,即为目录输入框,当type为content时,即为文本框 -->
    <type>content</type>
    <!-- 是否显示配置名称 -->
    <show-property-name>true</show-property-name>
</value-attributes>
  • 输入框 VS 目录输入框VS 文本框显示效果

在这里插入图片描述

(6)自动创建用户和用户组

<property>
    <name>elastic_user</name>
    <display-name>Elasticsearch user</display-name>
    <value>es</value>
    <description>Elasticsearch user</description>
    <property-type>USER</property-type>
    <value-attributes>
        <type>user</type>
        <user-groups>
            <property>
                <type>cluster-env</type>
                <name>user_group</name>
            </property>
            <property>
                <type>elastic-env</type>
                <name>es_group</name>
            </property>
        </user-groups>
    </value-attributes>
</property>

<property>
    <name>es_group</name>
    <display-name>es User Group</display-name>
    <value>elasticsearch_group</value>
    <property-type>GROUP</property-type>
    <description>es user group.</description>
</property>
  • 注意事项:只有在初始安装时可自动创建用户/用户组,如果进行扩容则无法实现自动创建

(7)配置修改后,提示重启服务

<?xml version="1.0"?>
<metainfo>
    <schemaVersion>2.0</schemaVersion>
    <services>
        <service>
            ...(省略)
            
            <components>
                <component>
                    <name>ELASTICSEARCH_SERVICE</name>
                    <displayName>Elasticsearch Service</displayName>
                    <category>MASTER</category>
                    <cardinality>1+</cardinality>
                    ...(省略)
                    
                    <configuration-dir>configuration</configuration-dir>
                    <configuration-dependencies>
                        <config-type>elastic-config</config-type>
                    </configuration-dependencies>
                    
                    ...(省略)
                </component>
            </components>      
            
			<configuration-dir>configuration</configuration-dir>
            <configuration-dependencies>
                <config-type>elastic-env</config-type>
            </configuration-dependencies>
            
            ...(省略)
        </service>
    </services>
</metainfo>
  • 参数说明: 作用域下的 / 来说,如果在前端页面上修改了该 xml 文件内容后并保存配置,那么整个服务都将会提示重启。如果是 的作用域下,则只提示重启该 component 组件,并不是所有组件都重启。
属性说明备注
config-typeconfiguration 目录下 xml 文件的名
configuration-dependencies指定服务所依赖的配置文件

3、调试方法

1、修改文件
2、将修改文件覆盖/var/lib/ambari-server/resources/stacks/HDP/3.1/services/FLINK
3、重启ambari-server
4、卸载服务重新安装
  • 文件配置路径:Ambari 自定义服务的参数配置由 xml 文件管理,默认存放在 configuration 目录下。如果要自定义该目录名称的话,可以在 metainfo.xml 中声明,在 service 标签下设置 configuration-dir 的值:configuration-dir

  • 配置修改记录会保存到 ambari 数据库中,主要涉及到的表有如下:

    • serviceconfig
    • serviceconfigmapping
    • clusterconfig(历史配置的详细内容)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Flink是一个用于大规模流处理和批处理的分布式数据处理框架。在进行Flink二次开发时,可以根据具体需求进行以下几个方面的工作: 1. 自定义算子:Flink提供了各种内置算子,但有时可能需要根据业务需求自定义算子。可以通过编写继承自`RichFlatMapFunction`、`RichMapFunction`等类的自定义函数来实现。 2. 数据源和数据接收器:Flink支持各种数据源和数据接收器,如Kafka、Hadoop文件系统、Socket等。对于特定的数据源或数据接收器,可以根据需求进行二次开发,以实现与特定系统的集成。 3. 状态管理:Flink提供了状态管理机制,可以将流处理过程中的中间结果保存在内存或外部存储中。在二次开发中,可以根据需要实现自定义的状态管理,以满足更复杂的应用需求。 4. 定时器和事件时间:Flink支持基于事件时间的处理和定时器机制。在二次开发中,可以利用定时器和事件时间的特性,实现基于时间的操作和窗口计算。 引用提到的HDFS.NameNode和YARN.ResourceManager是Apache Hadoop的组件,Flink可以与Hadoop集成,以便在分布式环境中处理大规模数据。 引用提到的ambari-server开放的REST API可以通过与ambari-web交互进行监控管理服务。在Flink二次开发中,可以利用这些API来进行集群管理、作业提交和监控等操作。 总结起来,Flink二次开发主要涉及自定义算子、数据源和数据接收器、状态管理、定时器和事件时间等方面的工作。同时,可以利用与Hadoop集成和与ambari-server交互的功能来实现更全面的数据处理和管理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [第四章 Ambari二次开发自定义Flink服务源码剖析](https://blog.csdn.net/qq_27924553/article/details/127482321)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随缘清风殇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值