避免用户覆盖hadoop 2中的默认映射属性

避免用户覆盖hadoop 2中的默认映射属性,hadoop,hive,hbase,hive-configuration,Hadoop,Hive,Hbase,Hive Configuration,如何避免用户在提交配置单元作业时重写hadoop配置文件的默认属性 Exmaple: mapred-site.xml: <property> <name>mapreduce.job.heap.memory-mb.ratio</name> <value>0.8</value> </property> 发件人: 配置参数可以声明为最终参数。曾经是一种资源 声明一个值final,随后加载的资源不能更改该值 值

如何避免用户在提交配置单元作业时重写hadoop配置文件的默认属性

Exmaple:

mapred-site.xml:

<property>
    <name>mapreduce.job.heap.memory-mb.ratio</name>
    <value>0.8</value>
  </property>
发件人:

配置参数可以声明为最终参数。曾经是一种资源 声明一个值final,随后加载的资源不能更改该值 值(…)管理员通常在core-site.xml中将用户应用程序可能不会更改的值的参数定义为final


dfs.hosts.include
/etc/hadoop/conf/hosts.include
真的
因此,如果您的用户通过JDBC连接,您只需修改配置即可。HiveServer2用于使某些道具成为“最终”道具的文件

如果您的用户连接到遗留的
hive
CLI,并且他们不是黑客,那么您只需(a)修改Hadoop客户端的全局配置,或者(b)修改“hive”启动器脚本,以便它在非默认目录中选择特定的配置文件(通常通过在标准Hadoop类路径之前强制使用自定义目录来完成)

如果您的用户是黑客,并且他们可以访问传统的
配置单元
CLI,他们可以覆盖配置文件本身,因此在技术上您无法强制执行
属性。但无论如何,如果有人能够做到这一点,那么他/她很可能会从以下位置获得您的工作;-)

配置参数可以声明为最终参数。曾经是一种资源 声明一个值final,随后加载的资源不能更改该值 值(…)管理员通常在core-site.xml中将用户应用程序可能不会更改的值的参数定义为final


dfs.hosts.include
/etc/hadoop/conf/hosts.include
真的
因此,如果您的用户通过JDBC连接,您只需修改配置即可。HiveServer2用于使某些道具成为“最终”道具的文件

如果您的用户连接到遗留的
hive
CLI,并且他们不是黑客,那么您只需(a)修改Hadoop客户端的全局配置,或者(b)修改“hive”启动器脚本,以便它在非默认目录中选择特定的配置文件(通常通过在标准Hadoop类路径之前强制使用自定义目录来完成)

如果您的用户是黑客,他们可以访问传统的
配置单元
CLI,他们可以覆盖配置文件本身,因此在技术上您无法强制执行
属性。但无论如何,如果有人能够做到这一点,那么他/她可能会得到您的工作;-)

set mapreduce.job.heap.memory-mb.ratio=0.9 
<property>
  <name>dfs.hosts.include</name>
  <value>/etc/hadoop/conf/hosts.include</value>
  <final>true</final>
</property>