避免用户覆盖hadoop 2中的默认映射属性
如何避免用户在提交配置单元作业时重写hadoop配置文件的默认属性 Exmaple: mapred-site.xml:避免用户覆盖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,随后加载的资源不能更改该值 值
<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>