sqoop 数据导入HDFS
Sqoop
sqoop是把关系型数据库数据和HDFS互导的工具,以HDFS为中心,导入到HDFS用import,从HDFS导出用export
实例分析
Sqoop数据导入到HDFS
- 查看所有库的命令
sqoop list-databases --connect jdbc:mysql://dt100:3306 -username root -password 123123
- 查看某个库的表的命令
sqoop list-tables --connect jdbc:mysql://dt100:3306/bysj -username root -password 123123
- 导入表到HDFS的脚本及分析
#!/bin/bash
/opt/module/sqoop/bin/sqoop import \
--connect jdbc:mysql://dt100:3306/bysj \
--username root \
--password 123123 \
--table blog \
--columns id,title \
--where "id>=2 and id<=8" \
--target-dir=/test \
--delete-target-dir \
--num-mappers 2\
--split-by id \
--fields-terminated-by '\t'
sql查询形式 (注意必须要加上$CONDITIONS)
#!/bin/bash
/opt/module/sqoop/bin/sqoop import \
--connect jdbc:mysql://dt100:3306/bysj \
--username root \
--password 123123 \
--query "select id,title from blog where id>=2 and id<=10 and \$CONDITIONS" \
--target-dir=/test \
--delete-target-dir \
--num-mappers 2\
--split-by id \
--fields-terminated-by '\t'
- 分析
#连接到目标表并选择条件
–connect jdbc:mysql://dt100:3306/bysj
–username root
–password 123123
–table blog
–columns id,title
#出现空格需要加引号,如果有变量则一定是双引号
–where “id>=2 and id<=8”
#目标文件夹
–target-dir=/test
#如果目标文件夹存在则删除
–delete-target-dir
#优化语句(设置mapper个数)和切分规则,因为sqoop实质上就是一个只有map过程的MR
–num-mappers 2
–split-by id
#设置字段分隔符
–fields-terminated-by ‘\t’
- 结果
blog表
hdfs文件 导入成功
通常情况下,我们每天导入数据,就需要写一个脚本,以下是sqoop导入的一个基础脚本
#!/bin/bash
if [-n "$2"]; thendo_date=$2
elsedo_date=$(date -d '-1 day'+%F)
fi
import_data(){/opt/module/sqoop/bin/sqoop import \
--connect jdbc:mysql://dt100:3306/bysj \
--username root \
--password 123123 \
--query "$2 and \$CONDITIONS" \
--target-dir=/test/$1/$do_date \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by '\t' \
--null-string '\\N' \
--null-not-string '\\N'
}
import_blog(){import_data blog "select id,title from blog where 1=1"
}
case $1 in "yes")import_blog
;;
"no")
;;
esac
解析部分
shell if中的-n 代表不为空
\\N 第一个\代表转义,\N代表NULL
sqoop 数据导入HDFS相关推荐
- sqlserver数据导入hdfs和hive的解决方案
sqlserver数据导入hdfs和hive的解决方案 参考文章: (1)sqlserver数据导入hdfs和hive的解决方案 (2)https://www.cnblogs.com/viviman/ ...
- sqoop增量导入hdfs和导出
增量导入 在实际工作当中,数据的导入,很多时候都是只需要导入增量数据即可,并不需要将表中的数据全部导入到hive或者hdfs当中去,肯定会出现重复的数据的状况,所以我们一般都是选用一些字段进行增量的导 ...
- 查看使用linkedIn Camus 把Kafka中的数据导入HDFS中生成的.deflate文件
在使用Camus好不容易把kafka中的数据导入了HDFS,但是直接download后打开,显示的会是乱码.经查询,带.deflate后缀的文件是使用DEFLATE算法压缩过的,所以要查看,只需使用h ...
- (16)业务数据导入HDFS
1.分析表同步策略 在生产环境,个别小公司,为了简单处理,所有表全量导入. 中大型公司,由于数据量比较大,还是严格按照同步策略导入数据. 2.脚本编写 1)在/home/atguigu/bin 目录下 ...
- Hadoop sqoop数据导入导出工具安装
进入sqoop的conf目录,将sqoop-site-template.xml文件重命名为sqoop-site.xml,并修改如下内容:
- Sqoop快速入门【导入数据到HDFS与导出数据到数据库】
1.Sqoop概述 Sqoop - "SQL到Hadoop和Hadoop到SQL" sqoop是apache旗下一款"Hadoop和关系数据库服务器之间传送数据" ...
- 3.2.3 Sqoop 数据迁移工具, 导入数据import, MySQL到HDFS/Hive, 导出数据export,增量数据导入, Sqoop job,常用命令及参数
目录 数据迁移工具 -- Sqoop 第一部分 Sqoop概述 第二部分 安装配置 第三部分 应用案例 第 1 节 导入数据import MySQL 到 HDFS MySQL 到 Hive 第 2 节 ...
- Sqoop数据的导入导出与job作业
1. Sqoop导入数据 站在hadoop的立场看: import:数据导入.RDBMS----->Hadoop export:数据导出.Hadoop---->RDBMS 创建表 SET ...
- sqoop将hbase数据导入mysql_Sqoop将mysql数据导入hbase的血与泪
Sqoop将mysql数据导入hbase的血与泪(整整搞了大半天) 版权声明:本文为yunshuxueyuan原创文章. 如需转载请标明出处: https://my.oschina.net/yunsh ...
最新文章
- 一种在注入进程中使用WTL创建无焦点不在任务栏出现“吸附”窗口的方法和思路
- 这是我看过,最好懂的神经网络
- php 注册树,php常用设计模式(单例,工厂,注册树模式)
- Oracle中压缩数据节省空间和提高速度
- XPath语法规则及实例
- 第四届泰迪杯数据挖掘大赛
- 中文巨量模型“源1.0”的学习优化方法
- python安装完后还需要装什么_初学 Python 需要安装哪些软件?
- Go语言的context包从放弃到入门
- 那些年,我们解析过的前端异常
- oracle静态,oracle静态sql和动态sql
- FreeRTOS之源码 及 移植详解
- 中秋佳节,献上笔试题一道,祝各位事业蒸蒸日上!
- uds 诊断协议的bootloader开发
- 网络运维工程师常见的面试题及需掌握的知识点
- ICEM(2)—机翼翼稍网格绘制
- redis安装之yum安装
- 转专业 计算机,转专业系列之信息/计算机
- .\Flash\Blinky.axf: Error: L6200E: Symbol SysTick_Handler multiply defined (by hal_cm0.o and blinky.
- 2013年微博营销最成功案例
热门文章
- 软文推广:真实有效提升软文排名与收录的三大方法!
- 【转】不要乱看美剧学英语
- 高校计算机课程建设研讨会通知,计算机学院承办陕西省高校MOOC与大学计算机课程建设研讨会...
- WLAN使用的功率单位
- Hyper-V安装Win10系统
- table doesn‘t exist
- 打开 WORD 报错“无法创建工作文件, 请检查临时环境变量”
- vue Error: No PostCSS Config found in
- c语言中延时函数delay1,delay什么意思_delay.h这一段是什么意思
- Material Design中的Elevation和shadows