Sqoop 簡單介紹與配置安裝

簡單介紹

Sqoop是一個用來將Hadoop(Hive、HBase)和關係型數據庫中的數據相互轉移的工具,可以將一個關係型數據庫(例如:MySQL ,Oracle ,Postgres等)中的數據導入到Hadoop的HDFS中,也可以將HDFS的數據導入到關係型數據庫中。

下載解壓

下載所需版本的Sqoop ,這裏我下載的官網的Sqoop 。下載地址爲:https://mirror.bit.edu.cn/apache/sqoop/1.4.7

tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 

配置環境變量

vim /etc/profile

添加環境變量:

export SQOOP_HOME=/usr/app/sqoop-1.4.6-cdh5.15.2
export PATH=$SQOOP_HOME/bin:$PATH

使得配置的環境變量立即生效:

source /etc/profile

修改配置

進入安裝目錄下的conf/目錄,拷貝Sqoop的環境配置模板sqoop-env.sh.template

/opt/app/sqoop-1.4.7.bin__hadoop-2.6.0/conf

cp sqoop-env-template.sh sqoop-env.sh

修改sqoop-env.sh,內容如下
在這裏插入圖片描述

加入數據庫驅動

將MySQL驅動包拷貝到Sqoop安裝目錄的lib目錄下,沒有驅動的話可以用我這個 https://pan.baidu.com/s/17XoE_akSfnTOCgxwXSZC3w 提取碼: khes

/opt/app/sqoop-1.4.7.bin__hadoop-2.6.0/lib

mysql-connector-java-5.1.39.jar(驅動)

驗證

由於之前已經將sqoop的bin目錄配置到環境變量,在任意目錄下

sqoop version

出現對應的版本信息則代表配置成功:

在這裏插入圖片描述
但是明顯可以看出兩個Warning警告是因爲我們本身就沒有用到HCatalogAccumulo,忽略即可。Sqoop在啓動時會去檢查環境變量中是否有配置這些軟件,如果想去除這些警告,可以修改bin/configure-sqoop,註釋掉不必要的檢查。

vim /opt/app/sqoop-1.4.7.bin__hadoop-2.6.0/bin/configure-sqoop

註釋掉這些不必要的檢查。

# Check: If we can't find our dependencies, give up here.
if [ ! -d "${HADOOP_COMMON_HOME}" ]; then
  echo "Error: $HADOOP_COMMON_HOME does not exist!"
  echo 'Please set $HADOOP_COMMON_HOME to the root of your Hadoop installation.'
  exit 1
fi
if [ ! -d "${HADOOP_MAPRED_HOME}" ]; then
  echo "Error: $HADOOP_MAPRED_HOME does not exist!"
  echo 'Please set $HADOOP_MAPRED_HOME to the root of your Hadoop MapReduce installation.'
  exit 1
fi

## 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
if [ ! -d "${ZOOKEEPER_HOME}" ]; then
  echo "Warning: $ZOOKEEPER_HOME does not exist! Accumulo imports will fail."
  echo 'Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.'
fi
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章