配置hadoop出现的问题
2010-07-14 21:13
85 查看
1、No route to host
防火墙问题 关掉即可
service iptables stop
如果出现不能识别iptables ,请用su -l root登陆
上命令只会使用当次机器运行有效,机器重启会又会无效!
2、跑mapreduce程序时,map很快就完成,但是reduce到16.66%的时候就卡住了,在50030/jobtracker.jsp可以看到报错: Too many fetch-failures
具体可以查看datanode logs里面对应的job的日志,发现
报错java.io.FileNotFoundException: http://localhost.localdomain:50060/mapOutput?job=job_201005261703_0046&map=attempt_201005261703_0046_m_000001_0&reduce=0
这里假设reduce是在机器test71上面进行的,而map的数据map=attempt_201005261703_0046_m_000001在test76上面,而localhost却在test71上面找,肯定找不到,所以报错……
解决办法:
1、在http://****:50070/dfshealth.jsp上面确保各个node的名字不一样,并且绝对不能是localhost
2、如果node显示是localhost,得修改对应机器上面的 /etc/sysconfig/network 文件,设置HOSTNAME,比如设置HOSTNAME=test76,之后重启才能生效!
下面是安装步骤:
1、给每台机器安装jdk,
如出现依赖报错: xxxxxx is needed by xxxxxx , 请使用rpm --force来安装
2、修改每台机器的/etc/hosts文件,需要root身份,确保每台机器的添加进去。确保节点之间都能ping 通
3、配置namenode到每个datanode的ssh免登陆
Hadoop需要namenode到datanode的无密码SSH,所以需要设置namenode到其他3台datanode的无密码公钥认证方式的SSH。
首先用hadoop用户登录每台机器(包括namenode),在/home/hadoop/目录下建立.ssh目录,并将目录权设为:drwxr-xr-x,设置命令:
chmod 755 .ssh
在namenode执行入下图命令(用新建的hadoop用户登录):
输入ssh-keygen -t rsa后,
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): Enter same passphrase again:
这三个项目都直接回车。
然后将id_rsa.pub的内容复制到每个机器(也包括本机)的/home/hadoop/.ssh/authorized_keys文件中,
如果机器上已经有authorized_keys这个文件了,就在文件末尾加上id_rsa.pub中的内容,
如果没有authorized_keys这个文件,直接cp或者scp就好了,
下面的操作假设各个机器上都没有authorized_keys文件。
具体命令:
在namenode执行(用新建的hadoop用户登录):
cp /home/hadoop/.ssh/id_rsa.pub /home/hadoop/.ssh/authorized_keys
scp authorized_keys test162.sqa:/home/hadoop/.ssh/
此处的scp就是通过ssh进行远程copy,此处需要输入远程主机的密码,即test162.sqa机器上hadoop帐户的密码(hadoop),
当然,也可以用其他方法将authorized_keys文件拷贝到其他机器上。另外2台datanode也一样拷贝。
scp authorized_keys test163.sqa:/home/hadoop/.ssh/scp authorized_keys test164.sqa:/home/hadoop/.ssh/
用hadoop用户登录每台机器,修改/home/hadoop/.ssh/authorized_keys文件的权限为:-rw-r–r–,设置命令:
cd /home/hadoop/.ssh
chmod 644 authorized_keys
设置完成后,测试一下namenode到各个节点的ssh链接,包括到本机,如果不需要输入密码就可以ssh登录,说明设置成功了。
其他机器一样测试:
ssh test162.sqassh test163.sqassh test164.sqa
4、有防火墙的都关掉
5、通过
http://namenode-ip:50070来查看具体的集群情况;
http://namenode-ip:50030来查看具体的job情况;
6、定位错误的方法:
通过http://namenode-ip:50030来查看具体的每个task的运行,找出失败的task所在的主机,并在logs/user/对应的Task Attempts/syslog 文件中查看错误发生的原因。
hadoop的问题多半是由于节点的互通问题,网络问题。
防火墙问题 关掉即可
service iptables stop
如果出现不能识别iptables ,请用su -l root登陆
上命令只会使用当次机器运行有效,机器重启会又会无效!
2、跑mapreduce程序时,map很快就完成,但是reduce到16.66%的时候就卡住了,在50030/jobtracker.jsp可以看到报错: Too many fetch-failures
具体可以查看datanode logs里面对应的job的日志,发现
报错java.io.FileNotFoundException: http://localhost.localdomain:50060/mapOutput?job=job_201005261703_0046&map=attempt_201005261703_0046_m_000001_0&reduce=0
这里假设reduce是在机器test71上面进行的,而map的数据map=attempt_201005261703_0046_m_000001在test76上面,而localhost却在test71上面找,肯定找不到,所以报错……
解决办法:
1、在http://****:50070/dfshealth.jsp上面确保各个node的名字不一样,并且绝对不能是localhost
2、如果node显示是localhost,得修改对应机器上面的 /etc/sysconfig/network 文件,设置HOSTNAME,比如设置HOSTNAME=test76,之后重启才能生效!
下面是安装步骤:
1、给每台机器安装jdk,
如出现依赖报错: xxxxxx is needed by xxxxxx , 请使用rpm --force来安装
2、修改每台机器的/etc/hosts文件,需要root身份,确保每台机器的添加进去。确保节点之间都能ping 通
3、配置namenode到每个datanode的ssh免登陆
Hadoop需要namenode到datanode的无密码SSH,所以需要设置namenode到其他3台datanode的无密码公钥认证方式的SSH。
首先用hadoop用户登录每台机器(包括namenode),在/home/hadoop/目录下建立.ssh目录,并将目录权设为:drwxr-xr-x,设置命令:
chmod 755 .ssh
在namenode执行入下图命令(用新建的hadoop用户登录):
输入ssh-keygen -t rsa后,
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): Enter same passphrase again:
这三个项目都直接回车。
然后将id_rsa.pub的内容复制到每个机器(也包括本机)的/home/hadoop/.ssh/authorized_keys文件中,
如果机器上已经有authorized_keys这个文件了,就在文件末尾加上id_rsa.pub中的内容,
如果没有authorized_keys这个文件,直接cp或者scp就好了,
下面的操作假设各个机器上都没有authorized_keys文件。
具体命令:
在namenode执行(用新建的hadoop用户登录):
cp /home/hadoop/.ssh/id_rsa.pub /home/hadoop/.ssh/authorized_keys
scp authorized_keys test162.sqa:/home/hadoop/.ssh/
此处的scp就是通过ssh进行远程copy,此处需要输入远程主机的密码,即test162.sqa机器上hadoop帐户的密码(hadoop),
当然,也可以用其他方法将authorized_keys文件拷贝到其他机器上。另外2台datanode也一样拷贝。
scp authorized_keys test163.sqa:/home/hadoop/.ssh/scp authorized_keys test164.sqa:/home/hadoop/.ssh/
用hadoop用户登录每台机器,修改/home/hadoop/.ssh/authorized_keys文件的权限为:-rw-r–r–,设置命令:
cd /home/hadoop/.ssh
chmod 644 authorized_keys
设置完成后,测试一下namenode到各个节点的ssh链接,包括到本机,如果不需要输入密码就可以ssh登录,说明设置成功了。
其他机器一样测试:
ssh test162.sqassh test163.sqassh test164.sqa
4、有防火墙的都关掉
5、通过
http://namenode-ip:50070来查看具体的集群情况;
http://namenode-ip:50030来查看具体的job情况;
6、定位错误的方法:
通过http://namenode-ip:50030来查看具体的每个task的运行,找出失败的task所在的主机,并在logs/user/对应的Task Attempts/syslog 文件中查看错误发生的原因。
hadoop的问题多半是由于节点的互通问题,网络问题。
相关文章推荐
- hadoop安装配置过程中出现的问题
- 在虚拟机环境下,电脑间拷贝配置好的伪分布式Hadoop环境,出现namenode不能启动的问题!
- 安装与配置Hadoop出现的常见问题
- hadoop环境配置出现的问题
- Eclipse项目复制出现问题及设置hadoop配置问题
- 安装配置Hadoop出现常见问题的解决方法
- hadoop集群配置(以ubuntu为例,我自己用的是centOS)和出现的一个问题
- Hadoop 安装配置过程中出现问题总结
- hadoop 2.3.0 HA 配置出现的一个超低级问题
- Hadoop 在格式化 namenode 时出现以下问题
- hadoop:mysql中出现中文乱码问题解决方案
- VS2005重新配置(在VS出现小问题时使用)
- Android NDK配置过程中出现的问题
- 配置zooKeeper集群出现路径不通问题的解决方案
- Unix下配置Scheduler的过程和出现的NQSError问题
- 关于在python3.5下配置opencv3.0出现的问题
- VS2010下配置OpenGL出现的问题
- 在域中配置第二台exchange服务器出现的问题
- erlang集成开发环境搭配配置出现的问题
- SQL SERVER 安装出现 “性能计数器注册表配置单元一致性”检查失败 的问题