Hadoop 搭建常见错误

2017-12-27 10:51:33来源:https://www.yfzzweb.com/hadoop/hadoop-error/作者:赵俊的博客人点击

分享

在配置和使用 Hadoop 的过程中出现了许多问题,很是苦恼,但好在都解决了,这里记录下,供其他有同样问题的人参考。


SSH 登录问题
问题描述


在伪分布式环境
下,已经配置好了 ssh 自动登录,但还是提示要输入密码,而且明明密码输入正确,但怎么输入都提示认证失败:Permission denied, please try again.


解决办法1


首先要检查自己的~
目录下的.ssh
文件夹以及其中的文件权限是否过大,因为为了安全起见.ssh
文件的权限不能过高,不能让其他用户操作,权限过高的话,就会自动被停止使用。


.ssh
目录权限设为 700
authorized_keys
的权限设置成 600 。
rsa_id.pub
权限一般为644
解决办法2


默认情况下开启了ssh
服务后,就会只允许使用公钥登录,如果解决办法1 还是不行的话,就先设置一下,允许使用 root 权限登录。



修改/etc/ssh/sshd_config
的PermitRootLogin
属性为:


PermitRootLogin yes


配置完后重启下ssh
服务:


/etc/init.d/ssh restart


重启服务后,应该就可以临时使用root
权限登录了。


解决办法3


修改/etc/ssh/sshd_config
的StrictModes
属性为no



这个配置的意思就是会接收登录请求之前检查用户Home
目录和rhost
文件的权限和所有权,可能你在解决方案1
的时候出现了问题,这里改成不检查就好了。


DataNode 启动问题
问题描述


启动 DataNode 失败,可检查配置文件都没有出错,而且重新hdfs namenode -format
后启动还不行,DataNode 无法启动,查看日志后发现错误:


2017-10-31 08:13:14,671 WARN org.apache.hadoop.hdfs.server.common.Storage: java.io.IOException: Incompatible clusterIDs in /root/tmp/dfs/data: namenode clusterID = CID-9b4e88e5-8bd9-40c9-96b3-d3fbf04ce0e6; datanode clusterID = CID-0143f568-abe9-4606-b337-2fe58053859d
2017-10-31 08:13:14,672 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to localhost/127.0.0.1:8020. Exiting.
java.io.IOException: All specified directories are failed to load.
解决办法


从日志中看datanode
的clusterID
和namenode
的clusterID
不匹配。



出现该问题的原因:在第一次格式化 dfs 后,启动并使用了 hadoop,后来又重新执行了格式化命令(hdfs namenode -format
),这时namenode
的clusterID
会重新生成,而datanode
的clusterID
保持不变。



先查看下$HADOOP_HOME/etc/hadoop/
目录下的core-site.xml
的配置:


<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/tmp</value>
</property>
</configuration>


我这里指定的hadoop.tmp.dir
是/root/tmp
,删除这个目录下所有东西再重新格式化后启动,应该就可以了。如果没配置这个属性,则配置上。


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台