Một, vấn đề miêu tả
Sử dụng hadoop java api phỏng vấn hdfs, đọc lấy hdfs thượng sở hữu văn kiện tin tức. Nhưng là bởi vì không có phỏng vấn quyền hạn, báo sai:
Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=Lenovo, access=READ_EXECUTE, inode= "/tmp/.cloudera_health_monitoring_canary_files":hdfs:supergroup:d---------
at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkFsPermission(DefaultAuthorizationProvider.java:279)
at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.check(DefaultAuthorizationProvider.java:260)
at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkPermission(DefaultAuthorizationProvider.java:168)
at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:152)
at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:3885)
at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:3868)
at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPathAccess(FSDirectory.java:3839)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPathAccess(FSNamesystem.java:6793)
Nhị, vấn đề nguyên nhân
HDFS văn kiện hệ thống cao cấp quản lý tài khoản là hdfs, mà đối với bản cài đặt điều chỉnh thử, cam chịu sử dụng tài khoản tên là chính mình windows đổ bộ tài khoản username. Cho nên dẫn tới đối hdfs thượng văn kiện mục lục không có phỏng vấn quyền hạn.
Tam, phương pháp giải quyết
Sử bản cài đặt điều chỉnh thử khi, username mệnh danh là hdfs. Biện pháp giải quyết, tức vì tăng thêm hệ thống hoàn cảnh lượng biến đổi: HADOOP_USER_NAME=hdfs
1. Tăng thêm hệ thống hoàn cảnh lượng biến đổi
2. Khởi động lại máy tính, hoặc là gạch bỏ người dùng một lần nữa đăng nhập. Này một bước nhất định phải làm, nếu không phối trí không có hiệu lực.
3. Sau đó, một lần nữa điều chỉnh thử trình tự, là có thể lấy hdfs siêu cấp quản lý viên quyền hạn phỏng vấn hdfs thượng sở hữu folder!