sqoop工具的安装和部署
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,Sqoop介绍Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的H
千家信息网最后更新 2025年12月03日sqoop工具的安装和部署
Sqoop介绍
Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
对于某些NoSQL数据库它也提供了连接器。Sqoop,类似于其他ETL工具,使用元数据模型来判断数据类型并在数据从数据源转移到Hadoop时确保类型安全的数据处理。Sqoop专为大数据批量传输设计,能够分割数据集并创建Hadoop任务来处理每个区块。
1.sqoop下载
https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.7/
2.sqoop上传到服务器 并解压到相应的目录

3.修改sqoop的配置文件

4.修改配置文件
5.拷贝sqoop需要的mysql 数据库驱动
cp /home/nflow/servers/hive/lib/mysql-connector-java-5.1.26-bin.jar /home/nflow/servers/sqoop-1.4.7/lib/
6.启动sqoop测试 (可以看出连接数据库了)
./sqoop list-databases --connect jdbc:mysql://127.0.0.1:3306/ --username root --password 123456
7.sqoop导入数据
从博主拿过来的sql
drop database if exists userdb;create database userdb;use userdb;drop table if exists emp;drop table if exists emp_add;drop table if exists emp_conn; CREATE TABLE emp(id INT NOT NULL,name VARCHAR(100),deg VARCHAR(100),salary BIGINT,dept VARCHAR(50)); CREATE TABLE emp_add(id INT NOT NULL,hno VARCHAR(50),street VARCHAR(50),city VARCHAR(50)); CREATE TABLE emp_conn(id INT NOT NULL,phno VARCHAR(50),email VARCHAR(50)); insert into emp values(1201,'gopal','manager','50000','TP');insert into emp values(1202,'manisha','Proof reader','50000','TP');insert into emp values(1203,'khalil','php dev','30000','AC');insert into emp values(1204,'prasanth','php dev','30000','AC');insert into emp values(1205,'kranthi','admin','20000','TP'); insert into emp_add values(1201,'288A','vgiri','jublee');insert into emp_add values(1202,'108I','aoc','sec-bad');insert into emp_add values(1203,'144Z','pgutta','hyd');insert into emp_add values(1204,'78B','old city','sec-bad');insert into emp_add values(1205,'720X','hitec','sec-bad'); insert into emp_conn values(1201,'2356742','gopal@tp.com');insert into emp_conn values(1202,'1661663','manisha@tp.com');insert into emp_conn values(1203,'8887776','khalil@ac.com');insert into emp_conn values(1204,'9988774','prasanth@ac.com');insert into emp_conn values(1205,'1231231','kranthi@tp.com');----------------####感谢此博主 版权为别人的版权 我只是试用下 版权声明:本文为CSDN博主「记录每一份笔记」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/yumingzhu1/article/details/80678525
从mysql 到 hdfs
#/bin/bash./bin/sqoop import \--connect jdbc:mysql://192.168.249.10:3306/userdb \--username root \--password 123456 \--table emp \--m 1[nflow@hadoop-master1 sqoop-1.4.7]$ pwd/home/nflow/servers/sqoop-1.4.7[nflow@hadoop-master1 sqoop-1.4.7]$ 默认导出的位置为 /usr/用户/表名 数据库不能用localhost或者127.0.0.1 不然会报错 必须要用IP地址
HDFS 目录下次在导入不能重复
重新修改脚本如下 这样每次都可以生成新的
mysql数据导入到hive里面
数据库数据
./sqoop import \--connect jdbc:mysql://192.168.249.10:3306/userdb \ ##userdb--username admin \ #数据库admin用户--password 123456 \ #数据库admin用户的密码--table emp_add \ #数据库admin里面的emp_add表--delete-target-dir \ #每次删除--num-mappers 1 \ ##mapreduce 进程个数--hive-import \ ##指定hive--hive-database default \ ##hive的默认数据库--hive-table empadd \ ##hive里面 default 数据的表名称--fields-terminated-by '\t' ###换行
sqoop再次导入同一张表测试 测试结果为 如果数据库有新增的数据 那么hive将会也会拿过来,导致重复 如下图,如何避免这个问题呢 sqoop的增量同步
#######sqoop增量同步到hive
id大于1207 的会同步 不会导致重复
./sqoop import \--connect jdbc:mysql://192.168.249.10:3306/userdb \--username admin \--password 123456 \--table emp_add \--num-mappers 1 \--hive-import \--hive-database default \--hive-table empadd \--fields-terminated-by '\t' \--incremental append \--check-column id \--last-value 1207
数据
数据库
版权
用户
测试
工具
原文
增量
文件
目录
类型
链接
同步
处理
配置
安全
专为
个数
任务
位置
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
关于网络安全暴力的书
丹江口软件开发诚信互利
输入网络安全性金鑰
移动网络技术有哪些
软件开发需要看学历吗
c#软件开发图标库
技术成果大数据库
如何看内存条是不是服务器内存条
服务器的qps怎么测
怎么将数据库中的数据相加
数据库数据存在哪里
软件开发有关知识
确保网络安全宣传
网络技术发展对销售的影响
百度地图的数据库
网络安全人工智能哪个好
计算机网络技术生涯规划书
我的世界七龙珠服务器2021
互联网科技大赛获奖
天龙八部游戏服务器进不去怎么办
电脑服务器一到晚上就崩溃
用友u8服务器端系统管理
清远java软件开发培训
天源迪科与华为数据库
中兴通讯数据库第一
服务器4u价格
2018年网络安全损失
高级网络安全工程
软件开发主要管理技术
安卓开发安全软件开发