hadoop、hive常见问题及解决方式


1、hive查询卡死

现象:执行hive查询时,迟迟不能出现map-reduce任务进度

原因:空间不足导致,清理掉无用的文件,释放出空间即可。通常建议剩余空间为查询数据的两倍


2、hdfs使用空间超出实际占用空间

现象:通过hdfs dfs-du-h/命令查看到各个目录所占的空间

原因:因为删除操作,大量的垃圾文件堆积在/user/root/.Trash ,这个目录可视为垃圾回收区,对应的配置为:

<property>
  <name>fs.trash.interval</name>
  <value>1440</value>
  <description>Number of minutes between trash checkpoints.
  If zero, the trash feature is disabled.
  </description>
</property>

确认无用后,删除即可。hdfs dfs -rmr /user/root/.Trash

通过此项,释放了100多G的磁盘空间。

3、手动释放系统cache

现象:使用free -m查询内存使用状况时,发现free空间只有不足1G,而buff/cache占用的几十G的空间。这是linux系统本身的策略,并非真实的内存不足。访问文件过多时就会产生这种现象。但free空间不足,也会导致系统运行缓慢。


              total        used        free      shared  buff/cache   available
Mem:          64260       19600       26140        5724       18519       38336
Swap:          2047         246        1801

必要时可使用命令:

echo 3 > /proc/sys/vm/drop_caches

手动释放内存。但需要谨慎,执行前最好使用sync将dirty的内容写回硬盘,并且确认不会对其他正在执行中的任务产生影响。

4、Spark任务执行时间超长甚至始终无法结束,部分情况也可能是磁盘空间不足导致。除内存使用状况外,可用磁盘空间也是需要关注的指标。当可用空间不足10%时,尽可能释放出足够的空间供任务执行使用。

相关文章
相关标签/搜索