我正在使用 DSE3.2.4 我创建了三个表,其中一个表有 1000 万行,另一个表有 50k 行,其他表只有 10 行 当我对这些表运行一个简单的 PIG 或 Hive 查询时,它会为这两个表运行相同数量的映射器。
在 Pig 中,默认情况下 pig.splitCombination
是 true
其中它只运行一个 map
如果我将其设置为 false,它现在运行 513 张 map 。
在 Hive 中默认运行 513 个映射
我尝试设置以下属性
mapred.min.split.size=134217728 in `mapred-site.xml` now running 513 maps for all
在 pig shell 中设置 pig.splitCombination=false
现在所有表只运行 1
但没有运气
最后我在 job.xml
中找到了 mapred.map.tasks = 513
我试图在 mapred-site.xml
中更改它,但它没有反射(reflect)
请帮帮我
最佳答案
映射器由分割大小管理,所以不要通过 hadoop 设置配置它,尝试将 &split_size= 传递给你的 pig url。为配置单元设置“cassandra.input.split.size”
默认为64M
如果你的Cassandra使用v-node,它会产生很多 split ,所以如果你的数据不够大,那么为hadoop节点关闭v-node
关于hadoop - PIG 和 HIVE 连接到运行大量 map 的 Datastax Cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25094951/