如何避免用户在提交配置单元作业时重写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
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> 属性。但无论如何,如果有人能做到这一点,那么他/她很可能会得到你的工作;-)
hive
<final>
1条答案
按热度按时间cwtwac6a1#
来自hadoop文档:
配置参数可以声明为最终参数。一旦资源声明了final值,随后加载的资源就不能更改该值(…)管理员通常在core-site.xml中为用户应用程序不能更改的值定义final参数。
因此,如果您的用户通过jdbc连接,您只需修改配置。hiveserver2用来使某些道具成为“最终”道具的文件。
如果您的用户连接到旧版
hive
他们不是黑客,你只需要(a)修补hadoop客户机的全局配置,或者(b)修补“hive”启动程序脚本,以便它在非默认目录中选择特定的配置文件(通常通过在标准hadoop类路径之前强制使用自定义目录)。如果你的用户是黑客,他们可以访问遗留的
hive
cli,它们可以覆盖配置文件本身,因此技术上您无法强制<final>
属性。但无论如何,如果有人能做到这一点,那么他/她很可能会得到你的工作;-)