摘要: 列处理:在SELECT中,只拿需要的列,如果有,尽量使用分区过滤,少用SELECT 行处理:在分区剪裁中,当使用外关联时,如果将副表的过滤条件写在Where后面,那么就会先全表关联,之后再过滤 列处理:在SELECT中,只拿需要的列,如果有,尽量使用分区过滤,少用SELECT 行处理:在分区剪裁中, 阅读全文
posted @ 2019-08-26 15:33 北漂屌丝 阅读(734) 评论(0) 推荐(1) 编辑
摘要: 对一个表中符合条件的记录统计不重复的id的总数。由于引入了DISTINCT,因此在Map阶段无法利用combine对输出结果消重,必须将id作为Key输出,在Reduce阶段再对来自于不同Map Task、相同Key的结果进行消重,计入最终统计值。作业运行时的Reduce Task个数为1,对于统计 阅读全文
posted @ 2019-08-26 15:24 北漂屌丝 阅读(1943) 评论(0) 推荐(0) 编辑
摘要: 默认情况下,Map阶段结束后,相同Key的数据分发到一个reduce,当同一key数据量过大时就产生数据倾斜了。并不是所有的聚合操作都必要在Reduce端完成,很多聚合操作都可以先在Map端进行部分聚合,最后在Reduce端得出最终结果 默认情况下,Map阶段结束后,相同Key的数据分发到一个red 阅读全文
posted @ 2019-08-26 11:38 北漂屌丝 阅读(2450) 评论(0) 推荐(0) 编辑
摘要: 如果不指定MapJoin或者不符合MapJoin的条件,那么Hive解析器会将Join操作转换成Common Join,即:在Reduce阶段完成join。容易发生数据倾斜。可以用MapJoin把小表全部加载到内存在map端进行join,避免reducer处理 开启MapJoin参数设置 设置自动选 阅读全文
posted @ 2019-08-26 10:56 北漂屌丝 阅读(1339) 评论(0) 推荐(0) 编辑
摘要: 有时Hive的输入数据量是非常小的。在这种情况下,为查询触发执行任务消耗的时间可能会比实际job的执行时间要多的多。对于大多数这种情况,Hive可以通过本地模式在单台机器上处理所有的任务。对于小数据集,执行时间可以明显被缩短 用户可以通过设置hive.exec.mode.local.auto的值为t 阅读全文
posted @ 2019-08-26 10:39 北漂屌丝 阅读(751) 评论(0) 推荐(0) 编辑
摘要: Hql中的某些查询可以不使用MR计算,例如select * from table;这种情况下Hive可以简单读取table对应的存储目录下的文件 具体的操作方式:在hive/conf/hive-default.xml文件中,修改hive.fetch.task.conversion为more,这样全局 阅读全文
posted @ 2019-08-26 10:31 北漂屌丝 阅读(1258) 评论(0) 推荐(0) 编辑
摘要: Hive支持的存储格式主要有:TEXTFILE 、SEQUENCEFILE、ORC、PARQUET Hive支持的存储格式主要有:TEXTFILE 、SEQUENCEFILE、ORC、PARQUET TEXTFILE和SEQUENCEFILE的存储格式都是基于行存储的;ORC和PARQUET是基于列 阅读全文
posted @ 2019-08-26 10:01 北漂屌丝 阅读(224) 评论(0) 推荐(0) 编辑