匯出至 Hive 查詢

注意

適用于 : Machine Learning Studio (傳統)

此內容僅適用于 Studio (傳統) 。 Azure Machine Learning 設計工具中已新增類似的拖放模組。 若要深入瞭解 這兩個版本,請參閱這篇文章

本文說明如何在 Azure Machine Learning Studio 的「匯出資料」模組中使用 [將 資料匯出至 Hive ] 選項 (傳統) 。 當您使用非常大型的資料集,而且想要將機器學習實驗資料儲存至 Hadoop 叢集或 HDInsight 分散式儲存體時,此選項非常有用。 您也可能想要將中繼結果或其他資料匯出至 Hadoop,讓您可以使用 MapReduce 工作來處理它。

如何將資料匯出至 Hive

  1. 將「 匯出資料 」模組新增至您的實驗。 您可以在 Azure Machine Learning Studio 中的 資料輸入和輸出 類別 (傳統) 中找到此模組。

    將模組連接到您想要匯出的資料集。

  2. 針對 [ 資料來源],選取 [ Hive 查詢]。

  3. 在 [ hive 資料表名稱 ] 中,輸入要儲存資料集之 hive 資料表的名稱。

  4. 在 [ HCatalog 伺服器 URI ] 文字方塊中,輸入叢集的完整名稱。

    例如,如果您建立了名稱為的叢集 mycluster001 ,請使用下列格式:

    https://mycluster001.azurehdinsight.net

  5. 在 [ hadoop 使用者帳戶名稱 ] 文字方塊中,貼上您布建叢集時所使用的 Hadoop 使用者帳戶。

  6. 在 [ Hadoop 使用者帳戶密碼 ] 文字方塊中,輸入您布建叢集時所使用的認證。

  7. 針對 輸出資料的位置,請選取指出資料儲存位置的選項: HDFS 或 Azure。

    如果資料位於 Hadoop 分散式檔案系統 (HDFS) ,則必須可透過您剛剛輸入的相同帳戶和密碼存取。

    如果資料位於 Azure 中,請提供儲存體帳戶的位置和認證。

  8. 如果您選取了 hdfs 選項,請在 [ hdfs 伺服器 URI] 中指定不含前置詞的 HDInsight 叢集名稱 https://

  9. 如果您已選取 Azure 選項,請提供儲存體帳戶名稱,以及模組可用來連線至儲存體的認證。

    • Azure 儲存體帳戶名稱:輸入 azure 帳戶的名稱。 例如,如果儲存體帳戶的完整 URL 是 https://myshared.blob.core.windows.net ,您會輸入 myshared

    • Azure 儲存體金鑰:複製並貼上提供用來存取儲存體帳戶的金鑰。

    • Azure 容器名稱:指定叢集的 預設容器 。 如需兒子如何找出預設容器的秘訣,請參閱 技術 提示一節。

  10. 使用 快取的結果:如果您想要避免在每次執行實驗時重寫 Hive 資料表,請選取此選項。 如果模組參數沒有其他變更,則實驗只會在第一次執行模組時或資料變更時,寫入 Hive 資料表。

    如果您想要在每次執行實驗時寫入 Hive 資料表,請取消選取 [使用快取的 結果 ] 選項。

  11. 執行實驗。

範例

如需如何使用「 匯出資料 」模組的範例,請參閱 Azure AI 資源庫

技術提示

本節包含對常見問題的執行詳細資料、秘訣和解答。

常見問題

如何避免在寫入大型資料集時發生記憶體不足的問題

有時候,Hadoop 叢集的預設設定太過限制,無法支援執行 MapReduce 工作。 例如,在 HDInsight 的這些 版本 資訊中,預設設定會定義為四個節點的叢集。

如果 MapReduce 作業的需求超過可用容量,Hive 查詢可能會傳回 記憶體不足 的錯誤訊息,導致 匯出資料 作業失敗。 如果發生這種情況,您可以變更 Hive 查詢的預設記憶體配置。

如何避免不必要地重新載入相同資料

如果您不想要在每次執行實驗時重新建立 Hive 資料表,請選取 [使用快取的 結果 ] 選項為 [TRUE]。 當此選項設定為 TRUE 時,模組會檢查先前是否已執行實驗,如果找到先前的執行,就不會執行寫入作業。

使用提示

可能很難找出叢集的預設容器。 以下是一些秘訣:

  • 如果您使用預設設定來建立叢集,則會在建立叢集的相同時間建立相同名稱的容器。 該容器是叢集的預設容器。

  • 如果您使用 [ 自訂建立 ] 選項來建立叢集,則會提供兩個選項供您選取預設容器。

    現有的容器:如果您選取現有的容器,該容器就是叢集的預設儲存體容器。

    建立預設容器:如果您選取此選項,則會建立與叢集名稱相同的容器,您應該將該容器名稱指定為叢集的預設容器。

模組參數

Name 範圍 類型 預設 描述
資料來源 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 資料表