分享方式:


在 HDInsight 中上傳 Apache Hadoop 作業的資料

HDInsight 透過 Azure 儲存體和 Azure Data Lake Storage (包括 Gen1 與 Gen2) 提供 Hadoop 分散式檔案系統 (HDFS) 此儲存體包括 Gen2。 Azure 儲存體和 Data Lake Storage Gen2 是設計作為 HDFS 的延伸模組。 可讓 Hadoop 環境中的所有元件直接在其管理的資料上運作。 Azure 儲存體、Azure Data Lake Storage Gen 2 是相異的檔案系統。 這些系統都針對資料的儲存和計算進行過最佳化。 若想了解使用 Azure 儲存體的優點資訊,請參閱搭配 HDInsight 使用 Azure 儲存體。 另請參閱搭配 HDInsight 使用 Data Lake Storage Gen2

必要條件

開始進行之前,請注意下列需求:

將資料上傳至 Azure 儲存體

公用程式

Microsoft 提供下列公用程式來使用 Azure 儲存體:

工具 Linux OS X Windows
Azure 入口網站
Azure CLI
Azure PowerShell
AzCopy
Hadoop 命令

注意

Hadoop 命令只能在 HDInsight 叢集上使用。 此命令只允許從本機檔案系統將資料載入 Azure 儲存體中。

Hadoop 命令列

Hadoop 命令列僅適用於當資料已存在於叢集前端節點時,將資料儲存到 Azure 儲存體 blob。

若要使用 Hadoop 命令,您必須先使用 SSH 或 PuTTY 連線到前端節點。

連線之後,您就可以使用下列語法來將檔案上傳到儲存體。

hadoop fs -copyFromLocal <localFilePath> <storageFilePath>

例如,hadoop fs -copyFromLocal data.txt /example/data/data.txt

因為 HDInsight 的預設檔案系統位於 Azure 儲存體中,所以 /example/data/data.txt 實際上在 Azure 儲存體中。 您也可以用下列語法來參考此檔案:

wasbs:///example/data/data.txt

Or

wasbs://<ContainerName>@<StorageAccountName>.blob.core.windows.net/example/data/davinci.txt

如需其他可用來處理檔案的 Hadoop 命令清單,請參閱 https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html

警告

在 Apache HBase 叢集上,寫入資料時所使用的預設區塊大小是 256 KB。 雖然在使用 HBase API 或 REST API 時此大小可正常運作,但使用 hadoophdfs dfs 命令寫入大於 ~12 GB 的資料會導致錯誤。 如需詳細資訊,請參閱在 Blob 上寫入時的儲存體例外狀況

圖形化用戶端

其他還有數個應用程式也會提供可搭配 Azure 儲存體使用的圖形化介面。 以下資料表提供數個這類應用程式的清單:

用戶端 Linux OS X Windows
Microsoft Visual Studio Tools for HDInsight
Azure 儲存體總管
Cerulea
CloudXplorer
適用於 Microsoft Azure 的 CloudBerry 總管
Cyberduck

將 Azure 儲存體掛接為本機磁碟機

請參閱將 Azure 儲存體掛接為本機磁碟機

使用服務上傳

Azure Data Factory

Azure Data Factory 服務是完全受控的服務,可將資料儲存、處理及移動服務組合成有效率、可調整且可靠的資料生產管線。

儲存體類型 文件
Azure Blob 儲存體 使用 Azure Data Factory 將資料複製到 Azure Blob 儲存體或從該處複製資料
(../data-factory/connector-azure-data-lake-store.md)
Azure Data Lake Storage Gen2 使用 Azure Data Factory 將資料載入 Azure Data Lake Storage Gen2 中

Apache Sqoop

Sqoop 是一種專門在 Hadoop 和關聯式資料庫之間傳送資料的工具。 您可以使用 Sqoop 從 SQL Server、MySQL、Oracle 等關聯式資料庫管理系統 (RDBMS) 匯入資料, 然後再進入 Hadoop 分散式檔案系統 (HDFS), 使用 MapReduce 或 Hive 轉換 Hadoop 中的資料後,將資料匯出至 RDBMS。

如需詳細資訊,請參閱搭配 HDInsight 使用 Sqoop

開發 SDK

Azure 儲存體也可以使用 Azure SDK,透過下列程式設計語言進行存取:

  • .NET
  • Java
  • Node.js
  • PHP
  • Python
  • Ruby

如需安裝 Azure SDK 的詳細資訊,請參閱 Azure 下載

下一步

您現在已學會將資料匯入 HDInsight,接著請閱讀下列文章以了解分析: