sqooph基礎+環(huán)境搭建+基本語句

有錯歡迎糾正補充担败,愛你的任三爺。

1.什么是sqoop?

Sqoop是一個轉換工具兑宇,用于在關系型數據庫與HDFS之間進行數據轉換则北。就是把MySQL之類的關系型數據庫的數據類型就漾,通過工具轉換并傳輸到hdfs中呐能,這不重要,會用就行抑堡。

關系

2.環(huán)境搭建摆出,如何安裝?

1.安裝)我使用的版本是sqoop-1.4.3.bin__hadoop-1.0.0.tar.gz首妖,打算安裝在/usr/local目錄下偎漫。

首先就是解壓縮,重命名為sqoop有缆,然后在文件/etc/profile(~/.bashrc)中設置環(huán)境變量SQOOP_HOME象踊。把mysql的jdbc驅動mysql-connector-java-5.1.10.jar復制到sqoop項目的lib目錄下。

2.重命名配置文件

在${SQOOP_HOME}/conf中執(zhí)行命令

mv??sqoop-env-template.sh??sqoop-env.sh

在conf目錄下棚壁,有兩個文件sqoop-site.xml和sqoop-site-template.xml內容是完全一樣的杯矩,不必在意,我們只關心sqoop-site.xml即可袖外。

3.修改配置文件sqoop-env.sh

#Set?path?to?where?bin/hadoop?is?available

export?HADOOP_COMMON_HOME=/usr/local/hadoop/

#Set?path?to?where?hadoop-*-core.jar?is?available

export?HADOOP_MAPRED_HOME=/usr/local/hadoop

#set?the?path?to?where?bin/hbase?is?available

export?HBASE_HOME=/usr/local/hbase

#Set?the?path?to?where?bin/hive?is?available

export?HIVE_HOME=/usr/local/hive

#Set?the?path?for?where?zookeper?config?dir?is

export?ZOOCFGDIR=/usr/local/zk

4.把數據從mysql導入到hdfs中史隆,在mysql中數據庫test中有一張表是aa,表中的數據如下圖所示


現在我們要做的是把aa中的數據導入到hdfs中在刺,執(zhí)行命令如下

sqoop ##sqoop命令

import ##表示導入

--connect jdbc:mysql://ip:3306/sqoop ##告訴jdbc逆害,連接mysql的url

--username root ##連接mysql的用戶名

--password admin ##連接mysql的密碼

--table aa ##從mysql導出的表名稱

--fields-terminated-by '\t' ##指定輸出文件中的行的字段分隔符

-m 1 ##復制過程使用1個map作業(yè)

以上的命令中后面的##部分是注釋头镊,執(zhí)行的時候需要刪掉蚣驼;另外,命令的所有內容不能換行相艇,只能一行才能執(zhí)行颖杏。以下操作類似。

該命令執(zhí)行結束后坛芽,觀察hdfs的目錄/user/{USER_NAME}留储,下面會有一個文件夾是aa,里面有個文件是part-m-00000咙轩。該文件的內容就是數據表aa的內容获讳,字段之間是使用制表符分割的。

5.把數據從hdfs導出到mysql中

把上一步導入到hdfs的數據導出到mysql中活喊。我們已知該文件有兩個字段丐膝,使用制表符分隔的。那么,我們現在數據庫test中創(chuàng)建一個數據表叫做bb帅矗,里面有兩個字段偎肃。然后執(zhí)行下面的命令

sqoop

export ##表示數據從hive復制到mysql中

--connect jdbc:mysql://192.168.1.113:3306/test

--username root

--password admin

--table bb ##mysql中的表,即將被導入的表名稱

--export-dir '/user/root/aa/part-m-00000'?##hive中被導出的文件

--fields-terminated-by '\t' ##hive中被導出的文件字段的分隔符

命令執(zhí)行完后浑此,再去觀察表bb中的數據累颂,是不是已經存在了!

基礎命令

1凛俱、列出mysql數據庫中的所有數據庫

sqoop?list-databases?--connect?jdbc:mysql://localhost:3306/?-username?dyh?-password?000000

2紊馏、連接mysql并列出數據庫中的表

sqoop?list-tables?--connect?jdbc:mysql://localhost:3306/test?--username?dyh?--password?000000

3、將關系型數據的表結構復制到hive中

sqoop?create-hive-table?--connect?jdbc:mysql://localhost:3306/test?--table?users?--username?dyh

--password?000000?--hive-table?users?--fields-terminated-by "\0001"? --lines-terminated-by"\n";

參數說明:

--fields-terminated-by "\0001"? 是設置每列之間的分隔符最冰,"\0001"是ASCII碼中的1瘦棋,它也是hive的默認行內分隔符, 而sqoop的默認行內分隔符為"暖哨,"

--lines-terminated-by "\n"? 設置的是每行之間的分隔符赌朋,此處為換行符,也是默認的分隔符篇裁;

注意:只是復制表的結構沛慢,表中的內容沒有復制

4、將數據從關系數據庫導入文件到hive表中

sqoop?import?--connect?jdbc:mysql://localhost:3306/test?--username?dyh?--password?000000

--table?users?--hive-import?--hive-table?users?-m?2--fields-terminated-by "\0001";

參數說明:

?-m?2 表示由兩個map作業(yè)執(zhí)行达布;

--fields-terminated-by "\0001"? 需同創(chuàng)建hive表時保持一致团甲;


5、將hive中的表數據導入到mysql數據庫表中

sqoop?export?--connect?jdbc:mysql://192.168.20.118:3306/test?--username?dyh?--password?000000

--table?users?--export-dir?/user/hive/warehouse/users/part-m-00000

--input-fields-terminated-by?'\0001'

注意:

1黍聂、在進行導入之前躺苦,mysql中的表userst必須已經提起創(chuàng)建好了。

2产还、jdbc:mysql://192.168.20.118:3306/test中的IP地址改成localhost會報異常匹厘,具體見本人上一篇帖子

6、將數據從關系數據庫導入文件到hive表中脐区,--query語句使用

sqoop import --append --connectjdbc:mysql://192.168.20.118:3306/test --username dyh --password 000000 --query"select id,age,name from userinfos where \$CONDITIONS"? -m1? --target-dir /user/hive/warehouse/userinfos2 --fields-terminated-by",";


7愈诚、將數據從關系數據庫導入文件到hive表中,--columns?

--where 語句使用

sqoop import --append --connectjdbc:mysql://192.168.20.118:3306/test --username dyh --password 000000 --tableuserinfos --columns "id,age,name"--where "id > 3 and(age = 88 or age = 80)"? -m 1? --target-dir/user/hive/warehouse/userinfos2 --fields-terminated-by ",";

注意:--target-dir/user/hive/warehouse/userinfos2?? 可以用

--hive-import--hive-table userinfos2

進行替換

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末牛隅,一起剝皮案震驚了整個濱河市炕柔,隨后出現的幾起案子,更是在濱河造成了極大的恐慌媒佣,老刑警劉巖匕累,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異默伍,居然都是意外死亡欢嘿,警方通過查閱死者的電腦和手機授霸,發(fā)現死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來际插,“玉大人碘耳,你說我怎么就攤上這事】虺冢” “怎么了辛辨?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瑟枫。 經常有香客問我斗搞,道長,這世上最難降的妖魔是什么慷妙? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任僻焚,我火速辦了婚禮,結果婚禮上膝擂,老公的妹妹穿的比我還像新娘虑啤。我一直安慰自己,他們只是感情好架馋,可當我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布狞山。 她就那樣靜靜地躺著,像睡著了一般叉寂。 火紅的嫁衣襯著肌膚如雪萍启。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天屏鳍,我揣著相機與錄音勘纯,去河邊找鬼。 笑死钓瞭,一個胖子當著我的面吹牛驳遵,可吹牛的內容都是我干的。 我是一名探鬼主播降淮,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼超埋,長吁一口氣:“原來是場噩夢啊……” “哼搏讶!你這毒婦竟也來了佳鳖?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤媒惕,失蹤者是張志新(化名)和其女友劉穎系吩,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體妒蔚,經...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡穿挨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年月弛,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片科盛。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡帽衙,死狀恐怖,靈堂內的尸體忽然破棺而出贞绵,到底是詐尸還是另有隱情厉萝,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布榨崩,位于F島的核電站谴垫,受9級特大地震影響,放射性物質發(fā)生泄漏母蛛。R本人自食惡果不足惜翩剪,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望彩郊。 院中可真熱鬧前弯,春花似錦、人聲如沸秫逝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筷登。三九已至剃根,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間前方,已是汗流浹背狈醉。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惠险,地道東北人苗傅。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像班巩,于是被迫代替她去往敵國和親渣慕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內容