zoukankan      html  css  js  c++  java
  • hadoop运维经验

    0、优化:http://dongxicheng.org/mapreduce/hadoop-optimization-0/

                 http://dongxicheng.org/mapreduce/hadoop-optimization-1/

    1、各个节点的配置文件的内容要一致:core|hdfs|mapred|yarn-site.xml。修改一个的节点的配置文件内容后,集群中所有的节点要同步修改,报错的原因大部分是由于节点之间配置文件不一致导致!

    2、修改完配置文件后要重启hdfs或yarn服务。

    3、有时会碰到修改配置文件后,重启hadoop的服务后,跑程序仍然会出错的问题,要先查一下添加的<name>xxx</name>有没有拼写错误,如果没有错误,就关闭服务然后重新启动集群(如果还报错,建议重启主机)。

    4、各个节点的VERSION的clusterid要一致,否则会导致datanode自动关闭(删除VERSION或将各个节点的clusterid改成一致)。

    5、经常备份集群可以正常运行的配置文件。

    6、yarn运行程序是提示running in uber mode : false。uber mode是Hadoop的小作业模式, 数据量小非常节约时间。可以设置 mapreduce.job.ubertask.enable=true生效

    7、为了避免出现{WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable}这种错误,尽量应该安装64位的操作系统,否则就需要自己编译hadoop源码进行安装,比较麻烦。

    8、在YARN启动mapreduce程序后,会在datanode上生成YarnChild,这个就是Container。

    9、ssh输入正确密码还会denied,需要修改.ssh父目录的权限值,chmod 755 /hadoop

    10、namenode无法启动(hadoop namenode异常)当查看 hadoop-hadoop-namenode-namenode.log产生报错

    错误信息:

    2016-09-20 11:48:52,409 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Encountered exception loading fsimage
    java.io.IOException: There appears to be a gap in the edit log.  We expected txid 2289, but got txid 2859.
            at org.apache.hadoop.hdfs.server.namenode.MetaRecoveryContext.editLogLoaderPrompt(MetaRecoveryContext.java:94)
            at org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadEditRecords(FSEditLogLoader.java:215)
            at org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadFSEdits(FSEditLogLoader.java:143)

    ..................

    原因是namenode元数据被破坏了,需要修复

    输入命令:hadoop namenode -recover

    全都选择‘y'或  ‘c’ 即可。修复完毕后需要将各个datanode的current中的VERSION同步。可以备份current文件,然后在namenode上start-dfs.sh。如果不做这一步会导致datanode无法启动。

    另外的方法:或许可以修改current下面 seen_txtid中的值?就不用全部删除{

    怀疑是 NameNode 对元数据的合并出了问题, 删除报错开始 的 edits 文件 ,修改 seen_txid 中的 txid 编号;

    启动 NN 成功,主备NN 均启动成功。

    }

    11、mapred.child.java.opts:当需要处理超大数据(mapper大于10?)最好将值设置成-Xmx1024m或者更高(-Xmx2048m)才能避免出现“核心已转储”这种jvm内存溢出的错误!!

    待续...

  • 相关阅读:
    css
    博客目录
    macOS下psql客户端中文乱码问题
    PostgreSQL dblink的使用
    error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60
    mac中环境变量配置
    PostgreSQL Copy 命令
    Linux下rz命令和sz命令使用方法
    Tmux 使用教程
    create_time和update_time自动填写
  • 原文地址:https://www.cnblogs.com/wangq17/p/6032337.html
Copyright © 2011-2022 走看看