1. 程式人生 > 實用技巧 >Hbase基礎(六):Sqoop 簡介與原理、安裝

Hbase基礎(六):Sqoop 簡介與原理、安裝

1 Sqoop 簡介

  Sqoop 是一款開源的工具,主要用於在 Hadoop(Hive)與傳統的資料庫(mysql、postgresql...)間進行資料的傳遞,可以將一個關係型資料庫(例如 : MySQL ,Oracle ,Postgres 等)中的 資料導進到 Hadoop 的 HDFS 中,也可以將 HDFS 的資料導進到關係型資料庫中。   Sqoop 專案開始於 2009 年,最早是作為 Hadoop 的一個第三方模組存在,後來為了讓使用者能夠快速部署,也為了讓開發人員能夠更快速的迭代開發,Sqoop 獨立成為一個 Apache 專案。   Sqoop2 的最新版本是 1.99.7。請注意,2 與 1 不相容,且特徵不完整,它並不打算用於生產部署。

2 Sqoop 原理

將匯入或匯出命令翻譯成 mapreduce 程式來實現。在翻譯出的 mapreduce 中主要是對 inputformat 和 outputformat 進行定製。

第 3 章 Sqoop 安裝

安裝 Sqoop 的前提是已經具備 Java 和 Hadoop 的環境。 3.1 下載並解壓 1) 下載地址:http://mirrors.hust.edu.cn/apache/sqoop/1.4.6/ 2) 上傳安裝包 sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz 到虛擬機器中 3) 解壓 sqoop 安裝包到指定目錄,如: $ tar -zxf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt/module/ 3.2 修改配置檔案 Sqoop 的配置檔案與大多數大資料框架類似,在 sqoop 根目錄下的 conf 目錄中。 1) 重新命名配置檔案
$ mv sqoop-env-template.sh sqoop-env.sh
2) 修改配置檔案 sqoop-env.sh
export HADOOP_COMMON_HOME=/opt/module/hadoop-2.7.2
export HADOOP_MAPRED_HOME=/opt/module/hadoop-2.7.2
export HIVE_HOME=/opt/module/hive
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.10
export ZOOCFGDIR=/opt/module/zookeeper-3.4.10
export HBASE_HOME=/opt/module/hbase
3.3 拷貝 JDBC 驅動 拷貝 jdbc 驅動到 sqoop 的 lib 目錄下,如:
$ cp mysql-connector-java-5.1.27-bin.jar 
/opt/module/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/lib/
3.4 驗證 Sqoop 我們可以通過某一個 command 來驗證 sqoop 配置是否正確:
$ bin/sqoop help
出現一些 Warning 警告(警告資訊已省略),並伴隨著幫助命令的輸出:
Available commands:
 codegen Generate code to interact with database records
 create-hive-table Import a table definition into Hive
 eval Evaluate a SQL statement and display the results
 export Export an HDFS directory to a database table
 help List available commands
 import Import a table from a database to HDFS
 import-all-tables Import tables from a database to HDFS
 import-mainframe Import datasets from a mainframe server to HDFS
 job Work with saved jobs
list-databases List available databases on a server
 list-tables List available tables in a database
 merge Merge results of incremental imports
 metastore Run a standalone Sqoop metastore
 version Display version information
3.5 測試 Sqoop 是否能夠成功連線資料庫
$ bin/sqoop list-databases --connect jdbc:mysql://hadoop102:3306/ 
--username root --password 000000
出現如下輸出:
information_schema
metastore
mysql
oozie
performance_schema