sqoop工具的安装和部署
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Sqoop介绍Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的H
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
互联网科技公司经营范围
广州百单互联网科技有限公司
国智互联网科技
互联网科技巨头监管
平安科技 互联网
喔噻互联网科技
互联网科技公司官网
致聘互联网科技
智慧科技互联网
易通互联网络科技有限公司
菲比寻常互联网科技
团飞科技与伯堂互联网服务平台
杭州壁岐互联网科技有限公司
想开互联网科技公司怎么样
滨湖区互联网智能科技产品有哪些
广州互联网高科技取餐柜
神州科技互联网有限公司
银川新华互联网科技学校是国营吗
长沙渺峰互联网科技有限公司
株洲百竞科技的互联网营销顾问
北京路客互联网科技有限公司
互联网下的科技发展
镁科技互联网资讯平台
互联网科技创新企业排名
中化能源互联网科技招聘
恒生互联网科技指数跳水
互联网公司黑科技创始人
容联科技互联网电商
网互联网络科技
如何强化互联网金融科技