码迷,mamicode.com
首页 > 编程语言 > 详细

HDFS问题集(一),使用命令报错:com.google.protobuf.ServiceException:java.lang.OutOfMemoryError:java heap space

时间:2019-01-30 21:45:21      阅读:399      评论:0      收藏:0      [点我收藏+]

标签:com   解决方案   解决   ror   conf   etc   service   通过   内存不足   

仅个人实践所得,若有不正确的地方,欢迎交流!


一、起因

  执行以下两条基本的HDFS命令时报错

1 hdfs dfs -get /home/mr/data/* ./
2 hdfs dfs -ls /home/mr/data/*

这是正常的两条HDFS命令,怎么会报错了?然后就打开hdfs命令查看问题。

二、分析

1)利用以下命令找到hdfs命令所在路径

1 which hdfs

使用vim hdfs打开脚本,发现当以hdfs dfs 执行时,会利用到HADOOP_CLIENT_OPTS配置项。通过查找该配置项一般在目录/etc/hadoop/conf/hadoop-env.sh中设置。

打开hadoop-env.sh脚本,发现该配置项采用的是默认配置即256M。

2)经查看/home/mr/data目录下有1W+个小文件,但大小只有100M左右,猜测可能是因为文件数据多大使得元数据过大导致加载到client客户端时会引起内存不足(猜测可能不正确,欢迎大佬给出正确解释)。

三、解决方案

加大HADOOP_CLIENT_OPTS的配置,使用两种形式均可解决问题。

1 export HADOOP_CLIENT_OPTS="-Xmx1024m $HADOOP_CLIENT_OPTS"
2 hdfs dfs -get /home/mr/data/* ./
3 
4 HADOOP_CLIENT_OPTS="-Xmx1024m" hdfs dfs -get /home/mr/data/* ./

此外,也可以通过修改hadoop-env.sh中的值连永久性修改该配置。

 

HDFS问题集(一),使用命令报错:com.google.protobuf.ServiceException:java.lang.OutOfMemoryError:java heap space

标签:com   解决方案   解决   ror   conf   etc   service   通过   内存不足   

原文地址:https://www.cnblogs.com/love-yh/p/10339792.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!