我正在开发一个基于Web的分析工具,使用php,Hadoop / Hive(单节点Hadoop cluster-cloudera vm,8 CPU 4 GB RAM ),Thrift API。 Hive thrift API按顺序运行Hive查询,这需要大量时间来执行。我正在尝试对这些配置单元查询使用多线程方法,以便它们可以并行执行并节省执行时间。
我已将“ mapred.tasktracker.map.tasks.maximum ”的默认值更改为 20 和“ mapred.tasktracker.reduce.tasks.maximum conf / mapred-site.xml 文件中的 20 。 我还在 conf / hive-site.xml 中将“ hive.exec.parallel ”的默认值更改为 true 。
我能够使用 PHP“curl_multi_exec”并行运行4个hive查询,但是对于5个并行的hive查询,它将花费无限的执行时间。在进行了前面提到的更改后,我仍然得到相同的结果。
我可以并行执行4个查询但不能执行5个查询。
那么,我在做错了什么? 为什么它适用于4个并行查询但不适用于5个并行查询? 我是否需要在配置文件中进行任何其他更改?
谢谢,