大数据教程(6.7)第六章问题总结

    本篇博主将介绍你们中学习前面的hadoop文章中可能出现的问题。java

    首先,可能涉及的命令:node

#命令:startx启动linux图形界面

#设置时间(或者也可以使用ntp作linux时间同步)
sudo date -s  "2018-11-06 21:00:00"
#安装tree命令(可用于查看进程、目录等)
yum install -y tree
#递归查看根目录
ll -R /

    1、运行mr程序出错linux

#错误效果
connecting to resoucemanager 
retrying ....  
retrying .....
#缘由是没有启动yarn或者启动失败

    2、初始化工做目录结构apache

           hdfs namenode -format 只是初始化了namenode的工做目录,而datanode的工做目录是在第一次将datanode启动后本身初始化的。若是将datanode的原来的工做目录删除掉,再次启动会获得一个全新的datanode。windows

    3、datanode不被namenode识别的问题api

           namenode在format初始化的时候会造成两个标识:blockPoolId、clusterId;这两个标识会在datanode初始化成功加入集群后记录到namenode的工做空间,标识该namenode所属的hdfs集群的惟一标识。若是namenode从新format后,这两个值会生成新的值,原来的namenode就没法被识别,此时须要删除原来的namenode的工做目录,从新启动。安全

    4、datanode下线后多久看到效果
           datanode没有作相似于以前文章中提到的利用zookeeper作成服务动态感知的方式,不是一下线就会被namenode认定为下线的,有一个超时时间。服务器

    5、关于副本数量的问题oop

           副本数由客户端的参数dfs.replication决定(优先级: 代码conf.set() >  自定义配置文件 > jar包中的hdfs-default.xml),服务器上配置的那个值 只对命令行客户端生效。学习

    6、HADOOP_HOME or hadoop.home.dir are not set问题

[main] DEBUG org.apache.hadoop.util.Shell  - Failed to detect a valid hadoop home directory
java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set

          1.在windows中设置环境变量HADOOP_HOME和hadoop.home.dir

          2.若是还不行就在代码中初始化hdfs客户端以前设置系统环境变量:

    ·        windows中:System.setProperty("hadoop.home.dir", "E:\\\\hadoop-2.9.1");

             linux中:System.setProperty("hadoop.home.dir", "/usr/local/hadoop-2.9.1");

    7、windows链接上hdfs服务器后,安全模式关闭后,java程序可读取可是不能写操做,

           这是由于默认是用当前用户名去通讯的;解决方案:(1)可关闭权限校验或去改当前用户名(2)System.setProperty("HADOOP_USER_NAME","xxx");

    8、windos中命令运行hdfs api是报错

           检查本身是否已经将hadoop在本机上编译生成的文件放入相应的hadoop目录。

    最后寄语,以上是博主本次文章的所有内容,若是你们以为博主的文章还不错,请点赞;若是您对博主其它服务器大数据技术或者博主本人感兴趣,请关注博主博客,而且欢迎随时跟博主沟通交流。

相关文章
相关标签/搜索