zoukankan      html  css  js  c++  java
  • 大数据ETL处理时遇到的坑

    一、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 "	"
    --hive-drop-import-delims
    --null-string "\N"
    --null-non-string "\N"
    

    配置说明:

    • --hive-drop-import-delims

      在导入数据到hive时,去掉数据中的 1310这样的字符。原因是,有很多字段所存储的数据比较复杂,包含回车换行等,如果不做任何处理导入到 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 "	"
    --hive-drop-import-delims
    --input-null-string "\N"
    --input-null-non-string "\N"
    
    • --input-fields-terminated-by " "

      这个配置是指定导出数据的分隔符,特别需要注意的是,最好用双引号来包裹 ,原因是在不同的执行命令窗口可能会发生导出失败的状况,比如说在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 任务,假设它的提交时间是在上个月,所以它的开始执行时间也是在上个月。但由于某种原因要把它停掉,或者它自动停掉后,我们再次提交时,任务中里执行时间没有做修改依然写的是上个月,提交后它会以为之前都没跑过,然后疯狂补回来,所以接下来会不断反复的执行这个任务,所以我们再次提交时,对开始执行时间也要进行修改。

    作者:落花桂
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    《Java面向对象编程》
    大学计算机基础考试系统(CS)
    企业物资管理系统
    IP.21出现的错误
    假如你的年龄超过了23···
    如何经营婚姻
    一张舞女图测试你的左右脑切换能力【我看到左右都转呢~】
    无法加载DLL(oci.dll)
    mongodb安装信息及有关命令
    loaded the "controller" nib but the view outlet was not set.问题解决
  • 原文地址:https://www.cnblogs.com/nthforsth/p/15253267.html
Copyright © 2011-2022 走看看