2023學年完整公開課版教學Sqoop實戰_第1頁
2023學年完整公開課版教學Sqoop實戰_第2頁
2023學年完整公開課版教學Sqoop實戰_第3頁
2023學年完整公開課版教學Sqoop實戰_第4頁
2023學年完整公開課版教學Sqoop實戰_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

主講:張義0102目錄查看數據庫數據導入HDFS03導入部分數據04使用配置文件控制導入查看數據庫1查看數據庫主要使用list-databases命令來對數據庫進行查看:sqooplist-databases\--connectjdbc:mysql://master:3306\--usernamehive\--password123456數據導入HDFS2數據導入HDFS我們將test庫下的customer表導入hdfs中,customer表的建表指令及insert數據指令如下:Create

table

customer(id

int,name

varchar(50));Insert

in

to

customer

values(1,'neil’);Insert

in

to

customer

values(2,'jack’);Insert

in

to

customer

values(3,'martin’);Insert

in

to

customer

values(4,'tony’);Insert

in

to

customer

values(5,'eric');數據導入HDFS我們執行如下指令將customer表進行導入sqoopimport\--connectjdbc:mysql://master:3306/test\--usernamehive\--password123456\--tablecustomer執行此指令,卻發現如下錯誤ERRORtool.ImportTool:Errorduringimport:Noprimarykeycouldbefoundfortablecustomer.Pleasespecifyonewith–split-byorperformasequentialimportwith‘-m1’.此時的錯誤是因為我們所要導入的customer表未設定主鍵,這個錯誤有兩種解決的辦法,一個是為customer設置主鍵,二是設定split-by選項或者-M來解決.

數據導入HDFS使用設置主鍵的方法去解決此問題Alter

table

customer

add

primarykey(id);設置customer表的id字段為該表的主鍵,再次執行,我們發現執行已成功,出現如下的內容:INFOmapreduce.ImportJobBase:Transferred37bytesin25.6157seconds(1.4444bytes/sec)

INFOmapreduce.ImportJobBase:Retrieved5records.

數據導入HDFS指定路徑導入在上述的sqoop指令后加入--warehouse

-dirXXX1可以指定導入的路徑,同時也要注意該路徑是不能已經存在的指定并行度在上述的sqoop指令后加入-m2

這樣可以指定map操作的并行度為2,最終我們會發現文件會被分為2份:

導入部分數據3導入部分數據使用–query可以實現sqoop的部分導入sqoopimport\--connectjdbc:mysql://master:3306/test\--usernamehive\--password123456\--query"select*fromcustomerwhereid<=3and\$CONDITIONS"\-m1\--target-dir/user/root/customer

要注意使用–query導入部分數據時,不能再指定–table參數,同時必須指定–target-dir參數,否則則會報錯.另外在where的篩選條件中一定要加上”and

$CONDITIONS”導入部分數據使用–where導入部分數據sqoopimport\--connectjdbc:mysql://master:3306/test\--usernamehive\--password123456\--tablecustomer\--where"id<=3"導入部分數據使用–columns指定導入的列sqoopimport\--connectjdbc:mysql://master:3306/test\--usernamehive\--password123456\--tablecustomer\--columnsname我們這里只導入name列,在–columns后指定需要導入的列。使用配置文件控制導入4使用配置文件控制導入我們可以把上面輸入操作指令寫入到一個配置文件中,在sqoop導入時使用配置文件,實現同樣的功能

我們vim一個名為sqoop.im的文件,將如下內容寫入,注意參數值和內容必須獨自成行。Import--connectjdbc:mysql://master:33

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論