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
可以对文档中每个单词进行出现次数统计。
用法:
- 创建一个文件夹,例如
/app/hadoop/wordcount/input
。并在input
文件夹中添加一个txt文件,例如a.txt
。内容为一段英文,其中有几个单词最好出现多次:spring a
SpringField bbb
hiberantespring
spring bbb
ccc spring
ddd
eee
fff
- 调用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
- 最后程序会创建
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