HBase 源码-Invalid directory in dfs.data.dir: Incorrect permission

▼魔方 西西 提交于 2019-12-17 15:59:41

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

根据前文《HBase 源码-Start Server启好 Server 后, 茫然了, 不知接下来该做什么, 随便 run 几个 TestCase 吧.
结果没 run 几个就报出以下错误, 而且这个引发这个错误的 TestCase 还很多. 

2013-12-04 10:45:57,823 WARN [main] datanode.DataNode(1707): Invalid directory in dfs.data.dir: Incorrect permission for /home/zf/src/EclipseWorkspace/hbase/hbase-server/target/test-data/06b243a4-b3d6-48a5-803a-a187b5b0efcf/dfscluster_cd8fe91f-a244-48f5-a411-f6108a0e8aba/dfs/data/data1, expected: rwxr-xr-x, while actual: rwxrwxr-x
2013-12-04 10:45:57,829 WARN [main] datanode.DataNode(1707): Invalid directory in dfs.data.dir: Incorrect permission for /home/zf/src/EclipseWorkspace/hbase/hbase-server/target/test-data/06b243a4-b3d6-48a5-803a-a187b5b0efcf/dfscluster_cd8fe91f-a244-48f5-a411-f6108a0e8aba/dfs/data/data2, expected: rwxr-xr-x, while actual: rwxrwxr-x
2013-12-04 10:45:57,829 ERROR [main] datanode.DataNode(1713): All directories in dfs.data.dir are invalid.

错误提示说目录权限不对, 可是这些目录都是由代码自动创建的啊, 这样权限怎么会不对呢?

笨狐狸的指导下, 看了《Linux命令之umask, 估计应该是本机的 umask 没有设置正确. 

在 Terminal 中输入 umask 查看本机的 umask, 果然为 0002, 而不是 0022. 按以下步骤修改 umask 为 0022, 问题解决.
(1). 在 Terminal 中输入以下命令

sudo vim ~/.profile
(2). 可以看到第 9 行就是需要设置的 umask, 只是被注释掉了, 将最前面的 # 删掉并保存即可.

(3). 注销用户, 重新登录. 可以看到 umask 变成了 0022.

 

环境
Ubuntu 12.04(64-bit) + Eclipse Standard Kepler SR1 + HBase 0.97.0-SNAPSHOT JDK 1.7.0_45 + Maven 3.0.4

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!