閱讀1031 返回首頁    go 人物


基於 EMR 的大數據計算__典型應用_用戶指南_雲數據庫 RDS 版-阿裏雲

E-MapReduce 是一項 Web 服務,簡化了大數據處理,提供的大數據框架可以讓您輕鬆、高速、經濟、安全、穩定地處理大數據,滿足如日誌分析、數據倉庫、商業智能、機器學習、科學模擬等業務需求。您可以運行 Hadoop、Spark 分析 RDS 中數據,也可以把分析完成的數據存放到 RDS 中,提供給在線係統使用。

通過 Sqoop 組件,可以實現 RDS 與 E-MapReduce 間數據的導入導出,實現大數據分析處理。

前提條件

  • 已開通 E-MapReduce 服務,並完成項目設置。
  • E-MapReduce 版本從 1.3 開始都會默認支持 Sqoop 組件,所以您無需自行安裝。

操作步驟

我們這裏主要介紹幾個常見的數據導入導出場景:

  1. MySQL -> HDFS
  2. HDFS -> MySQL
  3. MySQL -> Hive
  4. Hive -> MySQL
  5. 使用 SQL 作為導入條件

說明:在執行下麵的命令前,請先使用 su hadoop 命令切換你的用戶為 Hadoop。

從 MySQL 到 HDFS

在集群的 Master 節點上執行如下命令:

  1. sqoop import --connect jdbc:mysql://<dburi>/<dbname> --username <username> --password <password> --table <tablename> --target-dir <hdfs-dir>

參數說明如下:

  • dburi:數據庫的訪問連接,例如 jdbc:mysql://192.168.1.124:3306/
  • dbname:數據庫的名字,例如 user
  • username:數據庫登錄用戶名
  • password:用戶對應的密碼
  • tablename:MySQL 表的名字
  • hdfs-dir:hdfs 的寫入目錄,例如 /user/hive/result

詳細的參數使用說明請參見 Sqoop Import

從 HDFS 到 MySQL

  1. 創建好對應 HDFS 中的數據結構的 MySQL 表。

  2. 在集群的 Master 節點上執行如下命令,指定要導出的數據文件的路徑。

    1. sqoop export --connect jdbc:mysql://<dburi>/<dbname> --username <username> --password <password> --table <tablename> --export-dir <hdfs-dir>
    • dburi:數據庫的訪問連接,例如 jdbc:mysql://192.168.1.124:3306/
    • dbname:數據庫的名字,例如 user
    • username:數據庫登錄用戶名
    • password:用戶對應的密碼
    • tablename:MySQL 的表的名字
    • hdfs-dir:要導到 MySQL 去的 HDFS 的數據目錄,例如 /user/hive/result

詳細的參數使用說明請參見 Sqoop Export

從 MySQL 到 Hive

將數據導入 Hive 的同時也新建一個 Hive 表。

  1. sqoop import --connect jdbc:mysql://<dburi>/<dbname> --username <username> --password <password> --table <tablename> --fields-terminated-by "t" --lines-terminated-by "n" --hive-import --target-dir <hdfs-dir> --hive-table <hive-tablename>
  • dburi:數據庫的訪問連接,例如 jdbc:mysql://192.168.1.124:3306/
  • dbname:數據庫的名字,例如 user
  • username:數據庫登錄用戶名
  • password:用戶對應的密碼
  • tablename:MySQL 的表的名字
  • hdfs-dir:要導到 MySQL 去的 HDFS 的數據目錄,例如 /user/hive/result
  • hive-tablename:對應的 Hive 中的表名,可以是 xxx.yyy

詳細的參數使用說明請參見 Sqoop Import

從 Hive 到 MySQL

請參見從 HDFS 到 MySQL,隻需要指定 Hive 表對應的 HDFS 路徑即可。

使用 SQL 作為導入條件

除了指定 MySQL 的全表導入,還可以寫 SQL 來指定導入的數據

  1. sqoop import --connect jdbc:mysql://<dburi>/<dbname> --username <username> --password <password> --query <query-sql> --split-by <sp-column> --hive-import --hive-table <hive-tablename> --target-dir <hdfs-dir>
  • dburi:數據庫的訪問連接,例如 jdbc:mysql://192.168.1.124:3306/
  • dbname:數據庫的名字,例如 user
  • username:數據庫登錄用戶名
  • password:用戶對應的密碼
  • query-sql:使用的查詢語句,例如 SELECT * FROM profile WHERE id>1 AND $CONDITIONS。記得要用引號包圍,最後一定要帶上 AND $CONDITIONS
  • sp-column:進行切分的條件,一般跟 MySQL 表的主鍵
  • hdfs-dir:要導到 MySQL 去的 HDFS 的數據目錄,例如 /user/hive/result
  • hive-tablename:對應的 Hive 中的表名,可以是 xxx.yyy

詳細的參數使用說明請參見 Sqoop Query Import

集群和其他數據庫的網絡配置請參見 用 Aliyun E-MapReduce 集群的 Sqoop 工具和數據庫同步數據如何配置網絡

最後更新:2016-11-23 16:04:12

  上一篇:go 基於MaxCompute的大數據計算__典型應用_用戶指南_雲數據庫 RDS 版-阿裏雲
  下一篇:go 常用 SQL 命令(MySQL)__附錄_用戶指南_雲數據庫 RDS 版-阿裏雲