【Sqoop篇】----Sqoop從搭建到應用案例

LHBlog發表於2018-01-22

一、前述

今天開始講解Sqoo的用法搭建和使用。Sqoop其實功能非常簡單。主要用於在Hadoop(Hive)與傳統的資料庫(mysql、postgresql...)間進行資料的傳遞,可以將一個關係型資料庫(例如 : MySQL ,Oracle ,Postgres等)中的資料導進到Hadoop的HDFS中,也可以將HDFS的資料導進到關係型資料庫中。

二、 配置

flume配置很簡單:

第一步:將flume-env.sh.template模板檔案改名為flume-env.sh檔案

第二步 :更改裡面的JAVA_HOME

第三步:配置環境變數

三、 使用

官方參考手冊:http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_connecting_to_a_database_server

舉幾個簡單例子:

匯入:

案例一(步驟是Mysql---HDFS)的順序):

import
--connect
jdbc:mysql://node3:3306/test
--username
root
--password
123
--as-textfile
--columns
id,name,msg
--table
psn
--delete-target-dir
--target-dir
/sqoop/data
-m
1
可以將上述命令定義在一個指令碼里面:

使用如下命令:
sqoop --options-file sqoop1

 案例二(步驟是Mysql---Hive)的順序):實際上就是Mysql-HDFS-Hive裡面

 


import
--connect
jdbc:mysql://node3/test
--username
root
--password
123
--as-textfile
--query
'select id, name, msg from psn where id like "1%" and $CONDITIONS'
--delete-target-dir
--target-dir
/sqoop/tmp  
-m
1
--hive-home
/home/hive-1.2.1
--hive-import
--create-hive-table
--hive-table
t_test

 PS:先匯入到hdfs上的一個臨時目錄,然後再匯入到Hive的資料管理目錄/home/hive-1.2.1。

and $CONDITIONS是一個查詢規則,必須加上。

 

 

匯出:
案例一。將HDFS上的資料匯出到Mysql中去

export
--connect
jdbc:mysql://node3/test
--username
root
--password
123
-m
1
--columns
id,name,msg
--export-dir
/sqoop/data
--table
h_psn

 

相關文章