避免用户重写Hadoop2中的默认Map属性

knsnq2tg  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(294)

如何避免用户在提交配置单元作业时重写hadoop配置文件的默认属性?
exmaple公司:
mapred-site.xml:

<property>
    <name>mapreduce.job.heap.memory-mb.ratio</name>
    <value>0.8</value>
  </property>

用户在配置单元作业中使用下面的属性来覆盖

set mapreduce.job.heap.memory-mb.ratio=0.9
cwtwac6a

cwtwac6a1#

来自hadoop文档:
配置参数可以声明为最终参数。一旦资源声明了final值,随后加载的资源就不能更改该值(…)管理员通常在core-site.xml中为用户应用程序不能更改的值定义final参数。

<property>
  <name>dfs.hosts.include</name>
  <value>/etc/hadoop/conf/hosts.include</value>
  <final>true</final>
</property>

因此,如果您的用户通过jdbc连接,您只需修改配置。hiveserver2用来使某些道具成为“最终”道具的文件。
如果您的用户连接到旧版 hive 他们不是黑客,你只需要(a)修补hadoop客户机的全局配置,或者(b)修补“hive”启动程序脚本,以便它在非默认目录中选择特定的配置文件(通常通过在标准hadoop类路径之前强制使用自定义目录)。
如果你的用户是黑客,他们可以访问遗留的 hive cli,它们可以覆盖配置文件本身,因此技术上您无法强制 <final> 属性。但无论如何,如果有人能做到这一点,那么他/她很可能会得到你的工作;-)

相关问题