在 Ambari 中为自定义服务添加组合框 UI

Add a combo box for custom service in Ambari UI

我正在实施通过 Ambari UI 配置的自定义服务,我想添加 属性 以指定可以是 LDAP 或 KERBEROS 的身份验证类型。 在我的服务中-config.xml 我有以下几行:

<property>
<name>serviceAuthType</name>
<value>KERBEROS</value>
<value-attributes>
  <type>attribute-list</type>
  <entries>
    <entry>
      <value>KERBEROS</value>
      <label>KERBEROS</label>
    </entry>
    <entry>
      <value>LDAP</value>
      <label>LDAP</label>
    </entry>
  </entries>
  <selection-cardinality>1</selection-cardinality>
</value-attributes>

但我仍然将其显示为正常输入: 不是组合框或单选按钮。 我想看看 Hive 对 Metastore 数据库选择的看法:

有可能实现吗?

是的,有可能,您的 属性 定义不正确。应该是:

<property>
 <name>hive.default.fileformat</name>
 <value>TextFile</value>
 <description>Default file format for CREATE TABLE statement.</description>
 <display-name>Default File Format</display-name>
 <value-attributes>
   <type>attribute-list</type>
   <entries>
    <entry>
      <value>ORC</value>
      <label>ORC</label>
      <description>The Optimized Row Columnar (ORC) file format ...</description>
    </entry>
    <entry>
      <value>TextFile</value>
      <label>TextFile</label>
      <description>Text file format saves Hive data as normal text.</description>
    </entry>
  </entries>
  <selection-cardinality>1</selection-cardinality>
 </value-attributes>
</property>

此外,您还需要确保为您的服务配置了主题。这需要编辑服务的 metainfo.xml。

<themes>
        <theme>
          <fileName>theme.json</fileName>
          <default>true</default>
        </theme>
</themes>

这些都记录在 Ambari wiki 中。