我在scala中創建了一個spark應用程序。我從shell腳本中調用了spark提交命令由於目錄級別上的權限問題導致Spark作業失敗
我的spark應用程序正在從HDFS輸入目錄讀取文件。
我用用戶作爲構建運行spark工作。我的火花的工作是試圖讀取並處理所有文件/數據/出版/源/烏龜/ tracking_id_log/TRACKING_ID_LOG_FULL
/數據/出版/源/歐米茄/ omega_tracking_log/OMEGA_LOG_FULL是由用戶的地鐵創建的目錄
地鐵和建造是在同一組名爲hadoop
我可以清楚地看到,建立用戶有讀取訪問該HDFS目錄,那麼爲什麼我會得到下面的錯誤?
Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=build, access=READ_EXECUTE,\
inode="/data/published/source/omega/omega_tracking_log/OMEGA_LOG_FULL":metro:hadoop:drwxr-----
at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkFsPermission(DefaultAuthorizationProvider.java:257)
at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.check(DefaultAuthorizationProvider.java:238)
at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkPermission(DefaultAuthorizationProvider.java:151)
at org.apache.sentry.hdfs.SentryAuthorizationProvider.checkPermission(SentryAuthorizationProvider.java:174)
at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:138)
以下是一個HDFS目錄
bash-4.1$ hdfs dfs -ls /data/published/source/omega/omega_tracking_log
Found 3 items
drwxr----- - metro hadoop 0 2017-06-12 13:12 /data/published/source/omega/omega_tracking_log/OMEGA_LOG_FULL
如果火花想從一個HDFS目錄讀取所有文件,並進行處理,然後它我們需要有EXECUTE對HDFS目錄的訪問的訪問引發用戶以及?
HDFS作品完全像一個Linux文件系統:目錄上的READ權限只是讓你讀取它的*名稱*。要*瀏覽內容*您需要EXECUTE特權。 –
@Samson:這是否意味着如果一個Spark應用程序正在讀取HDFS目錄中的所有文件,那麼我們應該對該HDFS目錄執行EXECUTE訪問,並且可以讀取該HDFS目錄中的所有文件? –
是的,目錄中的'r'和'x'以及內部文件中的'r'。只是運行測試! –