Sqoop快速入門系列(3) | Sqoop常用命令及參數解析(建議收藏!!!)

      網友投稿 858 2022-05-30

      大家好,我是不溫卜火,是一名計算機學院大數據專業大二的學生,昵稱來源于成語—不溫不火,本意是希望自己性情溫和。作為一名互聯網行業的小白,博主寫博客一方面是為了記錄自己的學習過程,另一方面是總結自己所犯的錯誤希望能夠幫助到很多和自己一樣處于起步階段的萌新。但由于水平有限,博客中難免會有一些錯誤出現,有紕漏之處懇請各位大佬不吝賜教!暫時只有csdn這一個平臺,博客主頁:https://buwenbuhuo.blog.csdn.net/

      此篇為大家帶來的是Sqoop常用命令及參數解析。

      目錄

      一. 常用命令列舉

      二. 公用參數

      1. 公用參數:數據庫連接

      2. 公用參數:import

      3. 公用參數:export

      4. 公用參數:hive

      三. 命令&參數

      3.1 命令&參數:import

      1. 命令

      2. 參數

      3.2 命令&參數:export

      1. 命令

      2. 參數

      3.3 命令&參數:codegen

      1. 命令

      2. 參數

      3.4 命令&參數:create-hive-table

      1. 命令

      2. 參數

      3.5 命令&參數:eval

      1. 命令

      2. 參數

      3.6 命令&參數:import-all-tables

      1. 命令

      2. 參數

      3.7 命令&參數:job

      1. 命令

      2. 參數

      3.8 命令&參數:list-databases

      1. 命令

      3.9 命令&參數:merge

      1. 數據環境

      2. 命令

      3. 參數

      3.10 命令&參數:metastore

      1. 命令

      2. 參數

      一. 常用命令列舉

      這里給大家列出來了一部分Sqoop操作時的常用參數,以供參考,需要深入學習的可以參看對應類的源代碼。

      二. 公用參數

      剛才列舉了一些Sqoop的常用命令,對于不同的命令,有不同的參數,讓我們來一一列舉說明。

      首先來我們來介紹一下公用的參數,所謂公用參數,就是大多數命令都支持的參數。

      1. 公用參數:數據庫連接

      2. 公用參數:import

      3. 公用參數:export

      4. 公用參數:hive

      三. 命令&參數

      公用參數介紹完之后,我們來按照命令介紹命令對應的特有參數。

      3.1 命令&參數:import

      將關系型數據庫中的數據導入到HDFS(包括Hive,HBase)中,如果導入的是Hive,那么當Hive中沒有對應表時,則自動創建。

      1. 命令

      1. 導入數據到hive中

      // 密碼我就用000000代替了 $ bin/sqoop import \ --connect jdbc:mysql://hadoop002:3306/company \ --username root \ --password 000000 \ --table staff \ --hive-import

      1

      2

      3

      4

      5

      6

      7

      8

      9

      2. 增量導入數據到hive中,mode=append

      // append導入: $ bin/sqoop import \ --connect jdbc:mysql://hadoop002:3306/company \ --username root \ --password 000000 \ --table staff \ --num-mappers 1 \ --fields-terminated-by "\t" \ --target-dir /user/hive/warehouse/staff_hive \ --check-column id \ --incremental append \ --last-value 3

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      提示:append不能與–hive-等參數同時使用(Append mode for hive imports is not yet supported. Please remove the parameter --append-mode)

      3. 增量導入數據到hdfs中,mode=lastmodified

      // 1 先在mysql中建表并插入幾條數據: mysql> create table company.staff_timestamp(id int(4), name varchar(255), sex varchar(255), last_modified timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); mysql> insert into company.staff_timestamp (id, name, sex) values(1, 'buwen', 'female'); mysql> insert into company.staff_timestamp (id, name, sex) values(2, 'buhuo', 'female'); 先導入一部分數據: $ bin/sqoop import \ --connect jdbc:mysql://hadoop002:3306/company \ --username root \ --password 000000 \ --table staff_timestamp \ --delete-target-dir \ --m 1 // 2 再增量導入一部分數據: mysql> insert into company.staff_timestamp (id, name, sex) values(3, 'buwenbuhuo', 'female'); $ bin/sqoop import \ --connect jdbc:mysql://hadoop002:3306/company \ --username root \ --password 000000 \ --table staff_timestamp \ --check-column last_modified \ --incremental lastmodified \ --last-value "2020-05-15 22:20:38" \ --m 1 \ --append

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      提示1:使用lastmodified方式導入數據要指定增量數據是要–append(追加)還是要–merge-key(合并)

      提示2:last-value指定的值是會包含于增量導入的數據中

      2. 參數

      3.2 命令&參數:export

      從HDFS(包括Hive和HBase)中獎數據導出到關系型數據庫中。

      1. 命令

      $ bin/sqoop export \ --connect jdbc:mysql://hadoop002:3306/company \ --username root \ --password 000000 \ --table staff \ --export-dir /user/company \ --input-fields-terminated-by "\t" \ --num-mappers 1

      1

      2

      3

      4

      5

      6

      7

      8

      9

      2. 參數

      3.3 命令&參數:codegen

      將關系型數據庫中的表映射為一個Java類,在該類中有各列對應的各個字段。

      1. 命令

      $ bin/sqoop codegen \ --connect jdbc:mysql://hadoop002:3306/company \ --username root \ --password 000000 \ --table staff \ --bindir /home/admin/Desktop/staff \ --class-name Staff \ --fields-terminated-by "\t"

      1

      2

      3

      4

      5

      6

      Sqoop快速入門系列(3) | Sqoop常用命令及參數解析(建議收藏!!!)

      7

      8

      9

      2. 參數

      3.4 命令&參數:create-hive-table

      生成與關系數據庫表結構對應的hive表結構。

      1. 命令

      $ bin/sqoop create-hive-table \ --connect jdbc:mysql://hadoop002:3306/company \ --username root \ --password 000000 \ --table staff \ --hive-table hive_staff

      1

      2

      3

      4

      5

      6

      7

      2. 參數

      3.5 命令&參數:eval

      可以快速的使用SQL語句對關系型數據庫進行操作,經常用于在import數據之前,了解一下SQL語句是否正確,數據是否正常,并可以將結果顯示在控制臺。

      1. 命令

      $ bin/sqoop eval \ --connect jdbc:mysql://hadoop002:3306/company \ --username root \ --password 000000 \ --query "SELECT * FROM staff"

      1

      2

      3

      4

      5

      6

      7

      2. 參數

      3.6 命令&參數:import-all-tables

      可以將RDBMS中的所有表導入到HDFS中,每一個表都對應一個HDFS目錄

      1. 命令

      $ bin/sqoop import-all-tables \ --connect jdbc:mysql://hadoop002:3306/company \ --username root \ --password 000000 \ --warehouse-dir /all_tables

      1

      2

      3

      4

      5

      6

      2. 參數

      3.7 命令&參數:job

      用來生成一個sqoop任務,生成后不會立即執行,需要手動執行。

      1. 命令

      $ bin/sqoop job \ --create myjob -- import-all-tables \ --connect jdbc:mysql://hadoop002:3306/company \ --username root \ --password 000000 $ bin/sqoop job \ --list $ bin/sqoop job \ --exec myjob

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      提示1:注意import-all-tables和它左邊的–之間有一個空格

      提示2:如果需要連接metastore,則–meta-connect jdbc:hsqldb:hsql://hadoop002:16000/sqoop

      2. 參數

      提示3:在執行一個job時,如果需要手動輸入數據庫密碼,可以做如下優化

      sqoop.metastore.client.record.password true If true, allow saved passwords in the metastore.

      1

      2

      3

      4

      5

      6

      3.8 命令&參數:list-databases

      1. 命令

      $ bin/sqoop list-databases \ --connect jdbc:mysql://hadoop002:3306/ \ --username root \ --password 000000

      1

      2

      3

      4

      5

      參數:與公用參數一樣

      3.9 命令&參數:merge

      將HDFS中不同目錄下面的數據合并在一起并放入指定目錄中

      1. 數據環境

      new_staff 1 AAA male 2 BBB male 3 CCC male 4 DDD male old_staff 1 AAA female 2 CCC female 3 BBB female 6 DDD female

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      提示:上邊數據的列之間的分隔符應該為\t,行與行之間的分割符為\n,如果直接復制,請檢查之

      2. 命令

      // 創建JavaBean: $ bin/sqoop codegen \ --connect jdbc:mysql://hadoop102:3306/company \ --username root \ --password 000000 \ --table staff \ --bindir /home/admin/Desktop/staff \ --class-name Staff \ --fields-terminated-by "\t" // 開始合并: $ bin/sqoop merge \ --new-data /test/new/ \ --onto /test/old/ \ --target-dir /test/merged \ --jar-file /home/admin/Desktop/staff/Staff.jar \ --class-name Staff \ --merge-key id // 結果: 1 AAA MALE 2 BBB MALE 3 CCC MALE 4 DDD MALE 6 DDD FEMALE

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      3. 參數

      3.10 命令&參數:metastore

      記錄了Sqoop job的元數據信息,如果不啟動該服務,那么默認job元數據的存儲目錄為~/.sqoop,可在sqoop-site.xml中修改。

      1. 命令

      // 啟動sqoop的metastore服務 $ bin/sqoop metastore

      1

      2

      3

      2. 參數

      本次的分享就到這里了,

      好書不厭讀百回,熟讀課思子自知。而我想要成為全場最靚的仔,就必須堅持通過學習來獲取更多知識,用知識改變命運,用博客見證成長,用行動證明我在努力。

      如果我的博客對你有幫助、如果你喜歡我的博客內容,請“” “評論”“”一鍵三連哦!聽說的人運氣不會太差,每一天都會元氣滿滿呦!如果實在要白嫖的話,那祝你開心每一天,歡迎常來我博客看看。

      碼字不易,大家的支持就是我堅持下去的動力。后不要忘了關注我哦!

      Hive 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:你還有什么問題要問我嗎?沒有了-- 含淚收集校招面試HR題庫,教你如何不尷尬的提問(我沒有什么要問的了,你有什么問題問我嗎?)
      下一篇:excel跨表格數據引用的操作教程(excel表格跨表數據引用)
      相關文章
      亚洲激情中文字幕| 国产亚洲人成网站观看| 亚洲产国偷V产偷V自拍色戒 | 国产V亚洲V天堂无码| 国产亚洲一区二区三区在线不卡| 国产精品久久久久久亚洲小说| 亚洲人成未满十八禁网站| 亚洲综合色丁香婷婷六月图片| 亚洲AV无码精品蜜桃| 亚洲乱码无限2021芒果| 亚洲人成综合在线播放| 亚洲一级片在线播放| 国产精品亚洲午夜一区二区三区| 亚洲一区二区三区免费观看| 亚洲AV无码国产精品色| 亚洲一区二区三区高清不卡| 亚洲一久久久久久久久| 亚洲国产高清国产拍精品| 日本亚洲欧美色视频在线播放| 亚洲第一se情网站| 亚洲性日韩精品一区二区三区 | 亚洲国产V高清在线观看| 亚洲日韩国产精品乱| JLZZJLZZ亚洲乱熟无码| 亚洲人成色7777在线观看| 国产成人亚洲精品青草天美 | 亚洲欧美日韩中文字幕一区二区三区 | 亚洲精品伊人久久久久| 亚洲欧美日韩一区二区三区 | 亚洲大尺度无码无码专线一区| 亚洲6080yy久久无码产自国产| mm1313亚洲国产精品美女| 亚洲综合久久夜AV | 亚洲成A人片在线观看WWW| 亚洲综合国产精品| youjizz亚洲| 国产天堂亚洲国产碰碰| 亚洲人色婷婷成人网站在线观看 | 婷婷国产偷v国产偷v亚洲| 亚洲午夜无码片在线观看影院猛| 国产国拍亚洲精品mv在线观看|