sqoop安裝配置
開篇碎碎念:
此文章寫于我做專案途中,從hive將資料傳遞給mysql資料庫需要安裝sqoop,途中踩了很多坑,就把這些記錄下來,
安裝sqoop之前,java和hadoop的安裝都是必須的,以及hive和mysql的安裝我寫成了另一篇文章,可以去我空間找,相關下載網盤鏈接為了方便我也放在了里面(順便一提阿里云盤真香),
下面進入正題,
文章目錄
- sqoop安裝配置
- 1. 驗證java安裝
- 2. 驗證Hadoop安裝
- 3. 安裝sqoop
- 4. 配置.bsahrc
- 5. 配置sqoop
- 6. 下載配置java的Mysql連接器 (mysql-connector-java)
- 7. 驗證Sqoop安裝
- 8. 報錯資訊修改
Sqoop是Hadoop和關系資料庫服務器之間傳送資料的一種工具,它是用來從關系資料庫如:MySQL,Oracle到Hadoop的HDFS,并從Hadoop的檔案系統匯出資料到關系資料庫,
1. 驗證java安裝
在安裝Sqoop之前,需要確定是否已經在系統上安裝Java,用下面的命令來驗證Java安裝:在安裝Sqoop之前,需要確定是否已經在系統上安裝Java,用下面的命令來驗證Java安裝:
java -version
如果Java已經安裝在系統上,應該能看到如下回應:

2. 驗證Hadoop安裝
在安裝Sqoop之前Hadoop必須在系統上安裝,使用下面的命令來驗證Hadoop的安裝:
cd /usr/local/hadoop
./bin/hadoop version
如果Hadoop是已經安裝在系統上,那么會得到以下回應:

3. 安裝sqoop
下面的命令用于提取Sqoop.tar.gz并將其移動到“/usr/local/sqoop” 目錄,
[root@master2 hadoop]# cd /usr/local
[root@master2 local]# tar -xf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
[root@master2 local]# mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop
4. 配置.bsahrc
必須設定Sqoop環境,通過附加以下行到?/.bashrc檔案:
vi ~/.bashrc
增加一行
#Sqoop
export SQOOP_HOME=/usr/local/sqoop export PATH=$PATH:$SQOOP_HOME/bin
保存退出,重新執行 ~/.bashrc 檔案
source ~/.bashrc
5. 配置sqoop
進入sqoop安裝目錄下的conf目錄,把 sqoop-env.sh 的模板檔案 sqoop-env-template.sh 改名
cd /usr/local/sqoop/conf
mv sqoop-env-template.sh sqoop-env.sh
打開sqoop-env.sh并編輯下面幾行:
export HADOOP_COMMON_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
6. 下載配置java的Mysql連接器 (mysql-connector-java)
注意下載的連接器版本要與Mysql版本一致,我這里是 mysql-connector-java-8.0.25.jar
上傳至 /usr/local/sqoop/lib 目錄
下載鏈接我也扔在這里
阿里云盤鏈接:https://www.aliyundrive.com/s/1jffqSSdU3s
7. 驗證Sqoop安裝
下面的命令被用來驗證Sqoop版本
cd /usr/local/sqoop
./bin/sqoop version
如下所示

8. 報錯資訊修改

警告大意為,集群沒有安裝HBase、HCatalog 、Accumulo和Zookeeper,hadoop_prefix這個變數被hadoop_home這個變數取代了,
這里先解決前四個,修改sqoop安裝目錄bin檔案夾下的configure-sqoop檔案,找到以下幾個地方注釋掉,


關于hadoop_prefix這個變數被hadoop_home這個變數取代報錯資訊,參考csdn上另一篇大佬的文章,
https://blog.csdn.net/daerzei/article/details/80878428
/usr/local/hadoop/libexec/hadoop-functions.sh: line 2401: HADOOP_ORG.APACHE.SQOOP.SQOOP_USER: bad substitution
/usr/local/hadoop/libexec/hadoop-functions.sh: line 2366: HADOOP_ORG.APACHE.SQOOP.SQOOP_USER: bad substitution
/usr/local/hadoop/libexec/hadoop-functions.sh: line 2461: HADOOP_ORG.APACHE.SQOOP.SQOOP_OPTS: bad substitution
關于這三個報錯,由于我的hadoop版本為3.2.2,這個問題在3.3.0中被修復

在運行命令后,報錯如下:

解決方法:
向sqoop安裝目錄下的lib目錄匯入一個jar包
commons-lang-2.6.jar
再次運行命令,錯誤解決
jar包下載 阿里云盤鏈接:
https://www.aliyundrive.com/s/FcU3eivzTY1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/293121.html
標籤:其他
