環境準備:
centos 7
centos 可以上網
hadoop,Hbase,Hive,Zookeeper正常運行
環境搭建:
版本:
sqoop1.4.7-hadoop2.6.0
一、Sqoop安裝
1、直接在虛擬機瀏覽器下載sqoop1.4.7
https://archive.apache.org/dist/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
https://archive.apache.org/dist/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz


2、解壓安裝包

3、重命名為Sqoop
mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop

4、配置sqoop-env.sh
(1)復制組態檔并重命名為sqoop-env.sh
cat sqoop-env-template.sh >> sqoop-env.sh

(2)修改組態檔
編輯sqoop-env.sh檔案,分別將Hadoop、HBase、Hive、ZooKeeper的安裝目錄添加到檔案中,


5、配置環境變數
vim /etc/profile

使環境變數立即生效:
source /etc/profile
6、配置MySQL連接
(1)添加MySQL的JAR包到Sqoop安裝目錄中,

(2)測驗Sqoop與MySQL之間的連接
A、啟動MySQL服務:

B、測驗Sqoop與MySQL之間的連接是否成功:
sqoop list-databases --connect jdbc:mysql://localhost:3306 --username root -password dang

注:如果可以看到MySQL資料庫中的資料庫串列,則表示Sqoop安裝成功
centos安裝Sqoop完成
Sqoop的使用:
二、使用Sqoop完成MySQL和HDFS之間的資料互導
1、上傳準備好的測驗資料到MySQL中
(1)登錄MySQL:

(2)創建測驗資料庫

(3)創建表test1,用于存放本地測驗資料
create table test1(
ip varchar(100) not null,
time varchar(100) not null,
url varchar(100) not null);

(4)新建測驗資料檔案

寫入:

注意:此 txt 檔案欄位之間需要用Tab鍵隔開,空格是不可行的,遇到datatime日期的,年月日,時分秒之間需用空格隔開,不需要添加引號
(5)將本地的測驗資料上傳到test1表中
load data local infile "/opt/linshi/test.txt" into table test1(ip,time,url);

(6)上傳完成后,查看test1表中的資料:
select * from test1;

2、上傳資料到HDFS中
(1)啟動hadoop集群

(2)將test1中的資料上傳到HDFS中:
./sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password dang --table test1 -m 1
(3)查看匯入的資料
hdfs dfs -cat /user/root/test1/part-m-00000

(4)登錄HDFS網頁查看
HDFS的web端:localhost:50070

(5)將HDFS資料匯入MySQL中
注:在匯出前需要先創建匯出表的結構,如果匯出的表在資料表中不存在,則系統會報錯;若重復匯出資料,則表中的資料會重復
A、 在test資料庫中創建表test2,可以直接復制表test1的結構:
create table test2 as select * from test1 where 1=2;

B、查看表test1,表test2:

C、使用sqoop將HDFS中的資料匯入MySQL的test2中:
sqoop export --connect jdbc:mysql://192.168.231.105:3306/test --username root --password dang --table test2 --export-dir /user/root/test1/part-m-00000 -m 1

注:localhost最好寫成本機地址,之前寫的localhost報錯了
(6)再次查看test2表:

HDFS的資料成功匯入test2
一潭訓麗的分割線
centos安裝sqoop(使用Sqoop完成MySQL和HDFS之間的資料互導)案例完成
其他環境搭建參見:
Hadoop偽分布式的搭建詳情
https://blog.csdn.net/m0_54925305/article/details/118650350?spm=1001.2014.3001.5502Hadoop完全分布式的搭建詳情
https://blog.csdn.net/m0_54925305/article/details/118851554?spm=1001.2014.3001.5502Zookeeper集群的搭建(單機、偽分布式、集群)
https://blog.csdn.net/m0_54925305/article/details/119059186?spm=1001.2014.3001.5502Spark的安裝與部署詳情(Local模式,Standalone模式,Spank on YARN模式)
https://blog.csdn.net/m0_54925305/article/details/119005751?spm=1001.2014.3001.5502HadoopHA環境搭建(保姆篇,手把手搭建)
https://blog.csdn.net/m0_54925305/article/details/119838463?spm=1001.2014.3001.5502hbase集群的搭建(HBase Shell)
https://blog.csdn.net/m0_54925305/article/details/120787788?spm=1001.2014.3001.5502Centos安裝mysql(rpm終結版)
https://blog.csdn.net/m0_54925305/article/details/120476116?spm=1001.2014.3001.5502centos安裝hive3.1.2(精講篇)
https://blog.csdn.net/m0_54925305/article/details/120554242?spm=1001.2014.3001.5502Centos安裝yum,wegt(完全配置篇)
https://blog.csdn.net/m0_54925305/article/details/120467143?spm=1001.2014.3001.5502
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/344169.html
標籤:其他
上一篇:RabbitMQ?訊息佇列
