温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何进行sqoop部署

发布时间:2021-09-26 15:35:57 来源:亿速云 阅读:151 作者:柒染 栏目:系统运维

本篇文章为大家展示了如何进行sqoop部署,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

1.sqoop下载

https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.7/

2.sqoop上传到服务器 并解压到相应的目录

如何进行sqoop部署

3.修改sqoop的配置文件

如何进行sqoop部署

4.修改配置文件

如何进行sqoop部署

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部署

./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地址

如何进行sqoop部署

如何进行sqoop部署如何进行sqoop部署

HDFS 目录下次在导入不能重复

重新修改脚本如下 这样每次都可以生成新的

如何进行sqoop部署

如何进行sqoop部署

mysql数据导入到hive里面

数据库数据

如何进行sqoop部署

./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部署

如何进行sqoop部署

sqoop再次导入同一张表测试 测试结果为 如果数据库有新增的数据 那么hive将会也会拿过来,导致重复 如下图,如何避免这个问题呢  sqoop的增量同步

如何进行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

如何进行sqoop部署

上述内容就是如何进行sqoop部署,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI