[英]Hadoop Command Not working while executing from c# code in Windows7, Error show : “Access is denied”
我正在使用winutils.exe task create ip ipconfig
執行Hadoop命令,並使用Admin特權從cmd winutils.exe task create ip ipconfig
,並顯示其結果。 但是,如果要在具有管理員權限的c#程序中嘗試相同操作,則會顯示“ Access is denied
錯誤。
錯誤:
C:Hadoop\bin>winutils.exe task create ip ipconfig
createTask error (5): Access is denied.
問題出在WinUtils.exe。 WinUtils.exe在task.c文件的createTask()方法中使用了AssignProcessToJobObject() 。
在Windows 7中,如果Jobobject已經分配了一個進程,則'AssignProcessToJobObject'無法分配新進程,並返回“ Access Denied”消息。
因此,當您以編程方式調用exe時,可能已經為jobObject分配了一個ProcessHandle,然后該ProcessHandle從“ AssignProcessToJobObject”函數返回為“拒絕訪問”。
修復:檢查JobObject中是否有任何關聯的進程,並且僅在未將jobObject分配給任何進程時才分配新進程。 確保所做的更改僅適用於Windows 7環境,並允許在Windows 8及更高版本的環境中使用默認代碼。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.