开发中常见错误总结

  • 1、开发时仔细检查脚本,避免低级错误,比如缺少逗号,有重复字段,脚本文件保存的不是UTF8无BOM,或不是UNIX格式,Tab没有转为空格等;

image-20200526215250522

  • 2、注意一些Hive性能参数的设置,比如 MapJoin的打开、并行、动态分区的打开,还要防止数据倾斜、迪卡尔积,特别是不要数据倾斜;
  • 3、Job运行失败并且不出现日志,检查是否是脚本文件名有中文或有空格;
  • 4、Job运行慢,检查是数据倾斜还是资源不够的原因,如果进度在99%半小时还没动就考虑是数据倾斜了,如果 MapReduce运行进度很均匀但是很慢,要看日志,包括Map的日志和Reduce志和的日志,看每个map或Reduce的start的时间间隔是否很长,如果很长则考虑是资源不够。如果elapsed时间内有很长的 tasks,且时间不均匀,则考虑是数据倾斜了;
  • 5、在配置任务调度的时候,需要确认被依赖的任务在任务调度平台上是否存在。依赖任务的跑数时间是否满足自己的需求,比如可能会出现上游表本身跑数时间设置比较晚,导致我们的作业等待时间长。
  • 6、如果正常调度任务显示已完成,但结果表中没有数据,手工下发任务重新跑数后,数据正常。则可以断定任务依赖配置有问题,依赖任务配置少了。

未完待续