大数据面试要点2

it2023-06-06  75

Hive 内部表:删除表会删除原始数据 外部表:删除表不会删除原始数据

排序: sort by :分区内排序 order by:全局排序 Distrbute by :分区内结合sortby使用 Cluster by:当Distrbute by和sort by字段相同时使用,不能指定排序规则

窗口函数:

rank() dense_rank row_number: over():

自定义UDF和UDTF )用UDF函数解析公共字段;用UDTF函数解析事件字段。 自定义UDF:继承UDF,重写evaluate方法 自定义UDTF:继承自GenericUDTF,重写3个方法:initialize(自定义输出的列名和类型),process(将结果返回forward(result)),close 为什么要自定义UDF/UDTF,因为自定义函数,可以自己埋点Log打印日志,出错或者数据异常,方便调试.

Hive优化:

1.mapJoin(不符合转化为common join)将小表全部加载在内存中在map端进行join,避免reduce处理 2.行列过滤:尽量不使用*查询全部字段 如果使用副表关联,关联字段不写在where后面避免全表扫描 3.分区分桶技术 4.合理设置map和Reduce数量 5.参数设置:合并小文件 6.tez引擎优化

Sqoop: 参数: /opt/module/sqoop/bin/sqoop import –connect –username –password –target-dir –delete-target-dir –num-mappers –files-terminated-by –query “$2” and $conditions

Sqoop导入导出数据一致性问题: hive:空值底层是\N,mysql底层是null 导出时:–input-null-string 和 --input-null-non-string 导入时:–null-string 和 --null-non-string –Staging-table 表名 –clear-staging-table

最新回复(0)