Sqoop1 和 Sqoop2 的区别

# 版本上

  Sqoop1: 1.4.x

  Sqoop2: 1.99.x

# 架构上

  Sqoop1 使用 Sqoop客户端直接提交的方式(命令、将命令封装在脚本中)

  Sqoop2 引入了 Sqoop Server,对Connector实现了集中的管理

# 访问方式

  Sqoop1 通过Cli控制台方式进行访问

  Sqoop2 通过 rest api、java api、web ui以及cli控制台方式进行访问

# 安全性

  Sqoop1 在命令或脚本中指定用户数据库名及密码

  Sqoop2 是通过Cli方式访问,在交互过程界面中,输入的密码信息会被看到,同时 Sqoop2 引入了基于角色的安全机制,Sqoop2比Sqoop多了一个Server端。

# 综述

  Sqoop1 架构简单明了,部署即用,使用门槛比较低,但是耦合性强,用户密码暴露不安全。

  Sqoop2 服务端部署,运行,提供 cli、rest api,webui 等入口,connector集中管理,rdbms 账户控制更安全,但是sqoop2仅负责数据的读写操作,架构相对复杂

  

Sqoop1 和 Sqoop2 的架构图

Sqoop1 的配置

解压安装之后,修改配置文件(conf/sqoop-env.sh

#Set path to where bin/hadoop is available
#export HADOOP_COMMON_HOME=

export HADOOP_COMMON_HOME= /data/hadoop/hadoop < /span >

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

export HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME /share/hadoop/mapreduce/ < /span >

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

export HBASE_HOME= /data/hbase/hbase < /span >

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

export HIVE_HOME= /data/hive/apache-hive < /span >

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

export ZOOCFGDIR= /data/zookeeper/apache-zookeeper
< /span >

  

Sqoop1 导入(MySQL导入到HDFS)

注意: 需要启动 MySQL、ZK、Hadoop

# demo1:table

# sqoop1 导入命令 mysql=>hdfs
bin /sqoop import
# mysql驱动类
--driver com.mysql.cj.jdbc.Driver< /span >
# 连接字符串
--connect jdbc:mysql: // 192.168.56.1< /span >/dbName< /span >?serverTimezone=GMT%2B8< /span >
# 从哪张表导数据
--table tbName< /span >
# mysql账号 
--username root< /span >
# mysql 密码
--password 123456< /span >
--verbose
# 目标目录(HDFS)
--target- dir = /sqoop/a_users
< /span >

  

# demo2:query

# 导入数据
# --query和--table是互斥的;
bin /sqoop import
--connect jdbc:mysql: // 192.168.56.1< /span >/dbName< /span >?serverTimezone=GMT%2B8< /span >
--username root< /span >
--password 123456< /span >
--verbose
# 获取记录条数
--fetch-size 30< /span >
# SQL 语句
# $CONDITIONS sql语句执行的条件,这个条件由sqoop自己控制
--query  'select * from tbName where $CONDITIONS'
# 按照 id 切分
#--split-by;拆分的这一列不能重复,一般是主键
-- split -by id < /span >  
# 目标目录(HDFS)
--target- dir = /sqoop/a_users
< /span >

  

# demo3:将数据库账号、密码、SQL语句封装到一个文件中

# 新建一个文件;(一行一个,使用#注释);文件名随便写
import
--connect jdbc:mysql: // 192.168.56.1< /span >/dbName< /span >?serverTimezone=GMT%2B8< /span >
--username root< /span >
--password 123456< /span >
--verbose
--fetch-size 30< /span >
--query 'select * from a_users where $CONDITIONS'
-- split -by id < /span >
--target- dir = /sqoop/a_users
< /span >

执行封装了Sqoop命令的文件

bin /sqoop --options- file  /root/fileName .txt
< /span >

  

# demo4:命令过长可以使用反斜杠换行

bin /sqoop import --connect jdbc:mysql: //192 .168.56.1:3306 /dbName ?serverTimezone=GMT%2B8 \< /span >< /strong >
--username root --password 123456 --verbose --fetch-size 30 --query 'select * from tbName where $CONDITIONS' -- split -by id  \< /span >< /strong >
--target- dir = /sqoop/path

  

Sqoop1 导入(MySQL导入到 Hive)

注意:启动Hive

# 配置

  将 $HIVE_HOME/lib 下的 hive-common-x.x.x.jar 拷贝到 $SQOOP_HOME/lib

# fields-terminated-by;列的分隔符

bin /sqoop import --connect jdbc:mysql: //192 .168.56.1 /userscenter ?serverTimezone=GMT%2B8 \
--username root --password 123456 --verbose --fetch-size 30 --query 'select * from a_demo_dynasty where $CONDITIONS' -- split -by id \
--target- dir = /sqoop/a_dynasty \
--fields-terminated-by ',' \
--hive- import \
--hive-table mydata.a_dynasty  --hive-overwrite

  

Sqoop1 全表导入到HDFS

bin /sqoop import -all-tables  --connect jdbc:mysql: //192 .168.56.1:3306 /dbName ?serverTimezone=GMT%2B8 \
--username root --password 123456 --verbose --fetch-size 30 \
--warehouse- dir = /sqoop/a_dynasty

  

Sqoop1的导入导出的更多相关文章

  1. 通过 Sqoop1.4.7 将 Mysql5.7、Hive2.3.4、Hbase1.4.9 之间的数据导入导出

    目录 目录 1.什么是 Sqoop? 2.下载应用程序及配置环境变量 2.1.下载 Sqoop 1.4.7 2.2.设置环境变量 2.3.设置安装所需环境 3.安装 Sqoop 1.4.7 3.1.修 ...

  2. sqoop1的安装以及数据导入导出测试

    下载 wget http://mirror.bit.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 解压 tar -zxf ...

  3. Sqoop_mysql,hive,hdfs导入导出操作

    前言: 搭建环境,这里使用cdh版hadoop+hive+sqoop+mysql 下载 hadoop-2.5.0-cdh5.3.6.tar.gz hive-0.13.1-cdh5.3.6.tar.gz ...

  4. Sqoop -- 用于Hadoop与关系数据库间数据导入导出工作的工具

    Sqoop是一款开源的工具,主要用于在Hadoop相关存储(HDFS.Hive.HBase)与传统关系数据库(MySql.Oracle等)间进行数据传递工作.Sqoop最早是作为Hadoop的一个第三 ...

  5. Sqoop导入导出的几个例子

    Sqoop导入导出的几个例子 http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_importing_data_into_hive   no ...

  6. 如何利用sqoop将hive数据导入导出数据到mysql

    运行环境  centos 5.6   hadoop  hive sqoop是让hadoop技术支持的clouder公司开发的一个在关系数据库和hdfs,hive之间数据导入导出的一个工具. 上海尚学堂 ...

  7. sqoop与hbase导入导出数据

    环境:sqoop1.4.6+hadoop2.6+hbase1.1+mysql5.7 说明: 1.文中的导入导出的表结构借鉴了网上的某篇博客 2.mysql导入hbase可以直接通过sqoop进行 3. ...

  8. CRL快速开发框架系列教程九(导入/导出数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  9. ITTC数据挖掘平台介绍(五) 数据导入导出向导和报告生成

    一. 前言 经过了一个多月的努力,软件系统又添加了不少新功能.这些功能包括非常实用的数据导入导出,对触摸进行优化的画布和画笔工具,以及对一些智能分析的报告生成模块等.进一步加强了平台系统级的功能. 马 ...

  10. ASP.NET Core 导入导出Excel xlsx 文件

    ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...

随机推荐

  1. Elm 和 Jetpack Compose 殊途同归及 MVVM 缺点分析

    Html.lazy · An Introduction to Elm 可能搞 vdom 的都会到 lazy renderer 这一步,react 可能也可以这么搞或者已经这么搞了我不知道,Elm 提到 ...

  2. 如果XXL-JOB执行器在执行某任务中被重启了,重启后该任务能够被自动弥补调度吗

    开心一刻 上午,走路不小心踩了钉子,去打了破伤风 下午,又特么踩到了钉子,我问医生 我:还需要打针吗 医生:你有那钱还是看看眼睛吧 基础回顾 项目基于 xxl-job 2.1.0 实现的分布式调度,所 ...

  3. Not all slots covered! Only 5461 slots are available. Set checkSlotsCoverage = false to avoid this check

    Not all slots covered! Only 5461 slots are available. Set checkSlotsCoverage = false to avoid this c ...

  4. 判断移动终端类型安卓苹果鸿蒙、查看设备详细信息、跳转到各手机应用商店、判断APP是否已安装

      案例1:判断移动终端类型,微信扫描二维码链接可以区分华为(荣耀).安卓.苹果手机.华为及荣耀会跳到华为应用商店.安卓会提示浏览器打开.苹果跳到苹果商店. <!DOCTYPE html> ...

  5. Qt编写安防视频监控系统67-跨平台及国产系统

    一.前言 得益于Qt的超强跨平台特性,本系统也是跨平台的,亲测的系统包括windows全系列.ubuntu全系列.centeos.国产系统UOS.国产系统银河麒麟.中标麒麟.嵌入式linux.树莓派. ...

  6. 启动redis失败Could not create server TCP listening socket 127.0.0.1:6379:bind:操作成功

    问题: 启动redis失败Could not create server TCP listening socket 127.0.0.1:6379:bind:操作成功 解决方法: 在命令行提示符C:\P ...

  7. @wraps 修饰器:让你的 Python 代码更加简短可爱 | 从简单实例来认识它

    @wraps 修饰器:让你的 Python 代码更加简短可爱 | 从简单实例来认识它 我们在上一篇文章(Python实例来认识并发与并行)中用到了 @timer ,在函数定义时,加上一个小小的 @ti ...

  8. 将 EasySQLite 从 .NET 8 升级到 .NET 9

    前言 EasySQLite是一个.NET 8操作SQLite入门到实战的详细教程,主要是对学校班级,学生信息进行管理维护.今天咱们的主要内容是将EasySQLite从.NET 8升级到.NET 9. ...

  9. Github配置SSH避免远程提交重复输入用户名密码

    一. 前言 Logon failed, use ctrl+c to cancel basic credential prompt. 是不是提交会遇到上述错误,每次远程提交至Github需要重新输入用户 ...

  10. KES(KingBaseES)集群部署实战

    今天我们将探讨关于KES(KingBaseES)的集群部署方案.作为示例,我们将以读写分离(RWC)集群为例,快速在本地进行部署和安装,并深入了解KES的部署流程.在本章中,我们将采用Windows平 ...