zoukankan      html  css  js  c++  java
  • Hadoop问题汇总

    1. mapreduce内存不足

    <property>
      <name>mapred.map.child.java.opts</name>
      <value>$CHILD_MAP_OPTS</value>
    </property>
    <property>
      <name>mapred.reduce.child.java.opts</name>
      <value>$CHILD_REDUCE_OPTS</value>
    </property>

    instead of 
    <property>
      <name>mapred.child.java.opts</name>
      <value>$CHILD_OPTS</value>
    </property>

    2. 指定Reduce任务的个数

    可以在执行脚本中添加参数来实现:

     hadoop jar  LogAnalysis.jar loganalysis -D mapred.reduce.tasks=2  $inputPath $outputPath

    3. Hadoop集群中磁盘空间不足

    遇到这种情况,可以减少HDFS中备份的数量,在hdfs-site.xml中修改,

    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>

    这样的话,数据就只保存一份了,重要的数据话出问题就没法自动恢复了,所以还是要确保

    磁盘空间充足,默认情况下这个参数是3.

    hadoop fsck -locations命令可以查看数据备份情况。

    4.hadoop命令集合

    hadoop fs –put test.txt /user/sunlightcs
    将本地文件系统的test.txt复制到HDFS文件系统的/user/sunlightcs目录下


    hadoop fs –get /user/sunlightcs/test.txt .
    将HDFS中的test.txt复制到本地文件系统中,与-put命令相反

    hadoop fs –cat /user/sunlightcs/test.txt
    查看HDFS文件系统里test.txt的内容


    hadoop fs –tail /user/sunlightcs/test.txt
    查看最后1KB的内容


    hadoop fs –copyFromLocal test.txt /user/sunlightcs/test.txt
    从本地文件系统复制文件到HDFS文件系统,等同于put命令

    hadoop fs –copyToLocal /user/sunlightcs/test.txt test.txt
    从HDFS文件系统复制文件到本地文件系统,等同于get命令

     hadoop fs –du PATH
    显示该目录中每个文件或目录的大小

    hadoop fs –dus PATH
    类似于du,PATH为目录时,会显示该目录的总大小

    5. 在mapper中获取当前正在处理的HDFS文件名/HDFS目录名

    默认情况下,Hadoop是按行来对数据进行处理的,由于对每一行数据,map()函数会被调用一次,我们有时可以根据文件名/目录名来获取一些信息,从而把它们输出,例如,目录名中包含了日期,则我们可以取出来并输出到Reducer。

    在map()函数中,我们可以这样取文件名:

         InputSplit inputSplit = context.getInputSplit();
         String fileName = ((FileSplit) inputSplit).getName();

    假设当前正在处理的HDFS文件路径为:/user/hadoop/abc/myFile.txt,则上面的 fileName 取到的是“myFile.txt”这样的字符串。

    但如果要获取其目录名“abc”,则可以这样做:

         InputSplit inputSplit = context.getInputSplit();
         String dirName = ((FileSplit) inputSplit).getPath().getParent().getName();

  • 相关阅读:
    CSV
    矛与盾热血江湖实现喊话功能
    IDA 使用小结
    OD 命令行插件支持的命令
    Qt TreeView
    矛与盾内存数据的分析
    Windows 内核 I/O 端口操作
    矛与盾注入到目标进程
    Qt 多级menu
    C# 美元转中文
  • 原文地址:https://www.cnblogs.com/cstar/p/2969002.html
Copyright © 2011-2022 走看看