hive执行select语句报了out of memory错误

使用cdh hive 1.1.0版本,现在每次执行select * from sogouqueryfish就报out of memory错误,即使使用了limit 1,也是一样,请问我该怎么分配内存才能解决问题?

wangxiaolei

赞同来自: hiveman

1、集群上跑pi也会报out of memory的错误,在mapred-site.xml文件中添加了
  <property>
      <name>mapreduce.task.io.sort.mb</name>
          <value>30</value>
            </property>
  <property>
  <name>yarn.app.mapreduce.am.command-opts</name>
  <value>-Djava.net.preferIPv4Stack=true -Xmx100m</value>
  </property>
  <property>
  <name>mapreduce.map.java.opts</name>
  <value>-Djava.net.preferIPv4Stack=true -Xmx100m</value>
  </property>
  <property>
  <name>mapreduce.reduce.java.opts</name>
  <value>-Djava.net.preferIPv4Stack=true -Xmx100m</value>
  </property>
2、重启集群后,pi是正常了。 3、hive 中还是报错,新建一张test表3条数据,可以正常查询的。 4、把hdfs上的数据文件下载下来hadoop fs -get /user/hive/warehouse/sogouqueryfish/year=2016/month=05/day=19/SogouQ.reduced.20160519 /home/hadoop/hadoop-2.6.0-cdh5.6.0/ 5、只查看文件第一行的数据,执行命令head SogouQ.reduced.20160519 -n 1 可以发现这些数据没有换行

hiveman

赞同来自: wangxiaolei

我知道换行符丢失的原因了,我把数据从kafka读取到以后直接写入文件,没有在消息之间加入换行符。

wangxiaolei

赞同来自:

机器剩余多少内存

hiveman

赞同来自:

305M

wangxiaolei

赞同来自:

root密码,私信发我下。

wangxiaolei

赞同来自:

我试了你发我的root的密码不对。 hadoop可以登录机器我发现你开的服务非常多。 建议你换一台内存剩余多点的机器跑hive试试,或者是把linux的虚拟内存打开。

hiveman

赞同来自:

可以确定不是配置的问题吗?

hiveman

赞同来自:

我使用hive load 一个400M的数据文件,需要怎么配置hive,hadoop呢?

wangxiaolei

赞同来自:

你在操作?hive启动时连接zxnode3:8020时怎么提示拒绝

要回复问题请先登录注册