sqoop(数据迁移工具)-安装-学习
生活随笔
收集整理的這篇文章主要介紹了
sqoop(数据迁移工具)-安装-学习
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
sqoop
1)概述
sqoop是apache旗下一款“Hadoop和關(guān)系數(shù)據(jù)庫(kù)服務(wù)器之間傳送數(shù)據(jù)”的工具。 導(dǎo)入數(shù)據(jù):MySQL,Oracle導(dǎo)入數(shù)據(jù)到Hadoop的HDFS、HIVE、HBASE等數(shù)據(jù)存儲(chǔ)系統(tǒng); 導(dǎo)出數(shù)據(jù):從Hadoop的文件系統(tǒng)中導(dǎo)出數(shù)據(jù)到關(guān)系數(shù)據(jù)庫(kù)mysql等2)工作機(jī)制
將導(dǎo)入或?qū)С雒罘g成mapreduce程序來(lái)實(shí)現(xiàn),在翻譯出的mapreduce中主要對(duì)inputformat 和outputformat進(jìn)行定制
3)sqoop安裝:
1.前提有hadoop與jdk
下載:官網(wǎng)
2.修改配置文件
改名字
cd $SQOOP_HOME/conf mv sqoop-env-template.sh sqoop-env.sh在sqoop-env.sh中添加
export HADOOP_COMMON_HOME=/uer/local/chun/hadoop-2.7.7/ export HADOOP_MAPRED_HOME=/uer/local/chun/hadoop-2.7.7/ export HIVE_HOME=/usr/local/hive把jdbc驅(qū)動(dòng)包加入到lib下,注意驅(qū)動(dòng)版本向下兼容
4)啟動(dòng)驗(yàn)證
cd $SQOOP_HOME/bin sqoop-version預(yù)期的輸出:
sqoop-version Warning: /usr/local/sqoop-1.4.6/../hcatalog does not exist! HCatalog jobs will fail. Please set $HCAT_HOME to the root of your HCatalog installation. Warning: /usr/local/sqoop-1.4.6/../accumulo does not exist! Accumulo imports will fail. Please set $ACCUMULO_HOME to the root of your Accumulo installation. 錯(cuò)誤: 找不到或無(wú)法加載主類 org.apache.hadoop.hbase.util.GetJavaProperty 19/08/27 21:08:58 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6 Sqoop 1.4.6 git commit id c0c5a81723759fa575844a0a1eae8f510fa32c25 Compiled by root on Mon Apr 27 14:38:36 CST 2015無(wú)法找不到或無(wú)法加載主類 org.apache.hadoop.hbase.util.GetJavaProperty:
因?yàn)閔base和hadoop版本有點(diǎn)不兼容,咱們沒(méi)出現(xiàn)什么錯(cuò)誤,就咱們不更換,我這里hbase是2.1.5,換到2.0.6就可以。
5)驗(yàn)證sqoop到mysql業(yè)務(wù)庫(kù)之間的連通性:
sqoop-list-databases --connect jdbc:mysql://localhost:3306 --username root --password adminsqoop-list-tables --connect jdbc:mysql://localhost:3306/test --username root --password admin6)Sqoop的數(shù)據(jù)導(dǎo)入
“導(dǎo)入工具”導(dǎo)入單個(gè)表從RDBMS到HDFS。表中的每一行被視為HDFS的記錄。所有記錄都存儲(chǔ)為文本文件的文本數(shù)據(jù)(或者Avro、sequence文件等二進(jìn)制數(shù)據(jù))
1。從mysql導(dǎo)出到hdfs
bin/sqoop import \ //sqoop命令表導(dǎo)入 --connect jdbc:mysql://localhost:3306/hive \ //告訴jdbc,連接mysql的url連接MySQL使用的庫(kù) --username root \ //連接mysql的用戶名 --password admin \ //連接mysql的密碼 --target-dir \ //目標(biāo)的目錄 /sqooptest \ --fields-terminated-by ‘,’ \ //指定輸出文件中的字段分隔符 --table emp \ //你要導(dǎo)的表 --split-by id \ //如果你的map指定的個(gè)數(shù)大于1,那就必須指定一個(gè)字段 --m 1 //指定的maptask()\可以轉(zhuǎn)到下一行繼續(xù)寫
可以查看導(dǎo)出的數(shù)據(jù) cat查看part-m-*
hdfs dfs -cat /mysql/import1/part-m-* dake 22 failedman dake 23 goodman chun3 25 failedman chun1 24 successfulman chun2 23 goodman2.導(dǎo)入關(guān)系表到HIVE
sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password root --table emp --hive-import --split-by id --m 13.導(dǎo)入表數(shù)據(jù)子集
bin/sqoop import \ --connect jdbc:mysql://localhost:3306/test \ --username root \ --password admin \ --where "city ='sec-bad'" \ --target-dir /wherequery \ --table emp_add \--m 1總結(jié)
以上是生活随笔為你收集整理的sqoop(数据迁移工具)-安装-学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 浦发万用随借金和万用金有什么区别 随借金
- 下一篇: 目前有多少国家的人均GDP超过2万美元,