ubuntu 安裝使用 Sqoop1.4.6 + hive 2.3.0

土豆拍死馬鈴薯發表於2017-10-08

Sqoop用來實現關係型資料庫、HDFS、Hive之間的匯入和匯出

1、下載Sqoop1.4.6

地址:http://mirrors.hust.edu.cn/apache/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz


2、使用tar -zxvf  sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz解壓


3、使用vim /etc/profile

新增以下環境變數:

export SQOOP_HOME=/chenjie/sqoop-1.4.6.bin__hadoop-2.0.4-alpha
export PATH=$PATH:$SQOOP_HOME/bin


4、將mysql驅動放入sqoop-1.4.6.bin__hadoop-2.0.4-alpha/lib目錄下

地址:https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.44.tar.gz 記得將jar包解壓出來


5、使用Sqoop


5.1 使用Sqoop匯入Mysql表到HDFS(事先啟動Hadoop)

./sqoop import --connect jdbc:mysql://pc1:3306/chenjie --username root --password root  --table student --columns 'id,name' -m 1 --target-dir /sqoop/student

其中,./sqoop為啟動sqoop命令,import 表示匯入,--connect引數為資料庫連線地址,jdbc表示使用jdbc,mysql表示mysql資料庫,pc1為裝有mysql的host名稱,chenjie為資料庫名稱,--username root 表示使用者名稱為root  --password root表示密碼為root  --table表示要導的表名  --columns 'id,name'表示要導的列名  -m 1 表示使用一個mapreduce

--target-dir /sqoop/student 表示要導到HDFS的目標目錄

可以看到在mysql中存在chenjie資料庫,其中有student表

執行操作

執行完成:檢視HDFS




5.2 使用Sqoop從mysql導資料到hive

導之前,hive中show tables



匯入

./sqoop import --hive-import  --connect jdbc:mysql://pc1:3306/chenjie --username root --password root  --table student --columns 'id,name' -m 1 --hive-table student



再使用hive show tables

資料匯出匯入成功


5.3 使用Sqoop從mysql導資料到hive 並使用where條件

./sqoop import --hive-import  --connect jdbc:mysql://pc1:3306/chenjie --username root --password root  --table student --columns 'id,name' -m 1 --hive-table student2 --where 'id=1001'


5.4 使用Sqoop從mysql導資料到hive 並使用查詢條件(注意:引數中沒有--table   AND $CONDITIONS必須這麼寫)

./sqoop import --hive-import  --connect jdbc:mysql://pc1:3306/chenjie --username root --password root  --columns 'id,name' -m 1  --query 'select * from student where id < 1002 AND $CONDITIONS' --target-dir /sqoop/student3   --hive-table student3


5.5 使用Sqoop從hive(實際上存在HDFS中 )匯出到mysql中

首先刪掉mysql中stundent資料庫中的資料,可以看到已經沒有資料

然後執行

./sqoop export --connect jdbc:mysql://pc1:3306/chenjie --username root --password root -m 1 --table mystudent --export-dir /sqoop/student3


完成後mysql中新增3條記錄




相關文章