Sqoop的安裝

說明:由於Sqoop的運行需要藉助於Hadoop的MapReduce,所以在安裝Sqoop之前,應確保Hadoop集羣已安裝完畢並運行(Hadoop集羣的安裝請參考:http://blog.csdn.net/u010476994/article/details/71479584)。另外,本文以Mysql數據庫爲例,介紹Sqoop的使用方法,所以Mysql數據庫也要提前安裝好(mysql 的安裝本文不作介紹)。

具體安裝步驟:
1、上傳安裝包,並解壓到/home/目錄下(路徑自己定義)
     sqoop文件夾的名字太長了,此處重命名一下。
[root@hadoop1 home]# tar zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz  -C /home/
[root@hadoop1 home]# cd /home
[root@hadoop1 home]# mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop-1.4.6
2、修改環境變量,編輯/etc/profile , 在文檔末尾添加如下配置:
export SQOOP_HOME=/home/sqoop-1.4.6
export PATH=$PATH:$SQOOP_HOME/bin
     保存退出,使用resource命令將/etc/profile文件的配置重新讀入內存:
[root@hadoop1 sqoop-1.4.6]# source /etc/profile
3、sqoop在導入/導出時,需要與關係型數據庫(本文以mysql爲例)進行交互,因此需要將關係型數據庫的驅動包拷貝到sqoop的lib目錄下,即/home/sqoop-1.4.6/lib下。
4、關於sqoop的配置文件。sqoop在conf文件夾下提供了配置文件的模板sqoop-env-template.sh ,把該文件重命名爲sqoop-env.sh。在該文件中可以配置關於Hadoop、HBase、Hive等一些環境變量信息,可以進行配置,也可以不配置。如果此處進行配置,路徑需要與系統環境變量中配置的Hadoop、HBase、Hive的路徑保持一致。如果不配置,sqoop會自動從系統環境變量中讀取相應的路徑。此處我們不進行配置,由sqoop去系統環境變量中取值。
5、sqoop的配置已經完成,可以使用sqoop version命令查看sqoop版本信息:
[root@hadoop1 conf]# sqoop version
Warning: /home/sqoop-1.4.6/../hbase does not exist! HBase imports will fail.
Please set $HBASE_HOME to the root of your HBase installation.
Warning: /home/sqoop-1.4.6/../hcatalog does not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /home/sqoop-1.4.6/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
17/05/15 15:49:54 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
Sqoop 1.4.6
git commit id c0c5a81723759fa575844a0a1eae8f510fa32c25
Compiled by root on Mon Apr 27 14:38:36 CST 2015
     在打印出的日誌,可以看出我們的sqoop版本爲 1.4.6。  同時,打印的信息中有類似的信息:HBase imports will fail. 這是因爲當前主機的環境變量中並沒有HBase/HCatalog/Accumulo的值(因爲當前主機沒有安裝)。但是並不影響sqoop的正常使用,可忽略這些提示。可以採用如下方式,取消提示信息的輸出:在sqoop安裝根目錄下的bin文件夾裏,有一個名爲configure-sqoop的文件,將該文件夾中的如下代碼全部註釋即可:
## Moved to be a runtime check in sqoop.
if [ ! -d "${HBASE_HOME}" ]; then
  echo "Warning: $HBASE_HOME does not exist! HBase imports will fail."
  echo 'Please set $HBASE_HOME to the root of your HBase installation.'
fi

## Moved to be a runtime check in sqoop.
if [ ! -d "${HCAT_HOME}" ]; then
  echo "Warning: $HCAT_HOME does not exist! HCatalog jobs will fail."
  echo 'Please set $HCAT_HOME to the root of your HCatalog installation.'
fi

if [ ! -d "${ACCUMULO_HOME}" ]; then
  echo "Warning: $ACCUMULO_HOME does not exist! Accumulo imports will fail."
  echo 'Please set $ACCUMULO_HOME to the root of your Accumulo installation.'
fi

測試驗證成功:
[root@hadoop1 bin]# sqoop list-databases --connect jdbc:mysql://192.168.152.101:3306/ --username root --password 123456
17/05/15 17:18:43 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
17/05/15 17:18:43 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
17/05/15 17:18:43 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
information_schema
mysql
test
[root@hadoop1 bin]#

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章