匯出至 Hive 查詢
重要
Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning。
自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。
ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。
本文說明如何在機器學習 Studio (傳統) 中,使用 [匯出資料] 模組中的 [匯出資料到 Hive ] 選項。 當您使用非常大型的資料集,而且想要將機器學習實驗資料儲存至 Hadoop 叢集或 HDInsight 分散式儲存體時,此選項非常有用。 您也可能想要將中繼結果或其他資料匯出至 Hadoop,以便您可以使用 MapReduce 作業來處理它。
如何將資料匯出至 Hive
將「 匯出資料 」模組新增至您的實驗。 您可以在機器學習 Studio (傳統) 的 [資料輸入] 和 [輸出] 分類中找到此模組。
連線模組加入您想要匯出的資料集。
針對 [ 資料來源],選取 [ Hive 查詢]。
在 [ hive 資料表名稱 ] 中,輸入要儲存資料集之 hive 資料表的名稱。
在 [ HCatalog 伺服器 URI ] 文字方塊中,輸入叢集的完整名稱。
例如,如果您建立了名稱
mycluster001
為的叢集,請使用下列格式:https://mycluster001.azurehdinsight.net
在 [ hadoop 使用者帳戶名稱 ] 文字方塊中,貼上您布建叢集時所使用的 Hadoop 使用者帳戶。
在 [ Hadoop 使用者帳戶密碼 ] 文字方塊中,輸入您布建叢集時所使用的認證。
針對 輸出資料的位置,請選取指出資料儲存位置的選項: HDFS 或 Azure。
如果資料位於 Hadoop 分散式檔案系統 (HDFS) ,則必須可透過您剛剛輸入的相同帳戶和密碼存取。
如果資料位於 Azure 中,請提供儲存體帳戶的位置和認證。
如果您選取了 hdfs 選項,請在 [ hdfs 伺服器 URI] 中指定不含
https://
前置詞的 HDInsight 叢集名稱。如果您已選取 Azure 選項,請提供儲存體帳戶名稱,以及模組可用來連線至儲存體的認證。
Azure 儲存體帳戶名稱:輸入 azure 帳戶的名稱。 例如,如果儲存體帳戶的完整 URL 是
https://myshared.blob.core.windows.net
,您會輸入myshared
。Azure 儲存體金鑰:複製並貼上提供用來存取儲存體帳戶的金鑰。
Azure 容器名稱:指定叢集的 預設容器 。 如需兒子如何找出預設容器的秘訣,請參閱 技術 提示一節。
使用快取的結果:如果您想要避免在每次執行實驗時重寫 Hive 資料表,請選取此選項。 如果模組參數沒有其他變更,則實驗只會在第一次執行模組時或資料變更時,寫入 Hive 資料表。
如果您想要在每次執行實驗時寫入 Hive 資料表,請取消選取 [使用快取的 結果 ] 選項。
執行實驗。
範例
如需如何使用「 匯出資料 」模組的範例,請參閱 Azure AI 資源庫。
- 先進的分析程式和技術實務:使用 HDInsight Hadoop叢集:本文提供詳細的逐步解說,說明如何建立叢集、上傳資料,以及使用 Hive 從 Studio (傳統) 呼叫資料。
技術說明
本節包含實作詳細資料、提示和常見問題集的解答。
常見問題
如何避免在寫入大型資料集時發生記憶體不足的問題
有時候,Hadoop 叢集的預設設定太過限制,無法支援執行 MapReduce 作業。 例如,在 HDInsight 的這些 版本 資訊中,預設設定會定義為四個節點的叢集。
如果 MapReduce 作業的需求超過可用容量,Hive 查詢可能會傳回記憶體不足的錯誤訊息,導致匯出資料作業失敗。 如果發生這種情況,您可以變更 Hive 查詢的預設記憶體配置。
如何避免不必要地重新載入相同資料
如果您不想要在每次執行實驗時重新建立 Hive 資料表,請選取 [使用快取的 結果 ] 選項為 [TRUE]。 當此選項設定為 TRUE 時,模組會檢查先前是否已執行實驗,如果找到先前的執行,就不會執行寫入作業。
使用提示
可能很難找出叢集的預設容器。 以下是一些秘訣:
如果您使用預設設定來建立叢集,則會在建立叢集的相同時間建立相同名稱的容器。 該容器是叢集的預設容器。
如果您使用 [ 自訂建立 ] 選項來建立叢集,則會提供兩個選項供您選取預設容器。
現有的容器:如果您選取現有的容器,該容器就是叢集的預設儲存體容器。
建立預設容器:如果您選取此選項,則會建立與叢集名稱相同的容器,您應該將該容器名稱指定為叢集的預設容器。
模組參數
名稱 | 範圍 | 類型 | 預設 | 描述 |
---|---|---|---|---|
資料來源 | List | 資料來源或接收 | Azure Blob 儲存體 | 資料來源可以是 HTTP、FTP、匿名 HTTPS 或 FTPS,Azure BLOB 儲存中的檔案、Azure 資料表、Azure SQL Database、Hive 資料表或 OData 端點。 |
Hive 資料表名稱 | 任意 | String | 無 | Hive 中的資料表名稱 |
HCatalog 伺服器 URI | 任意 | String | 無 | Templeton 端點 |
Hadoop 使用者帳戶名稱 | 任意 | String | 無 | Hadoop HDFS/HDInsight 使用者名稱 |
Hadoop 使用者帳戶密碼 | 任意 | SecureString | 無 | Hadoop HDFS/HDInsight 密碼 |
輸出資料的位置 | 任意 | DataLocation | HDFS | 指定 HDFS 或適用于 outputDir 的 Azure |
HDFS 伺服器 URI | 任意 | String | 無 | HDFS rest 端點 |
Azure 儲存體帳戶名稱 | 任意 | String | 無 | Azure 儲存體帳戶名稱 |
Azure 儲存體金鑰 | 任意 | SecureString | 無 | Azure 儲存體金鑰 |
Azure 容器名稱 | 任意 | String | 無 | Azure 容器名稱 |
使用快取的結果 | TRUE/FALSE | Boolean | FALSE | 只有在有效的快取不存在時才會執行模組;否則,請使用先前執行的快取資料。 |
例外狀況
例外狀況 | 描述 |
---|---|
錯誤 0027 | 當兩個物件的大小必須相同但卻不同時,就會發生例外狀況。 |
錯誤 0003 | 如果一或多個輸入是 Null 或空白,就會發生例外狀況。 |
錯誤 0029 | 傳遞無效的 URI 時,就會發生例外狀況。 |
錯誤 0030 | 無法下載檔案時,就會發生例外狀況。 |
錯誤 0002 | 如果有一或多個參數無法剖析或從指定的類型轉換成目標方法所需的類型,就會發生例外狀況。 |
錯誤 0009 | 如果指定的 Azure 儲存體帳戶名稱或容器名稱不正確,就會發生例外狀況。 |
錯誤 0048 | 無法開啟檔案時,就會發生例外狀況。 |
錯誤 0046 | 無法在指定的路徑上建立目錄時,就會發生例外狀況。 |
錯誤 0049 | 無法剖析檔案時,就會發生例外狀況。 |
如需 Studio (傳統) 模組特定的錯誤清單,請參閱機器學習錯誤碼。
如需 API 例外狀況的清單,請參閱機器學習 REST API 錯誤碼。
另請參閱
匯入資料
匯出資料
匯出至 Azure SQL Database
匯出至 Azure Blob 儲存體
匯出至 Azure 資料表