再说dfs.umask

来源:互联网 发布:淘宝图片水印带qq 编辑:程序博客网 时间:2024/05/21 02:20

通过dfs.umask可以控制在hdfs上创建的文件夹和文件的属性,该值的默认值为0022。
今天想修改dfs.umask的时候发现,这个参数和linux中的umask不大一样。

比如我想让文件的属性为-rw-r–r–,那么在linux中应该设置umask为022,而设置dfs.mask的值为0022的时候,结果并不是我希望的。
后来发现在dfs.umask存储的10进制的值,对于linux的umask的022,对应10进制就是0018。
设置如下:

dfs.umask
0018 再次创建文件,权限已经正确了。

-rw-r–r– 1 hadoop supergroup 5 2012-05-29 15:21 /sunwg/3.dat


Coding: 

conf.setInteger( "dfs.umask",  xxx to the base 10);

Configure file: 

 <property>    <name>dfs.umask</name>    <value>???</value>  </property>


Update:

linux中的umask参数是八进制,而hadoop中类似作用的参数采用的是十进制,这样想要写入的文件权限为rwxr-x---(750),linux中umask需设为027,对应的十进制为2*8+7=23,所以将dfs.umask参数设为023,即可达到目的。



ref:  http://www.oratea.net/?p=1279

http://archive.cloudera.com/cdh/3/hadoop/hdfs_permissions_guide.html

原创粉丝点击