• 大数据:Sqoop 简介与安装


    一、Sqoop 简介

    Sqoop 是一个常用的数据迁移工具,主要用于在不同存储系统之间实现数据的导入与导出:

    • 导入数据:从 MySQL,Oracle 等关系型数据库中导入数据到 HDFS、Hive、HBase 等分布式文件存储系统中;

    • 导出数据:从 分布式文件系统中导出数据到关系数据库中。

    其原理是将执行命令转化成 MapReduce 作业来实现数据的迁移,如下图:

    二、安装

    版本选择:目前 Sqoop 有 Sqoop 1 和 Sqoop 2 两个版本,但是截至到目前,官方并不推荐使用 Sqoop 2,因为其与 Sqoop 1 并不兼容,且功能还没有完善,所以这里优先推荐使用 Sqoop 1。

    在这里插入图片描述

    2.1 下载并解压

    下载所需版本的 Sqoop ,这里我下载的是 CDH 版本的 Sqoop 。下载地址为:http://archive.cloudera.com/cdh5/cdh/5/

    # 下载后进行解压
    tar -zxvf  sqoop-1.4.6-cdh5.15.2.tar.gz
    
    • 1
    • 2

    2.2 配置环境变量

    # vim /etc/profile
    
    • 1

    添加环境变量:

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

    使得配置的环境变量立即生效:

    # source /etc/profile
    
    • 1

    2.3 修改配置

    进入安装目录下的 conf/ 目录,拷贝 Sqoop 的环境配置模板 sqoop-env.sh.template

    # cp sqoop-env-template.sh sqoop-env.sh
    
    • 1

    修改 sqoop-env.sh,内容如下 (以下配置中 HADOOP_COMMON_HOMEHADOOP_MAPRED_HOME 是必选的,其他的是可选的):

    # Set Hadoop-specific environment variables here.
    #Set path to where bin/hadoop is available
    export HADOOP_COMMON_HOME=/usr/app/hadoop-2.6.0-cdh5.15.2
    
    #Set path to where hadoop-*-core.jar is available
    export HADOOP_MAPRED_HOME=/usr/app/hadoop-2.6.0-cdh5.15.2
    
    #set the path to where bin/hbase is available
    export HBASE_HOME=/usr/app/hbase-1.2.0-cdh5.15.2
    
    #Set the path to where bin/hive is available
    export HIVE_HOME=/usr/app/hive-1.1.0-cdh5.15.2
    
    #Set the path for where zookeper config dir is
    export ZOOCFGDIR=/usr/app/zookeeper-3.4.13/conf
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    2.4 拷贝数据库驱动

    将 MySQL 驱动包拷贝到 Sqoop 安装目录的 lib 目录下, 驱动包的下载地址为 https://dev.mysql.com/downloads/connector/j/ 。在本仓库的resources 目录下我也上传了一份,有需要的话可以自行下载。

    2.5 验证

    由于已经将 sqoop 的 bin 目录配置到环境变量,直接使用以下命令验证是否配置成功:

    # sqoop version
    
    • 1

    出现对应的版本信息则代表配置成功:

    这里出现的两个 Warning 警告是因为我们本身就没有用到 HCatalogAccumulo,忽略即可。Sqoop 在启动时会去检查环境变量中是否有配置这些软件,如果想去除这些警告,可以修改 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
  • 相关阅读:
    节省工时超 1500人/天,国泰基金探索金融业人机协同新业态
    vue3 + antdv table 展开行 expandedRowRender 根据判断条件动态显隐展开行的 icon
    【PostgreSQL】日期操作
    算法通关村第五关-二叉树遍历(层数优先)之经典问题:简单的层序遍历、层序遍历分层、自底向上的层序遍历
    NetApp EF 系列全闪存阵列——性能极佳,性价比优势突出
    408计算机网络知识点简记 (背诵用
    linux如何查看各个文件夹大小
    (附源码)springboot学生宿舍管理系统 毕业设计 161542
    2022.09.19 学习笔记
    Python获取Pandas列名的几种方法(含代码示例)
  • 原文地址:https://blog.csdn.net/xiaxianba/article/details/128171112