Hadoop的配置文件都在
$HADOOP_HOME/etc/hadoop目录里
| 配置文件 | 功能描述 |
|---|---|
| hadoop-env.sh | 配置Hadoop运行所需的环境变量 |
| yarn-env.sh | 配置Yarn运行所需的环境变量 |
| core-site.xml | Hadoop核心全局配置文件,可在其他配置文件中引用 |
| hdfs-site.xml | HDFS配置文件,继承core-site.xml配置文件 |
| mapred-site.xml | MapReduce配置文件,继承core-site.xml配置文件 |
| yarn-site.xml | Yarn配置文件,继承core-site.xml配置文件 |
| workers | 配置从节点文件 |
执行命令:cd $HADOOP_HOME/etc/hadoop,进入hadoop配置目录

执行命令:vim hadoop-env.sh,添加三条环境变量配置(其实只需要添加第三条,因为前两条已经在/etc/profile里配置过了)

export JAVA_HOME=/usr/local/jdk1.8.0_231
export HADOOP_HOME=/usr/local/hadoop-3.3.4
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
存盘退出后,执行命令source hadoop-env.sh,让配置生效

查看三个配置的三个环境变量
vim core-site.xml

<configuration>
<property>
<name>fs.defaultFSname>
<value>hdfs://master:9000value>
property>
<property>
<name>hadoop.tmp.dirname>
<value>/usr/local/hadoop-3.3.4/tmpvalue>
property>
configuration>
hdfs://master:9000,否则必须用IP地址hdfs://192.168.1.101:9000
执行命令:vim hdfs-site.xml

可以不用设置名称节点的目录、数据节点的目录以及辅助名称节点
<configuration>
<property>
<name>dfs.namenode.name.dirname>
<value>/usr/local/hadoop-3.3.4/tmp/namenodevalue>
property>
<property>
<name>dfs.datanode.data.dirname>
<value>/usr/local/hadoop-3.3.4/tmp/datanodevalue>
property>
<property>
<name>dfs.namenode.secondary.http-addressname>
<value>master:50090value>
property>
<property>
<name>dfs.namenode.http-addressname>
<value>0.0.0.0:9870value>
property>
<property>
<name>dfs.replicationname>
<value>3value>
property>
<property>
<name>dfs.permissions.enabledname>
<value>falsevalue>
property>
configuration>
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
<property>
<name>yarn.app.mapreduce.am.envname>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value>
property>
<property>
<name>mapreduce.map.envname>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value>
property>
<property>
<name>mapreduce.reduce.envname>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value>
property>
configuration>
后三个属性如果不设置,在运行Hadoop自带示例的词频统计时,会报错:
Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster
vim yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostnamename>
<value>mastervalue>
property>
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
<property>
<name>yarn.nodemanager.vmem-check-enabledname>
<value>falsevalue>
property>
configuration>
vim workers
这样集群总共有3个数据节点,正好跟副本数配置的3一致。
执行命令:scp -r $HADOOP_HOME root@slave1:$HADOOP_HOME

在slave1虚拟机上查看分发的hadoop

scp /etc/profile root@slave1:/etc/profile
source /etc/profile
执行命令:scp -r $HADOOP_HOME root@slave2:$HADOOP_HOME

在slave2虚拟机上查看分发的hadoop

scp /etc/profile root@slave2:/etc/profile
source /etc/profile
初次启动HDFS集群时,必须对主节点进行格式化处理。
执行命令:hdfs namenode -format

查看名称节点格式化成功的信息

start-all.sh命令,一起启动hdfs和yarn服务,也可以分开启动两种服务。start-dfs.sh
一个名称节点(namenode)——老大,在master虚拟机上;三个数据节点(datanode)——小弟,在master、slave1与slave2虚拟机上。辅助名称节点(secondary namenode)的地址是
master,因为在hdfs-site.xml文件里配置了辅助名称节点。
查看master虚拟机上的进程

查看slave1虚拟机上的进程

查看slave2虚拟机上的进程

start-yarn.sh
启动了YARN守护进程;一个资源管理器(
ResourceManager)在master虚拟机上,三个节点管理器(NodeManager)在master、slave1与slave2虚拟机上
执行命令jps查看master虚拟机的进程

查看slave1和slave2上的进程,只有NodeManager和DataNode


查看Hadoop服务进程总体状况

stop-all.sh(相当于同时执行了stop-dfs.sh与stop-yarn.sh)