Hadoop文件目录结构

解压后的Hadoop文件目录为:

  • bin 存放Hadoop 的命令,例如常用命令:hadoop、hdfs、mapred、yarn等。这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadopop.
  • etc / hadoop etc下的hadoop文件夹中存放着大量的配置文件。
  • include 对外提供的编程库的.h头文件(具体动态库和静态库在lib目录中)。这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序
  • lib / native 对外native存放的是本地动态链接库
  • libexec 各个服务对外用的shell配置文件所在目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息
  • sbin 存放一些集群相关的命令,例如:start-dfs.sh、start-yarn.sh
  • share 说明文档、各个模块编译后的jar包、官方写的java调用hadoop示例程序
  • LICENSE.txt、NOTICE.txt、README.txt

    工作模式

    Hadoop有三种工作模式:

  • 本地模式(Local/Standalone Mode):单台服务器,数据存储在Linux本地。生产环境几乎不会采用该模式

  • 伪分布式模式(Pseudo-Distributed Mode):单台服务器,数据存储在HDFS上。有较少的小型公司采用该模式。
  • 完全分布式模式(Fully-Distributed Mode):多台服务器组成集群,数据存储在HDFS上,多台服务器工作。在企业中大量使用。

    使用Hadoop进行单词统计

    Hadoop的$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.3.jar中存放的是官方提供的demo程序集合,其中有一个wordcount可以对文档中每个单词进行出现次数统计。
    用法:
  1. 创建一个文件夹,例如/app/hadoop/wordcount/input。并在input文件夹中添加一个txt文件,例如a.txt。内容为一段英文,其中有几个单词最好出现多次:

    1. spring a
    2. SpringField bbb
    3. hiberantespring
    4. spring bbb
    5. ccc spring
    6. ddd
    7. eee
    8. fff
  2. 调用hadoop示例程序对input文件夹下所有文件进行单词出现次数统计:

    1. 调用hadoop-mapreduce-examples-3.2.3.jar中的wordcount示例程序
    2. 输入文件夹为 input文件夹
    3. 结果输出文件夹为 output。注意执行程序前该output文件夹不能存在,程序会自动创建该文件夹,否则可能会抛出异常
      1. hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.3.jar wordcount ./input/ ./output
  3. 最后程序会创建output文件夹,并在里面生成两个文件:part-r-00000_SUCCESS。 _SUCCESS是成功标志文件,part-r-00000是结果文件,内容为:

    1. SpringField 1
    2. a 1
    3. bbb 2
    4. ccc 1
    5. ddd 1
    6. eee 1
    7. fff 1
    8. hiberantespring 1
    9. spring 3