目前 Sqoop 有 Sqoop1 和 Sqoop2 兩個版本,但是截至到目前,官方并不推薦使用 Sqoop2,因為其與 Sqoop1 并不兼容,且功能還沒有完善,所以這里優先推薦使用 Sqoop 1,本次安裝的檔案是【Sqoop1的最新版本】 sqoop-1.4.7.bin-hadoop-2.6.0.tar.gz 以下內容均以此版本進行說明,
1.資源分享
鏈接:https://pan.baidu.com/s/1XRZs2PngAnrMczuD7Dn7Kg
提取碼:w7b9
包含資源:(Sqoop1最新版)sqoop-1.4.7.bin-hadoop-2.6.0.tar.gz 和 sqoop-1.4.7.tar.gz
(Sqoop2最新版)sqoop-1.99.7-bin-hadoop200.tar.gz 和 sqoop-1.99.7.tar.gz
2.簡單介紹
Sqoop 是一個常用的資料遷移工具,主要用于在不同存盤系統之間實作資料的匯入與匯出:
- 匯入資料:從 MySQL,Oracle 等關系型資料庫中匯入資料到 HDFS、Hive、HBase 等分布式檔案存盤系統中;
- 匯出資料:從分布式檔案系統中匯出資料到關系資料庫中,
Sqoop1的原理是將執行命令轉化成 MapReduce 作業來實作資料的遷移,如下圖:

3.前置條件
由于 Sqoop1 是將執行命令轉化成 MapReduce 作業來實作資料的遷移,所有必須安裝Hadoop,我安裝的是3.1.3版本的,安裝教程可參考《Hadoop3.1.3單機版安裝配置》 😃
[root@tcloud ~]# hadoop version
Hadoop 3.1.3
4.安裝配置
# 1.解壓并移動到/usr/local/sqoop/下
tar -zxvf sqoop-1.4.7.bin-hadoop-2.6.0.tar.gz
# 這里注意一下 官網下載的安裝包是【bin__hadoop】我改成-了 所以解壓之后是雙下劃線
mv sqoop-1.4.7.bin__hadoop-2.6.0/ /usr/local/sqoop/
# 2.配置環境變數:
vim /etc/profile.d/my_env.sh
# 添加
export SQOOP_HOME=/usr/local/sqoop
export PATH=$SQOOP_HOME/bin:$PATH
# 使得配置的環境變數立即生效:
# 首先是要賦權限【只操作一次就行】
chmod +x /etc/profile.d/my_env.sh
source /etc/profile.d/my_env.sh
# 驗證一下
echo $SQOOP_HOME # 顯示/usr/local/sqoop表示成功
# 3.sqoop配置
# 復制${SQOOP_HOME}/conf/sqoop-env-template.sh 并修改 sqoop-env.sh 組態檔
cp sqoop-env-template.sh sqoop-env.sh
vim sqoop-env.sh
# 配置中HADOOP_COMMON_HOME和HADOOP_MAPRED_HOME是必須配置的 其他的用到了再進行配置
# Set Hadoop-specific environment variables here.
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/usr/local/hadoop-3.1.3
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.3
#set the path to where bin/hbase is available
#export HBASE_HOME=
#Set the path to where bin/hive is available
#export HIVE_HOME=
#Set the path for where zookeper config dir is
#export ZOOCFGDIR=
5.拷貝資料庫驅動
將 MySQL 驅動包拷貝到 Sqoop1的安裝目錄的 ${SQOOP_HOME}/lib/ 目錄下,百度網盤 mysql-connector-java-5.1.47.jar 分享:
鏈接:https://pan.baidu.com/s/1X15dNrH-B-U5oxw-H6sn8A
提取碼:ibaj
6.驗證
由于已經將 sqoop 的 bin 目錄配置到環境變數,直接使用以下命令驗證是否配置成功:
[root@tcloud ~]# sqoop version
Warning: /usr/local/sqoop/../hbase does not exist! HBase imports will fail.
Please set $HBASE_HOME to the root of your HBase installation.
Warning: /usr/local/sqoop/../hcatalog does not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /usr/local/sqoop/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
2021-09-08 16:52:22,191 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7
Sqoop 1.4.7
git commit id 2328971411f57f0cb683dfb79d19d4d19d185dd8
Compiled by maugli on Thu Dec 21 15:59:58 STD 2017
出現對應的版本資訊則代表配置成功:
2021-09-08 16:52:22,191 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7
Sqoop 1.4.7
這里出現的三個 Warning 警告是因為沒有配置 $HBASE_HOME、$HCAT_HOME和$ACCUMULO_HOME,如果不使用HBase、HCatalog和Accumulo,忽略即可,Sqoop在啟動時會去檢查環境變數中是否有配置這些軟體,如果想去除這些警告,可以修改${SQOOP_HOME}/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@tcloud ~]# sqoop version
2021-09-08 17:03:51,446 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7
Sqoop 1.4.7
git commit id 2328971411f57f0cb683dfb79d19d4d19d185dd8
Compiled by maugli on Thu Dec 21 15:59:58 STD 2017
7.總結
至此,Sqoop1安裝配置成功 👌 使用時還會遇到相當多的問題,隨后會詳細說明,感謝大家的支持~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/298619.html
標籤:其他
