hadoop - 当我们 select * table_name where id = 10; 时运行了多少映射器和缩减器;在 hive

标签 hadoop hive

当我们 select * table_name where id = 10; 时运行了多少映射器和缩减器;在 hive ?它是基于输入分割还是文件大小?在这种情况下如何确定映射器和缩减器的数量? 有什么建议吗?

最佳答案

对于输入表的每个输入拆分,将调度一个映射器,其中输入拆分的默认大小将是 block 大小。

您可以通过修改 mapreduce.input.fileinputformat.split.maxsize 来改变映射器的数量和 mapreduce.input.fileinputformat.split.minsize属性。

谈到 Hive 中的 reducer 数量,默认情况下它是使用 hive.exec.reducers.bytes.per.reducer 计算的属性,其默认值为 1GB。

您将能够通过修改上述属性来配置 reducer 的数量。您仍然可以使用 mapred.reduce.tasks 为作业设置固定数量的 reducer 。属性(property)。

希望这对您有所帮助。

关于hadoop - 当我们 select * table_name where id = 10; 时运行了多少映射器和缩减器;在 hive ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32249527/

相关文章:

hadoop - 如何使文件在 hdfs 中不可删除?

hadoop - 在 Mahout 中运行 Breiman 示例时出现 java.lang.ClassNotFoundException

hadoop - 从另一个包含空值的表中向表中插入数据,并将空值替换为原始表 1 的值

java - ambari-infra-solr rpm不可用

hadoop - HIVESERVER2错误

mysql - 无法使用sqoop导入数据

java - 解析 Java 服务器异常日志

hadoop - Flume Hive Sink无法使用数组序列化JSON

hadoop - 使用AWS Hadoop集群设置提交作业

hadoop - 为什么我的序列文件在我的 hadoop 映射器类中被读取两次?