二、Hadoop目录结构

这里重点介绍几个目录bin、conf及lib目录。

1、$HADOOP_HOME/bin目录

文件名称

说明

hadoop

用于执行hadoop脚本命令,被hadoop-daemon.sh调用执行,也可以单独执行,一切命令的核心

hadoop-config.sh

Hadoop的配置文件

hadoop-daemon.sh

通过执行hadoop命令来启动/停止一个守护进程(daemon)。

该命令会被bin目录下面所有以“start”或“stop”开头的所有命令调用来执行命令,hadoop-daemons.sh也是通过调用hadoop-daemon.sh来执行优命令的,而hadoop-daemon.sh本身由是通过调用hadoop命令来执行任务。

hadoop-daemons.sh

通过执行hadoop命令来启动/停止多个守护进程(daemons),它也是调用hadoop-daemon.sh来完成的。

rcc

The Hadoop record compiler

slaves.sh

该命令用于向所有的slave机器上发送执行命令

start-all.sh

全部启动,它会调用start-dfs.sh及start-mapred.sh

start-balancer.sh

启动balancer

start-dfs.sh

启动Namenode、Datanode及SecondaryNamenode

start-jobhistoryserver.sh

启动Hadoop任务历史守护线程,在需要执行历史服务的机器上执行该命令。

原文:

Start hadoop job history daemons.  Run this on node where history server need to run

start-mapred.sh

启动MapReduce

stop-all.sh

全部停止,它会调用stop-dfs.sh及stop-mapred.sh

stop-balancer.sh

停止balancer

stop-dfs.sh

停止Namenode、Datanode及SecondaryNamenode

stop-jobhistoryserver.sh

停止Hadoop任务历史守护线程

stop-mapred.sh

停止MapReduce

task-controller

任务控制器,这不是一个文本文件,没有被bin下面的shell调用

 

2、$HADOOP_HOME/conf目录

文件名称

说明

capacity-scheduler.xml

 

configuration.xsl

 

core-site.xml

Hadoop核心全局配置文件,可以其它配置文件中引用该文件中定义的属性,如在hdfs-site.xml及mapred-site.xml中会引用该文件的属性。

该文件的模板文件存在于$HADOOP_HOME/src/core/core-default.xml,可将模板文件拷贝到conf目录,再进行修改。

fair-scheduler.xml

 

hadoop-env.sh

Hadoop环境变量

hadoop-metrics2.properties

 

hadoop-policy.xml

 

hdfs-site.xml

HDFS配置文件,该模板的属性继承于core-site.xml。

该文件的模板文件存在于$HADOOP_HOME/src/hdfs/hdfs-default.xml,可将模板文件拷贝到conf目录,再进行修改。

log4j.properties

Log4j的日志属于文件

mapred-queue-acls.xml

MapReduce的队列

mapred-site.xml

MapReduce的配置文件,该模板的属性继承于core-site.xml。

该文件的模板文件存在于$HADOOP_HOME/src/mapred/mapredd-default.xml,可将模板文件拷贝到conf目录,再进行修改。

masters

用于设置所有secondaryNameNode的名称或IP,每一行存放一个。如果是名称,那么设置的secondaryNameNode名称必须在/etc/hosts有ip映射配置。

slaves

用于设置所有slave的名称或IP,每一行存放一个。如果是名称,那么设置的slave名称必须在/etc/hosts有ip映射配置。

ssl-client.xml.example

 

ssl-server.xml.example

 

taskcontroller.cfg

 

task-log4j.properties

 

 

3、$HADOOP_HOME/lib目录

存放的是Hadoop运行时依赖的的jar包,Hadoop在执行的时候会把lib目录下面的jar全部加到classpath中。如果不想通过HADOOP_CLASSPATH指定自己的JAR文件所在路径,可以把计算需要用的jar全部都拷贝到lib目录中。