大数据开发-Sqoop工具使用

文章目录

Sqoop安装配置

下载地址

官网下载地址:https://archive.apache.org/dist/sqoop/1.4.7/

安装配置

shell 复制代码
# 解压
[root@hadoop04 sqoop1.4.7]# tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 

# 修改配置 conf目录
[root@hadoop04 sqoop1.4.7]# mv sqoop-env-template.sh sqoop-env-sh
## 配置环境变量
[root@hadoop04 sqoop1.4.7]# vim /etc/profile
## 将mysql-connector-java-8.0.16.jar 以及commons-lang-2.6.jar传入lib目录

数据导入:MYSQL->HDFS

shell 复制代码
# mysql建表
CREATE TABLE `user` (
  `id` int DEFAULT NULL,
  `name` varchar(64) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

# 全量导入
# --delete-target-dir  如果存在目录就删除,不删除hdfs会报错
## --num-mappers 导出hdfs会产生mapreduce任务 默认是4
# --fields-terminated-by 生成到hdfs时文件的换行符
sqoop import --connect jdbc:mysql://ip:port/test?serverTimezone=UTC --username root --password 123456 --table user --target-dir /sqoopout --delete-target-dir --num-mappers 1 --fields-terminated-by '\t'

# 查看HDFS	
[root@hadoop04 sqoop1.4.7]# hdfs dfs -cat /sqoopout/*
1	test
2	tom
3	jerry


## 查询导入 $CONDITIONS必须带上
sqoop import --connect jdbc:mysql://ip:port/test?serverTimezone=UTC --username root --password 123456  --target-dir /sqoopout2 --delete-target-dir --num-mappers 1 --fields-terminated-by '\t' --query 'select id,name from user where id > 1 and $CONDITIONS'

# 查看HDFS	
[root@hadoop04 sqoop1.4.7]# hdfs dfs -cat /sqoopout2/*
2	tom
3	jerry

# 如果表中有null字段可以给出默认值,一般后期都会导入到数据仓库hive中,对于hive而言\N才能识别为null,--null-string '\\N'
# --null-string  对于null字符串
# --null-non-string 对于非null的列
sqoop import --connect jdbc:mysql://ip:port/test?serverTimezone=UTC --username root --password 123456 --table user --target-dir /sqoopout --delete-target-dir --num-mappers 1 --fields-terminated-by '\t' --null-string 'default' --null-non-string '0'

数据导出:HDFS->MYSQL

shell 复制代码
# 导出 user2必须提前创建好
# --export-dir 指定需要导出的hdfs目录
sqoop export --connect jdbc:mysql://ip:port/test?serverTimezone=UTC --username root --password 123456 --table user2 --export-dir /sqoopout --input-fields-terminated-by '\t'

# 查看导出目录的内容
[root@hadoop04 sqoop1.4.7]# hdfs dfs -cat /sqoopout/*
1	test
2	tom
3	jerry
0	cassy
4	default

# 查看mysql数据库
mysql> select *from user2;
+------+---------+
| id   | name    |
+------+---------+
|    1 | test    |
|    2 | tom     |
|    3 | jerry   |
|    4 | default |
|    0 | cassy   |


# 导入时不存在则新增,存在则更新
sqoop export --connect jdbc:mysql://ip:port/test?serverTimezone=UTC --username root --password 123456 --table user2 --export-dir /sqoopout --input-fields-terminated-by '\t' --update-key id --update-mode allowinsert
相关推荐
2501_9418714525 分钟前
面向微服务链路追踪与全局上下文管理的互联网系统可观测性设计与多语言工程实践分享
大数据·数据库·python
XC1314890826740 分钟前
ToB获客破局:精准数据+AI外呼,重构效率新模式
大数据·人工智能·重构
小龙43 分钟前
[Git 报错解决]本地分支落后于远程分支(`non-fast-forward`)
大数据·git·elasticsearch·github
2501_941809141 小时前
在圣保罗智能物流场景中构建快递实时调度与高并发任务管理平台的工程设计实践经验分享
大数据·人工智能
QYZL_AIGC2 小时前
全域众链AI赋能实体,开启数字化转型新生态
大数据·人工智能
SCKJAI2 小时前
推出高效能机器人边缘人工智能(AI)平台 ARC6N0 T5X
大数据·人工智能
TTBIGDATA2 小时前
【Knox编译】webhdfs-test 依赖收敛冲突问题处理
大数据·hadoop·ambari·hdp·kerberos·knox·bigtop
金融小师妹3 小时前
机器学习捕捉地缘溢价:黄金突破一周高位,AI预测模型验证趋势强度
大数据·人工智能·深度学习
小王毕业啦3 小时前
2003-2023年 285个地级市邻接矩阵、经济地理矩阵等8个矩阵数据
大数据·人工智能·数据挖掘·数据分析·数据统计·社科数据·实证数据
安达发公司3 小时前
安达发|石油化工行业自动排产软件:驱动产业升级的核心引擎
大数据·人工智能·aps高级排程·aps排程软件·安达发aps·自动排产软件