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. 使用docker-compose快速部署Prometheus+grafana环境

    由于最近公司服务频繁出问题,老板很生气,下面的人都很不好过,于是老大让加一下业务监控,来观察线上数据状态.但是由于qa环境数据量太少,所以自己搭建了一套环境做相关监控,并且写了个脚本模仿生产上的数据, ...

  2. 深入理解 Servlet:从基础概念到高级特性与实战应用

    一.Servlet简介与工作原理 Servlet是Java Web开发中的重要组件,它运行在服务器端,用于处理客户端的请求并返回响应.其工作原理涉及多个组件和步骤,从客户端发起请求到服务器端的处理和响 ...

  3. Ubuntu Jack-server报错解决方案

    报错关键部分如下: Communication error with Jack server (35), try 'jack-diagnose' or see Jack server log 究其原因 ...

  4. map循环如何跳出循环

    今天在开发的时候遇到了一个问题.就是想在使用map的时候跳出循环无法实现,于是就在网上搜寻了一番,说map本身不能跳出循环,有一个大佬提出了抛出异常的方法,记录一下 let list=[1,2,3,4 ...

  5. shell脚本检查192.168.1网段ip是否在用

    要检查 192.168.1 网段中哪些 IP 地址正在使用,可以使用 Shell 脚本结合 ping 命令来扫描整个网段.以下是实现这一功能的完整脚本: 脚本:检查 192.168.1 网段 IP 是 ...

  6. a链接被点击后,在跳转之前的处理事件

    在HTML中,<a> 标签通常用于创建链接,使用户能够点击并跳转到另一个页面或网址.如果你想在跳转前处理一些事件,你可以使用JavaScript来实现这一功能. 以下是一个简单的示例,展示 ...

  7. [docker逃逸] Privileged 特权模式逃逸复现

    本文作者CVE-柠檬i CSDN:https://blog.csdn.net/weixin_49125123 博客园:https://www.cnblogs.com/CVE-Lemon 微信公众号:L ...

  8. selenium等待的三种方式(详细)

    1.强制等待 time.sleep(3) 这种方式会是操作强行等待3s才会进行下一步操作,但是这种放法,可能会延长测试的时间,如果元素在1s中出现,就会浪费2s的时间,并且这种放法单次有效,每次需要等 ...

  9. npm run的时候报错: this[kHandle] = new _Hash(algorithm, xofLen);

    在前面加入以下配置信息 set NODE_OPTIONS=--openssl-legacy-provider && 后面跟原来的启动配置信息 另外一种方式,可以避免修改package. ...

  10. 使用SOUI4的脚本模块

    SOUI4.1提供了全新的lua脚本模块支持,使用这个新版本的脚本模块,可以轻松将所有UI布局及业务逻辑全部使用XML+LUA实现,基本上就是一个超轻型浏览器. SOUI4.0相对于SOUI3最大的区 ...