使用beeline启动配置单元时的OutOfMemoryError

时间:2016-08-11 05:57:42

标签: hadoop hive

问题:

Hive正在从cli工作,当我使用直线开始蜂巢时:

  

beeline -u" jdbc:hive2:// ********:10000 / default" -n **** -p **** -d" org.apache.hive.jdbc.HiveDriver"

我收到以下异常:

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Error: java.io.IOException: com.google.protobuf.ServiceException: java.lang.OutOfMemoryError: GC overhead limit exceeded (state=,code=0)
Beeline version 0.14.0 by Apache Hive

我尝试了什么:

我知道重新启动蜂巢服务无法解决目的,但只是试一试,没有运气。

我试图清除tmp:

rm -rf *

现在,hive cli也无法启动以下错误:

$ hive
Error creating temp dir in java.io.tmpdir /tmp due to Read-only file system

我需要研究哪些特定的配置单元属性?

请指导我。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

@Addy,您可以尝试下面提到的解决方案。它应该适合你。

if [ "$SERVICE" = "cli" ]; then
  if [ -z "$DEBUG" ]; then
    export HADOOP_OPTS="$HADOOP_OPTS -XX:NewRatio=12 -Xmx12288m -Xms10m -XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:+useParNewGC -XX:-useGCOverheadLimit"
  else
    export HADOOP_OPTS="$HADOOP_OPTS -XX:NewRatio=12 -Xmx12288m -Xms10m -XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:-useGCOverheadLimit"
  fi
fi

export HADOOP_HEAPSIZE=2048

有关详细信息,您还可以访问Cloudera博客Managing Hive.