kettle 遠程mysql 表導入到 hadoop hive
(教學用 )
文章目錄
- kettle 遠程mysql 表導入到 hadoop hive
- 創建 對象 執行 SQL 語句 -mysql 導出 CSV格式
- CSV 文件遠程上傳到 HDFS
- 運行 SSH 命令
- 遠程登錄 run SSH 并執行 hadoop fs -put
- 建表和加載數據
- 總結
創建 對象 執行 SQL 語句 -mysql 導出 CSV格式
SELECT *
INTO OUTFILE '/home/mysql-files/sakila_actor9.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY ''
LINES TERMINATED BY '\n'
FROM sakila.actor;
CSV 文件遠程上傳到 HDFS
運行 SSH 命令
遠程登錄 run SSH 并執行 hadoop fs -put
/opt/module/hadoop-3.3.0/bin/hadoop fs -put /home/mysql-files/sakila_actor9.csv /user/hive/warehouse/
建表和加載數據
CREATE EXTERNAL TABLE IF NOT EXISTS sakiladb.actor9
(actor_id STRING COMMENT 'from deserializer',first_name STRING COMMENT 'from deserializer',last_name STRING COMMENT 'from deserializer',last_update STRING COMMENT 'from deserializer'
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',' -- 列分隔符
STORED AS TEXTFILE;LOAD DATA INPATH '/user/hive/warehouse/sakila_actor9.csv' INTO TABLE actor9;
總結
通過 Kettle (Pentaho Data Integration),我們能夠輕松地將遠程 MySQL 數據庫中的數據導出到 CSV 文件,上傳到 HDFS,并最終將數據導入 Hive。這樣,我們可以利用 Hadoop 的強大計算能力來進行數據處理和分析。以下是整個過程的概覽:
導出 MySQL 數據為 CSV 格式:使用 Table Input 和 Text File Output 步驟。
上傳 CSV 文件到 HDFS:通過 SSH Connection 執行 hadoop fs -put 命令。
在 Hive 中創建表并加載數據:使用 CREATE TABLE 和 LOAD DATA 命令。
這個過程不僅適用于 MySQL 和 Hive,也可以根據需要適配其他數據源和目標系統。