使用Hadoop中遇到的一些问题

2013.08.17 | Comments

本文主要记录安装hadoop过程需要注意的一些细节以及使用hadoop过程中发现的一些问题以及对应解决办法,有些地方描述的不是很清楚可能还会不准确,之后会重现问题然后修改完善这篇文章。

安装hadoop过程中需要注意以下几点:

  1. 每个节点配置hosts
  2. 每个节点配置时钟同步
  3. 如果没有特殊要求,关闭防火墙
  4. hadoop需要在/tmp目录下存放一些日志和临时文件,要求/tmp目录权限必须为1777

使用intel的hadoop发行版IDH过程遇到问题:

1、 IDH集群中需要配置管理节点到集群各节点的无密码登录,公钥文件存放路径为/etc/intelcloud目录下,文件名称为idh-id_rsa

如果在管理界面发现不能启动/停止hadoop组件的进程,请检查ssh无密码登录是否有问题。

ssh -i /etc/intelcloud/idh-id_rsa nodeX

如果存在问题,请重新配置无密码登录:

scp -i /etc/intelcloud/idh-id_rsa nodeX

2、 IDH使用puppt和shell脚本来管理hadoop集群,shell脚本中有一处调用puppt的地方存在问题,详细说明待整理!!


使用CDH4.3.0的hadoop(通过rpm安装)过程中发现如下问题:

说明:以下问题不局限于CDH的hadoop版本。

1、 在hive运行过程中会打印如下日志

Starting Job = job_1374551537478_0001, Tracking URL = http://june-fedora:8088/proxy/application_1374551537478_0001/
Kill Command = /usr/lib/hadoop/bin/hadoop job  -kill job_1374551537478_0001

通过上面的kill command可以killjob,但是运行过程中发现提示错误,错误原因:HADOOP_LIBEXEC_DIR未做设置

解决方法:在hadoop-env.sh中添加如下代码

export HADOOP_LIBEXEC_DIR=$HADOOP_COMMON_HOME/libexec

2、 查看java进程中发现,JVM参数中-Xmx重复出现

解决办法:/etc/hadoop/conf/hadoop-env.sh去掉第二行。

export HADOOP_OPTS="-Djava.net.preferIPv4Stack=true $HADOOP_OPTS"

3、 hive中mapreduce运行为本地模式,而不是远程模式

解决办法:/etc/hadoop/conf/hadoop-env.sh设置HADOOP_MAPRED_HOME变量

export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce

4、 如何设置hive的jvm启动参数

hive脚本运行顺序:

hive-->hive-config.sh-->hive-env.sh-->hadoop-config.sh-->hadoop-env.sh

故如果hadoop-env.sh中设置了HADOOP_HEAPSIZE,则hive-env.sh中设置的无效

5、如何设置JOB_HISTORYSERVER的jvm参数

/etc/hadoop/conf/hadoop-env.sh添加如下代码:

export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=256

原创文章,转载请注明: 转载自JavaChen Blog,作者:JavaChen
本文链接地址:http://blog.javachen.com/2013/08/17/some-problems-about-hadoop.html
本文基于署名2.5中国大陆许可协议发布,欢迎转载、演绎或用于商业目的,但是必须保留本文署名和文章链接。 如您有任何疑问或者授权方面的协商,请邮件联系我。