大数据ETL处理时遇到的坑
2021/9/10 23:09:48
本文主要是介绍大数据ETL处理时遇到的坑,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 一、Sqoop导入时代码规范
- 二、Sqoop导出时代码规范
- 三、在Hue中执行的Workflow时,编写Hive Sql脚本注意的点
- 四、在Hue中的Schedule会突然反复执行
一、Sqoop导入时代码规范
import --connect jdbc:mysql://bigdata113:3306/company --username root --password 000000 --table staff --target-dir /user/company --delete-target-dir --num-mappers 1 --fields-terminated-by "\t" --hive-drop-import-delims --null-string "\\N" --null-non-string "\\N"
配置说明:
- --hive-drop-import-delims
在导入数据到hive时,去掉数据中的\r\n\013\010这样的字符。原因是,有很多字段所存储的数据比较复杂,包含回车换行等,如果不做任何处理导入到 hdfs 中,就会发现数据错乱等情况,所以我们在导入完数据后一定要查看一遍表的数据是否有问题。
- --null-string "\N" --null-non-string "\N"
这两个参数一般是连续使用,并且注意一定是双引号包含 \N,作用就是让原来关系型数据库的表中String类型的字段,并且存储的数据是空值NULL的情况,到hdfs中也是以空值存储。如果不加这两个参数,就会存储字符串型的NULL或null,在查询的的时候不能用 is null来过滤,而是以 =="NULL" 或 =="null" 过滤。
二、Sqoop导出时代码规范
export --connect jdbc:mysql://bigdata113:3306/Andy --username root --password 000000 --export-dir /user/hive/warehouse/staff_hive --table aca --num-mappers 1 --input-fields-terminated-by "\t" --hive-drop-import-delims --input-null-string "\\N" --input-null-non-string "\\N"
- --input-fields-terminated-by "\t"
这个配置是指定导出数据的分隔符,特别需要注意的是,最好用双引号来包裹 \t ,原因是在不同的执行命令窗口可能会发生导出失败的状况,比如说在Hue中的 Sqoop 执行命令文本框中运行,单引号是不行的。 null-string "\N" 这个参数也是,虽然官方文档中写的也是单引号,但在某些命令窗口中执行代码是失败的。
三、在Hue中执行的Workflow时,编写Hive Sql脚本注意的点
- 脚本文件的编码格式和档案格式
我们在windows系统下编辑的 .sh 文件,需要把文件编码改成** utf-8-bom **格式,并且档案格式改成 Unix,并且多加两行回车,否则在直接上传文件后,Linux系统执行会出脚本时会出问题。
对此,我们可以直接在Hue中找到该文件,然后在Hue页面中编辑,然后保存,文件会自动变成Linux可以识别并可执行的文件。
- 脚本中出现中文空格
还有一种情况,就是在脚本文件中出现中文空格的情况,执行脚本时也会报错。这种情况真的变态,去yarn里面查看日志,也找不到error信息。解决办法是,在Hue界面的 hive 执行命令窗口中把要执行的 Sql 给 Format 一下,然后再粘贴到文件中,这样中文空格就爱去掉了。
四、在Hue中的Schedule会突然反复执行
原因是,我们停止了原来提交的 Schedule 任务,假设它的提交时间是在上个月,所以它的开始执行时间也是在上个月。但由于某种原因要把它停掉,或者它自动停掉后,我们再次提交时,任务中里执行时间没有做修改依然写的是上个月,提交后它会以为之前都没跑过,然后疯狂补回来,所以接下来会不断反复的执行这个任务,所以我们再次提交时,对开始执行时间也要进行修改。
这篇关于大数据ETL处理时遇到的坑的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-1333 张高清大图,带你玩转 KubeSphere 4.1.2 部署与扩展组件安装
- 2024-11-11Spark 新作《循序渐进 Spark 大数据应用开发》简介
- 2024-11-11KubeSphere 社区双周报| 2024.10.25-11.07
- 2024-11-11云原生周刊:Istio 1.24.0 正式发布
- 2024-11-10一个故事,为你理清云开发服务的选择思路
- 2024-11-09Sentinel监控流量资料:新手入门指南
- 2024-11-09Sentinel监控流量资料:新手入门教程
- 2024-11-08阿里云部署方案项目实战:新手入门教程
- 2024-11-08阿里云RDS项目实战教程
- 2024-11-08阿里云部署方案资料详解与实战教程