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