Hadoop Sqoop介紹
一 Sqoop
Sqoop是一款開源的工具,主要用於在Hadoop(Hive)與傳統的資料庫(mysql、postgresql...)間進行資料的傳遞,可以將一個關係型資料庫(例如 : MySQL ,Oracle ,PostgreSQL等)中的資料導進到Hadoop的HDFS中,也可以將HDFS的資料導進到關係型資料庫中。
對於某些NoSQL資料庫它也提供了聯結器。Sqoop,類似於其他ETL工具,使用後設資料模型來判斷資料型別並在資料從資料來源轉移到Hadoop時確保型別安全的資料處理。Sqoop專為大資料批量傳輸設計,能夠分割資料集並建立Hadoop任務來處理每個區塊。
Sqoop 是 apache 旗下一款“Hadoop 和關聯式資料庫伺服器之間傳送資料”的工具。
核心的功能有兩個:匯入、遷入;匯出、遷出
匯入資料:MySQL,Oracle 匯入資料到 Hadoop 的 HDFS、HIVE、HBASE 等資料儲存系統
匯出資料:從 Hadoop 的檔案系統中匯出資料到關聯式資料庫 mysql 等 Sqoop 的本質還是一個命令列工具,和 HDFS,Hive 相比,並沒有什麼高深的理論。
Sqoop:本質就是遷移資料, 遷移的方式:就是把sqoop的遷移命令轉換成MR程式
Hive:本質就是執行計算,依賴於HDFS儲存資料,把SQL轉換成MR程式
二 Sqoop工作機制
Sqoop將匯入或匯出命令翻譯成 MapReduce 程式來實現 在翻譯出的 MapReduce 中主要是對 InputFormat 和 OutputFormat 進行定製。
三 演示案例
3.1查詢mysql中的資料庫
sqoop list-databases --connect jdbc:mysql://127.0.0.1:3306 --username root --password 123456
3.2 匯入操作
3.2.1 Sqoop匯入資料到HDFS中
sqoop-import --append --connect 'jdbc:mysql://192.168.154.134:3306/mmzs' --username 'root' --password '123456' --query 'select * from mmzs.testsqoop where uid>3 and $CONDITIONS' -m 1 --target-dir '/user/hive/warehouse/mmzs.db/testsqoop' --fields-terminated-by '\t' --lines-terminated-by '\n'
3.2.2 條件匯入
1、query, where子句必須有$CONDITIONS(固定寫法)
sqoop-import \
--connect jdbc:mysql://haoguan-HP-Compaq-Pro-6380-MT:3306/testdb \
--username root \
--password 123456 \
--query 'select id,account from from user where account="ddd" and $CONDITIONS' \
--target-dir /user/haoguan/sqoop/import/user_parquet \
--delete-target-dir \
--fields-terminated-by '\t' \
--num-mappers 1 \
--as-parquetfile
2、columns指定匯入的欄位(--columns account,password欄位之間不能有空格)
sqoop-import \
--connect jdbc:mysql://127.0.0.1:3306/testdb \
--username root \
-P \
--table user \
--columns account,password \
--target-dir /sqoop/import/user_column \
--delete-target-dir \
--fields-terminated-by '\t' \
--num-mappers 1 \
--direct
3、包含where子句
sqoop-import \
--connect jdbc:mysql://109.123.121.104:3306/testdb \
--username root \
--password 123456 \
--table user \
--where 'id > 5 and account like "f%"' \
--target-dir /sqoop/import/user_where \
--delete-target-dir \
--fields-terminated-by '\t' \
-m 1 \
--direct
3.3 匯出操作
3.3.1 匯出資料到MySql
sqoop-export \
--connect jdbc:mysql://127.0.0.1:3306/testdb \
--username root \
--password 123456 \
--table user_from_hive \
--export-dir /sqoop/import/user \
--input-fields-terminated-by '\t' \
-m 1
常用引數
--connect <jdbc-uri> jdbc 連線地址
--connection-manager <class-name> 連線管理者
--driver <class-name> 驅動類
--hadoop-mapred-home <dir> $HADOOP_MAPRED_HOME
--help help 資訊
-P 從命令列輸入密碼
--password <password> 密碼
--username <username> 賬號
--verbose 列印流程資訊
--connection-param-file <filename> 可選引數
-m是指定map任務的個數
資料整理與引用
1、https://baike.baidu.com/item/sqoop/5033853
2、https://www.cnblogs.com/qingyunzong/p/8807252.html
3、https://www.cnblogs.com/guanhao/p/5621330.html
相關文章
- hadoop匯入資料工具sqoop介紹Hadoop
- Sqoop的介紹和安裝OOP
- Hadoop介紹Hadoop
- 1- hive和sqoop元件介紹HiveOOP元件
- Hadoop Hive介紹HadoopHive
- hadoop家族介紹Hadoop
- 【Hadoop】9、Sqoop元件Hadoop元件
- Sqoop架構和常用命令介紹OOP架構
- Hadoop進階命令使用介紹Hadoop
- Hadoop-HA節點介紹Hadoop
- [Hadoop]chukwa的簡單介紹Hadoop
- Hadoop生態系統介紹Hadoop
- Hadoop日記Day1---Hadoop介紹Hadoop
- hadoop實戰3(web管理介面介紹及NN,DN,SNN介紹)HadoopWeb
- 大資料 Hadoop介紹、配置與使用大資料Hadoop
- 大資料和Hadoop平臺介紹大資料Hadoop
- Hadoop日記Day5---HDFS介紹Hadoop
- Hadoop叢集中Hbase的介紹、安裝、使用Hadoop
- 大資料以及Hadoop相關概念介紹大資料Hadoop
- [Hadoop]轉載-Pig的簡單介紹Hadoop
- Hadoop 從 0 到 1 學習 ——第一章 Hadoop 介紹Hadoop
- Hadoop2.6.0子專案hadoop-mapreduce-examples的簡單介紹Hadoop
- 從零自學Hadoop(19):HBase介紹及安裝Hadoop
- 從零自學Hadoop(23):Impala介紹及安裝Hadoop
- 從零自學Hadoop(14):Hive介紹及安裝HadoopHive
- 20202.9.29課堂筆記(Sqoop介紹及資料遷移)筆記OOP
- Hadoop2原始碼分析-YARN RPC 示例介紹Hadoop原始碼YarnRPC
- Hadoop簡紹Hadoop
- 大資料時代之hadoop(六):hadoop 生態圈(pig,hive,hbase,ZooKeeper,Sqoop)大資料HadoopHive
- 大資料系統框架中hadoop服務角色介紹大資料框架Hadoop
- Hadoop簡介!Hadoop
- Hadoop 簡介Hadoop
- Hadoop叢集三種作業排程演算法介紹Hadoop演算法
- [Hadoop]Sqoop 1.4.2中文文件(一)之資料匯入Hadoop
- [Hadoop]Sqoop 1.4.2中文文件(二)之資料匯出Hadoop
- hadoop常用四大模組及五大程式節點介紹Hadoop
- Hadoop多使用者資源管理–Fair Scheduler介紹與配置(Yarn)HadoopAIYarn
- Sqoop之 Sqoop 1.4.6 安裝OOP