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
  1. 调用hadoop示例程序对 input 文件夹下所有文件进行单词出现次数统计:
    # 调用hadoop-mapreduce-examples-3.2.3.jar中的wordcount示例程序
    # 输入文件夹为 input文件夹
    # 结果输出文件夹为 output。注意执行程序前该output文件夹不能存在,程序会自动创建该文件夹,否则可能会抛出异常
    hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.3.jar wordcount ./input/ ./output
    
  1. 最后程序会创建output文件夹,并在里面生成两个文件:part-r-00000_SUCCESS
    _SUCCESS是成功标志文件,part-r-00000是结果文件,内容为:
    SpringField    1
    a    1
    bbb    2
    ccc    1
    ddd    1
    eee    1
    fff    1
    hiberantespring    1
    spring    3