簡介
Sqoop是一款開源的工具,主要用於在Hadoop(Hive)與傳統的數據庫(mysql、postgresql…)間進行數據的傳遞。利用Sqoop可以將一個關係型數據庫(例如 : MySQL ,Oracle ,Postgres等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關係型數據庫中。
Sqoop2的最新版本是1.99.7。請注意,2與1不兼容,且特徵不完整,它並不打算用於生產部署。
Sqoop將導入或導出命令翻譯成mapreduce程序來實現。在翻譯出的mapreduce中主要是對inputformat和outputformat進行定製。
Sqoop官網:http://sqoop.apache.org/
安裝
注意:前提是已經安裝好Java和Hadoop環境。
1.下載上傳解壓
- 下載地址:http://www.apache.org/dyn/closer.lua/sqoop/1.4.7
- 上傳安裝包到虛擬機中
- 解壓sqoop安裝包到指定目錄
2.修改配置文件
Sqoop的配置文件與大多數大數據框架類似,在sqoop根目錄下的conf目錄中。
- 重命名配置文件
$ mv sqoop-env-template.sh sqoop-env.sh - 修改配置文件 sqoop-env.sh
export HADOOP_COMMON_HOME=/usr/local/hadoop3.1.2/hadoop-standalone
export HADOOP_MAPRED_HOME=/usr/local/hadoop3.1.2/hadoop-standalone
export HIVE_HOME=/usr/local/apache-hive-3.1.1
#export HBASE_HOME=/usr/local/hbase-2.1.3
#export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.13-standalone
#export ZOOCFGDIR=/usr/local/zookeeper-3.4.13-standalone
注:上面Hadoop是必需的,其它可以根據需要進行配置。
關聯Hbase時,如果報錯“找不到或無法加載類GetJavaProperty”,可以參考博客:HBase報錯:找不到或無法加載主類 org.apache.hadoop.hbase.util.GetJavaProperty
3.拷貝JDBC驅動
拷貝jdbc驅動到sqoop的lib目錄下:
4.驗證Sqoop配置
我們可以通過bin/sqoop help來驗證sqoop配置是否正確:
5.測試Sqoop是否能夠成功連接數據庫
$ bin/sqoop list-databases --connect jdbc:mysql://hcmaster:3306/ --username root --password root