sqoop导入-hdfs
Sqoop的數(shù)據(jù)導(dǎo)入
“導(dǎo)入工具”導(dǎo)入單個表從RDBMS到HDFS。表中的每一行被視為HDFS的記錄。所有記錄都存儲為文本文件的文本數(shù)據(jù)(或者Avro、sequence文件等二進(jìn)制數(shù)據(jù))
列舉出所有的數(shù)據(jù)庫
命令行查看幫助
bin/sqoop list‐databases ‐‐help列出windows主機(jī)所有的數(shù)據(jù)庫
bin/sqoop list‐databases ‐‐connect jdbc:mysql://192.168.1.7:3306/ ‐‐ username root ‐‐password root查看某一個數(shù)據(jù)庫下面的所有數(shù)據(jù)表
bin/sqoop list‐tables ‐‐connect jdbc:mysql://192.168.1.7:3306/userdb ‐‐ username root ‐‐password root如果出現(xiàn)連接拒絕,則在windows的mysql的數(shù)據(jù)庫中執(zhí)行以下命
開啟windows的遠(yuǎn)程連接權(quán)限
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION; FLUSH PRIVILEGES;其它導(dǎo)入示例
表數(shù)據(jù)
在mysql中有一個庫userdb中三個表:emp, emp_add和emp_conn
導(dǎo)入數(shù)據(jù)庫表數(shù)據(jù)到HDFS
下面的命令用于從MySQL數(shù)據(jù)庫服務(wù)器中的emp表導(dǎo)入HDFS。
bin/sqoop import ‐‐connect jdbc:mysql://192.168.1.7:3306/userdb ‐‐ password root ‐‐username root ‐‐table emp ‐‐m 1如果成功執(zhí)行,那么會得到下面的輸出。
為了驗證在HDFS導(dǎo)入的數(shù)據(jù),請使用以下命令查看導(dǎo)入的
hdfs dfs ‐ls /user/root/emp導(dǎo)入到HDFS指定目錄
在導(dǎo)入表數(shù)據(jù)到HDFS使用Sqoop導(dǎo)入工具,我們可以指定目標(biāo)目錄。
使用參數(shù) --target-dir來指定導(dǎo)出目的地,
使用參數(shù)—delete-target-dir來判斷導(dǎo)出目錄是否存在,如果存在就刪掉
bin/sqoop import ‐‐connect jdbc:mysql://192.168.1.7:3306/userdb ‐‐ username root ‐‐password root ‐‐delete‐target‐dir ‐‐table emp ‐‐targetdir /sqoop/emp ‐‐m 1查看導(dǎo)出的數(shù)據(jù)
hdfs dfs ‐text /sqoop/emp/part‐m‐00000它會用逗號(,)分隔emp_add表的數(shù)據(jù)和字段。
1201,gopal,manager,50000,TP 1202,manisha,Proof reader,50000,TP 1203,khalil,php dev,30000,AC 1204,prasanth,php dev,30000,AC 1205,kranthi,admin,20000,TP導(dǎo)入到hdfs指定目錄并指定字段之間的分隔符
bin/sqoop import ‐‐connect jdbc:mysql://192.168.1.7:3306/userdb ‐‐ username root ‐‐password root ‐‐delete‐target‐dir ‐‐table emp ‐‐ target‐dir /sqoop/emp2 ‐‐m 1 ‐‐fields‐terminated‐by '\t'查看文件內(nèi)容
hdfs dfs ‐text /sqoop/emp2/part‐m‐00000?
總結(jié)
以上是生活随笔為你收集整理的sqoop导入-hdfs的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sqoop安装
- 下一篇: sqoop导入-hive