千家信息网

如何进行sqoop部署

发表于:2024-10-20 作者:千家信息网编辑
千家信息网最后更新 2024年10月20日,本篇文章为大家展示了如何进行sqoop部署,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.sqoop下载https://mirrors.tuna.tsing
千家信息网最后更新 2024年10月20日如何进行sqoop部署

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

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

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

0