运维开发网

Hive调优-萌贝树母婴无骗子

运维开发网 https://www.qedev.com 2020-05-18 13:58 出处:网络
1 Fetch 抓取   Hive调优-萌贝树母婴无骗子,Fectch 抓取是指对某些情况下的查询不必使用 MapReduce 计算将 hive.fetch.task.conversion 设置成 more,在全局查找、字段查找、limit查找等都不走 MapReduce2 本地模式   Hive调优-萌贝树母婴无骗子,多数的 Hadoop Job 是需要 Hadoop 提供的完整的可扩展性来处理
1 Fetch 抓取   Hive调优-萌贝树母婴无骗子,Fectch 抓取是指对某些情况下的查询不必使用 MapReduce 计算将 hive.fetch.task.conversion 设置成 more,在全局查找、字段查找、limit查找等都不走 MapReduce2 本地模式   Hive调优-萌贝树母婴无骗子,多数的 Hadoop Job 是需要 Hadoop 提供的完整的可扩展性来处理大数据集的,不过,有时 Hive 的输入数据量是非常小的,在这种情况下,为查询触发执行任务消耗的时间可能会比实际job的执行时间要多的多,对于大多数这种情况,Hive 可以通过本地模式在单台机器上处理所有的任务,对于小数据集,执行时间可以明显被缩短将 hive.exec.mode.local.auto 设置成 true,让 Hive 在适当的时候自动启动这个优化3 表优化   3.1 空 KEY 过滤   有时 JOIN 超时是因为某些 KEY 对应的数据太多,而相同 KEY 对应的数据都会发送到相同的 Reducer 上,从而导致内存不够,此时我们应该仔细分很多情况下,这些 KEY 对应的数据是异常数据,我们需要在 SQL 语句中进行过滤。   3.2 空 KEY 转换   有时虽然某个 KEY 为空对应的数据很多,但是相应的数据不是异常数据,必须要包含在 JOIN 的结果中,此时我们可以将表中 KEY 为空的字段赋一个随机的值,使得数据随机均匀地分不到不同的 Reducer 上。   3.3 MapJOIN   如果不指定 MapJOIN 或者不符合 MapJOIN 的条件,那么 Hive 解析器会将 JOIN 转换成 Common JOIN,即:在Reduce阶段完成 JOIN,容易发生数据倾斜,可以用 MapJOIN 把小表加载到内存在 Map 端进行 JOIN,避 Reducer 处理。
0

精彩评论

暂无评论...
验证码 换一张
取 消