-》大表拆分成小表
-》包含临时表、分区表、外部表
-》sql语句:
-》优化sql:复杂的sql-》子查询+join -》简化,拆分成多个简单的语句
join、filter:先过滤再join
-》设置map和reduce的个数
reduce数目:可以参数进行设置
-》hive: set mapreduce.job.reduces=<number>
-》MR:job.setNumReduceTasks(tasks);
**map的数量:
Math.max(minSize, Math.min(maxSize, blockSize))
blocksize:128M
**代码块中
FileInputFormat.setMaxInputSplitSize(job, size);
FileInputFormat.setMinInputSplitSize(job, size);
-》通过spilt切片的大小来改变map任务数
-》开启并行化执行,默认是false
hive.exec.parallel
-》设置同时运行job的数目,根据集群设置,默认是8
hive.exec.parallel.thread.number
-》jvm重用
mapreduce.job.jvm.numtasks默认是1,运行一个job会启动一个jvm上运行
-》 推测执行:
缺点:会消耗更多的资源,一般不建议开启,有可能数据会重复写入,造成异常
-》hive本地模式:
hive的本地模式hive.exec.mode.local.auto默认是false
hive底层运行的hadoop集群中的资源,yarn调度,本地模式不会再集群所有机器上运行,会选一台作为本地运行,一般处理小数据量级的数据速度回很快
限制:job输入的数据不能大于128M,map的个数不能超过4个,默认reduce数目 1个
-》包含临时表、分区表、外部表
-》sql语句:
-》优化sql:复杂的sql-》子查询+join -》简化,拆分成多个简单的语句
join、filter:先过滤再join
-》设置map和reduce的个数
reduce数目:可以参数进行设置
-》hive: set mapreduce.job.reduces=<number>
-》MR:job.setNumReduceTasks(tasks);
**map的数量:
Math.max(minSize, Math.min(maxSize, blockSize))
blocksize:128M
**代码块中
FileInputFormat.setMaxInputSplitSize(job, size);
FileInputFormat.setMinInputSplitSize(job, size);
-》通过spilt切片的大小来改变map任务数
-》开启并行化执行,默认是false
hive.exec.parallel
-》设置同时运行job的数目,根据集群设置,默认是8
hive.exec.parallel.thread.number
-》jvm重用
mapreduce.job.jvm.numtasks默认是1,运行一个job会启动一个jvm上运行
-》 推测执行:
缺点:会消耗更多的资源,一般不建议开启,有可能数据会重复写入,造成异常
-》hive本地模式:
hive的本地模式hive.exec.mode.local.auto默认是false
hive底层运行的hadoop集群中的资源,yarn调度,本地模式不会再集群所有机器上运行,会选一台作为本地运行,一般处理小数据量级的数据速度回很快
限制:job输入的数据不能大于128M,map的个数不能超过4个,默认reduce数目 1个