【大数据开发运维解决方案】sqoop1.4.7的安装及使用(hadoop2.7环境)

简介: Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

一、sqoop简介

Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

二、环境配置

image.png

三、安装Sqoop

1. 下载,解压到指定目录

下载连接:

点此下载
创建安装目录,通过xshell上传安装包

[root@hadoop hadoop]# pwd
/hadoop
[root@hadoop hadoop]# mkdir sqoop
[root@hadoop hadoop]# cd sqoop/
[root@hadoop sqoop]# ls
sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
[root@hadoop sqoop]# tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 
[root@hadoop sqoop]# ls
sqoop-1.4.7.bin__hadoop-2.6.0  sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
[root@hadoop sqoop]# rm -rf *gz
[root@hadoop sqoop]# mv sqoop-1.4.7.bin__hadoop-2.6.0/* .

2、修改配置文件sqoop-env.sh

在sqoop/conf目录下有一个文件sqoop-env-template.sh,把它复制为sqoop-env.sh并修改

[root@hadoop sqoop]# cd conf/
[root@hadoop conf]# cp sqoop-env-template.sh sqoop-env.sh
#Set path to where bin/hadoop is available
[root@hadoop conf]# vim sqoop-env.sh 
根据自己情况修改,另外,你还装了Zookeeper的话则最后一句也要配置。
export HADOOP_COMMON_HOME=/hadoop/

#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/hadoop/

#set the path to where bin/hbase is available
export HBASE_HOME=/hadoop/hbase/

#Set the path to where bin/hive is available
export HIVE_HOME=/hadoop/hive

#Set the path for where zookeper config dir is
#export ZOOCFGDIR=                                 

3. 配置环境变量

我测试用户为root用户,直接修改/etc/profile加入下面内容:

export SQOOP_HOME=/hadoop/sqoop
export PATH=$PATH:${SQOOP_HOME}/bin
export CLASSPATH=$CLASSPATH:${SQOOP_HOME}/lib

然后使环境变量生效

[root@hadoop conf]# source /etc/profile

4. 复制相关依赖包到$SQOOP_HOME/lib

因为我是将Oracle数据导入到hive,所以复制环境数据库所在虚拟机(195.168.1.6)的Oracle的OJDBC包到/hadoop/sqoop/lib下

[oracle@source ~]$ cd $ORACLE_HOME/jdbc/lib
[oracle@source lib]$ pwd
/u01/app/oracle/product/11.2.0/db_1/jdbc/lib
[oracle@source lib]$ ls
ojdbc5dms_g.jar  ojdbc5_g.jar  ojdbc6dms_g.jar  ojdbc6_g.jar  simplefan.jar
ojdbc5dms.jar    ojdbc5.jar    ojdbc6dms.jar    ojdbc6.jar
上面是数据库所在虚拟机Oraclejar包位置及信息。将ojdbc包传到hadoop虚拟机
[oracle@source lib]$ scp ojdbc6.jar root@192.168.1.66:/hadoop/sqoop/lib
root@192.168.1.66's password: 
ojdbc6.jar                                                           100% 2675KB   2.6MB/s   00:00    

5、修改$SQOOP_HOME/bin/configure-sqoop

注释掉HCatalog,Accumulo检查(除非你准备使用HCatalog,Accumulo等HADOOP上的组件)

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

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

#Add HCatalog to dependency list
#if[ -e "${HCAT_HOME}/bin/hcat" ]; then
# TMP_SQOOP_CLASSPATH=${SQOOP_CLASSPATH}:`${HCAT_HOME}/bin/hcat-classpath`
#  if [ -z "${HIVE_CONF_DIR}" ]; then
#   TMP_SQOOP_CLASSPATH=${TMP_SQOOP_CLASSPATH}:${HIVE_CONF_DIR}
#  fi
#  SQOOP_CLASSPATH=${TMP_SQOOP_CLASSPATH}
#fi
 
#Add Accumulo to dependency list
#if[ -e "$ACCUMULO_HOME/bin/accumulo" ]; then
#  for jn in `$ACCUMULO_HOME/bin/accumuloclasspath | grep file:.*accumulo.*jar |cut -d':' -f2`; do
#    SQOOP_CLASSPATH=$SQOOP_CLASSPATH:$jn
#  done
#  for jn in `$ACCUMULO_HOME/bin/accumuloclasspath | grep file:.*zookeeper.*jar |cut -d':' -f2`; do
#    SQOOP_CLASSPATH=$SQOOP_CLASSPATH:$jn
#  done
#fi

6、 测试与Oracle的连接

[root@hadoop sqoop]# pwd
/hadoop/sqoop
[root@hadoop sqoop]# sqoop list-databases --connect jdbc:oracle:thin:@192.168.1.6:1521:orcl --username scott --password tiger
Warning: /hadoop/sqoop/../zookeeper does not exist! Accumulo imports will fail.
Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.
19/03/18 14:25:57 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7
19/03/18 14:25:57 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consi
der using -P instead.19/03/18 14:25:57 INFO oracle.OraOopManagerFactory: Data Connector for Oracle and Hadoop is disabled.
19/03/18 14:25:57 INFO manager.SqlManager: Using default fetchSize of 1000
19/03/18 14:25:58 INFO manager.OracleManager: Time zone has been set to GMT
SYS
SYSTEM
SCOTT
TEST
ADMRG
OGG
OUTLN
MGMT_VIEW
FLOWS_FILES
MDSYS
ORDSYS
EXFSYS
DBSNMP
WMSYS
APPQOSSYS
APEX_030200
OWBSYS_AUDIT
ORDDATA
CTXSYS
ANONYMOUS
SYSMAN
XDB
ORDPLUGINS
OWBSYS
SI_INFORMTN_SCHEMA
OLAPSYS
ORACLE_OCM
XS$NULL
BI
PM
MDDATA
IX
SH
DIP
OE
APEX_PUBLIC_USER
HR
SPATIAL_CSW_ADMIN_USR
SPATIAL_WFS_ADMIN_USR
相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
弹性计算 Ubuntu Linux
阿里云系统运维管理OOS一键安装宝塔面板,这个功能太牛了!
宝塔面板是实用的服务器管理工具,支持多种操作系统(如Ubuntu、CentOS等)。通过阿里云OOS可一键安装。安装前提包括ECS实例运行中且有公网,安全组需开放8888端口。安装步骤简单,进入ECS控制台选择预装应用并确认下单,完成后在控制台查看详情和登录信息。最后验证安装结果,确保能成功访问宝塔面板URL。
631 82
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
1042 79
|
运维 算法 数据可视化
【2021 高校大数据挑战赛-智能运维中的异常检测与趋势预测】2 方案设计与实现-Python
文章详细介绍了参加2021高校大数据挑战赛中智能运维异常检测与趋势预测任务的方案设计与Python实现,包括问题一的异常点和异常周期检测、问题二的异常预测多变量分类问题,以及问题三的多变量KPI指标预测问题的算法过程描述和代码实现。
317 0
|
运维 自然语言处理 算法
云栖实录 | 大模型在大数据智能运维的应用实践
云栖实录 | 大模型在大数据智能运维的应用实践
1366 3
|
机器学习/深度学习 人工智能 运维
智能化运维:AI与大数据在IT运维中的应用探索####
本文旨在探讨人工智能(AI)与大数据分析技术如何革新传统IT运维模式,提升运维效率与服务质量。通过具体案例分析,揭示AI算法在故障预测、异常检测及自动化修复等方面的实际应用成效,同时阐述大数据如何助力实现精准运维管理,降低运营成本,提升用户体验。文章还将简要讨论实施智能化运维面临的挑战与未来发展趋势,为IT管理者提供决策参考。 ####
|
机器学习/深度学习 人工智能 运维
智能运维:大数据与AI的融合之道###
【10月更文挑战第20天】 运维领域正经历一场静悄悄的变革,大数据与人工智能的深度融合正重塑着传统的运维模式。本文探讨了智能运维如何借助大数据分析和机器学习算法,实现从被动响应到主动预防的转变,提升系统稳定性和效率的同时,降低了运维成本。通过实例解析,揭示智能运维在现代IT架构中的核心价值,为读者提供一份关于未来运维趋势的深刻洞察。 ###
536 11
|
缓存 运维 Linux
深入解析:一步步掌握 CentOS 7 安装全流程及运维实战技巧
深入解析:一步步掌握 CentOS 7 安装全流程及运维实战技巧
|
应用服务中间件 网络安全 nginx
运维专题.Docker+Nginx服务器的SSL证书安装
运维专题.Docker+Nginx服务器的SSL证书安装
1205 3