2013-12-09 60 views
0

我在通過Powershell使HDInsight工作時遇到了一些問題。作爲臨時解決方案,任何人都可以通過bat文件指向運行Hive/Hadoop腳本的正確方向。在HDInsight上運行Hive和Hadoop批處理文件

我試着創建一個bat文件並將其更改爲配置單元bin文件夾並運行一些命令,但它沒有工作。我猜這是打開dos提示符並運行命令而不是hadoop命令行。

乾杯,克里斯。

回答

1

可以使用Hive條命令行中的簇頭節點上運行的.bat文件。爲此,您必須在Azure控制面板中啓用遠程桌面,然後將RDP啓動到頭節點。

然後,您可以運行包含的東西.bat文件像

%Hive_Home%\bin\hive -e "your query here" 
如果你有一個較長的查詢它可能是有意義的提出,在一個單獨的文件和使用

%Hive_Home%\bin\hive -f "your query here" 

雖然這是可能,但它當然不是建議。我強烈建議不要在羣集上啓用遠程桌面連接,而是使用來自正在執行調度的客戶端的PowerShell Invoke-Hive命令。當然如果你真的需要的話,你可以把這個PowerShell的執行包裝在一個bat文件中,但是在那個時候你並沒有真正獲得任何東西。如果您的目標是安排一個配置單元查詢來運行,那麼您最好只是安排一個PowerShell腳本。

+0

我可以只添加一下,我遇到了一個限制,從Powershell提交的作業看起來在一小時後失敗,出現錯誤「請求的任務未能在分配的時間內完成(01:00:00)」。即使這項工作實際上並沒有失敗,它仍然在運行。由於這個原因,我有時更喜歡通過頭節點上的命令行來運行Hive作業。 – jamiet

+0

@jamiet,invoke-hive有一個超時你不能改變。如果您想要發出較長時間的運行查詢,請使用New-AzureHDInsightHiveJobDefinition/Start-AzureHDInsightJob – Cary