在 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 HDInsight 叢集。 如需指示,請參閱開始使用 Azure HDInsight。
- 下列文章的知識:
將資料上傳至 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 時此大小可正常運作,但使用 hadoop
或 hdfs dfs
命令寫入大於 ~12 GB 的資料會導致錯誤。 如需詳細資訊,請參閱在 Blob 上寫入時的儲存體例外狀況。
圖形化用戶端
其他還有數個應用程式也會提供可搭配 Azure 儲存體使用的圖形化介面。 以下資料表提供數個這類應用程式的清單:
用戶端 | Linux | OS X | Windows |
---|---|---|---|
Microsoft Visual Studio Tools for HDInsight | ✔ | ✔ | ✔ |
Azure 儲存體總管 | ✔ | ✔ | ✔ |
Cerulea |
✔ | ||
CloudXplorer | ✔ | ||
適用於 Microsoft Azure 的 CloudBerry 總管 | ✔ | ||
Cyberduck | ✔ | ✔ |
將 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,接著請閱讀下列文章以了解分析: