Sqoop的匯入匯出

2021-09-27 03:38:50 字數 3639 閱讀 3628

​ 在 sqoop 中,「匯入」概念指:從非大資料集群(rdbms)向大資料集群(hdfs,hive,hbase)中傳輸資料,叫做:匯入,即使用import關鍵字。

​ rdbms:關聯式資料庫管理系統

全部匯入

#!/usr/bin/env bash

sqoop import \

--connect jdbc:mysql://bigdata111:3306/test \

--username root \

--password 000000 \

--table student \

--target-dir /user/test/student \

--delete-target-dir \

--fields-terminated-by "\t"

​ --connect:連線資料庫

​ --username:使用者名稱

​ --password:密碼

​ --table:匯入的表

​ --target-dir:匯入到 hdfs 上的路徑

​ --delete-target-dir:如果已經存在就刪除

​ --fields-terminated-by:分隔符

查詢匯入

#!/usr/bin/env bash

sqoop import \

--connect jdbc:mysql://bigdata111:3306/test \

--username root \

--password 000000 \

--target-dir /user/test/student1 \

--delete-target-dir \

--fields-terminated-by "\t" \

--query 'select name,*** from student where id <=6 and $conditions;'

尖叫提示:must contain 『$conditions』 in where clause. 注:conditions 翻譯『條件』

尖叫提示:如果後使用的是雙引號,則前必須加轉移符,防止識別為自己的變數。

匯入指定列

#!/usr/bin/env bash

sqoop import \

--connect jdbc:mysql://bigdata111:3306/test \

--username root \

--password 000000 \

--target-dir /user/test/student2 \

--delete-target-dir \

--fields-terminated-by "\t" \

--columns id,name \

--table student

尖叫提示:columns中如果涉及到多列,用逗號分隔,分隔時不要新增空格

使用sqoop關鍵字篩選查詢匯入資料:

#!/usr/bin/env bash

sqoop import \

--connect jdbc:mysql://bigdata111:3306/test \

--username root \

--password 000000 \

--target-dir /user/test/student3 \

--delete-target-dir \

--fields-terminated-by "\t" \

--table student \

--where "id=2"

尖叫提示:在sqoop中可以使用sqoop import -d property.name=property.value這樣的方式加入執行任務的引數,多個引數用空格隔開。

#!/usr/bin/env bash

sqoop import \

--connect jdbc:mysql://bigdata111:3306/test \

--username root \

--password 000000 \

--table student \

--hive-import \

--fields-terminated-by "\t" \

--hive-overwrite \

--hive-table jds.student_hive

尖叫提示:該過程分為兩步,第一步將資料匯入到hdfs,第二步將匯入到hdfs的資料遷移到hive倉庫

尖叫提示:從mysql到hive,本質時從mysql => hdfs => load to hive

​ 在 sqoop 中,「匯出」 概念指:從大資料集群(hdfs,hive,hbase)向非大資料集群(rdbms)中傳輸資料,叫做:匯出,即使用 export 關鍵字。

#!/usr/bin/env bash

sqoop export \

--connect jdbc:mysql://bigdata111:3306/test?characterencoding=utf-8 \

--username root \

--password 000000 \

--export-dir /user/hive/warehouse111/student_hive \

--table student1 \

--input-fields-terminated-by "\t"

尖叫提示:mysql 中如果表不存在,不會自動建立,自行根據表結構建立

思考:資料是覆蓋還是追加 答案:追加

尖叫提示:如果是追加,資料庫不能設定主鍵

尖叫提示:如果出現卡頓,則在 yarn-site.xml 中加入以下配置

>

>

yarn.nodemanager.resource.memory-mbname

>

>

20480value

>

property

>

>

>

yarn.scheduler.minimum-allocation-mbname

>

>

2048value

>

property

>

>

>

yarn.nodemanager.vmem-pmem-rationame

>

>

2.1value

>

property

>

sqoop匯入匯出

sqoop官方手冊位址 最近在看sqoop有些感想,就寫下來。sqoop是大資料裡面匯入匯出的乙個工具。關於import匯出 可以從mysql匯出到hdfs,hbase,hive,案例如下,這是乙個匯出到hdfs的案例 import connect jdbc mysql username root ...

sqoop匯入 匯出

全部匯入 sqoop import connect jdbc mysql hadoop01 3306 test1 username root password 1234 table students target dir user test1 delete target dir fields ter...

Sqoop(二) Sqoop匯入 匯出資料

1.2 rdbms hive 1.3 rdbms hbase 2.匯出資料 在sqoop中,匯入 概念指 從非大資料集群 rdbms 向大資料集群 hdfs,hive,hbase 中傳輸資料,叫做 匯入,即使用import關鍵字。sqoop import connect jdbc mysql top...