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

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

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 儲存體或從該處複製資料
Azure Data Lake Storage Gen1 使用 Azure Data Factory 從 Azure Data Lake Storage Gen1 來回複製資料
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,接著請閱讀下列文章以了解分析: