文章目录
Hadoop第二章,Hadoop集群配置
一,在master虚拟机上配置hadoop
1,编辑Hadoop环境配置文件 - hadoop-env.sh
执行命令:cd $HADOOP_HOME/etc/hadoop,进入hadoop配置目录
执行命令:vim hadoop-env.sh,添加三条环境变量配置
存盘退出后,执行命令source hadoop-env.sh,让配置生效
查看三个配置的三个环境变量
2,编辑Hadoop核心配置文件 core-site.xml
输入命令: vim core-site.xml
由于配置了IP地址主机名映射,因此配置HDFS老大节点可用hdfs://master:9000,否则必须用IP地址hdfs://192.168.1.101:9000
3,编辑HDFS配置文件 - hdfs-site.xml
执行命令:vim hdfs-site.xml 配置以下变量
<configuration>
<!--设置名称节点的目录-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop-3.3.4/tmp/namenode</value>
</property>
<!--设置数据节点的目录-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop-3.3.4/tmp/datanode</value>
</property>
<!--设置辅助名称节点-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<!--hdfs web的地址,默认为9870,可不配置-->
<!--注意如果使用hadoop2,默认为50070-->
<property>
<name>dfs.namenode.http-address</name>
<value>0.0.0.0:9870</value>
</property>
<!--副本数,默认为3,可不配置-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--是否启用hdfs权限,当值为false时,代表关闭-->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
4,编辑MapReduce配置文件
执行命令: vim mapred-site.xml 进入mapreduce 配置文件
配置以下环境变量
<configuration>
<!--配置MR资源调度框架YARN-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<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
5,编辑yarn配置文件 - yarn-site.xml
执行命令: vim yarn-site.xml 进入yarn 配置文件
配置以下环境变量
<configuration>
<!--配置资源管理器:集群master-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!--配置节点管理器上运行的附加服务-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--关闭虚拟内存检测,在虚拟机环境中不做配置会报错-->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
5,编辑workers文件确定数据节点
输入命令: vim workers hadoop 里面是workers hadoop2 是slaves 我们是3版本
把这三个节点添加进去
二,在slave1虚拟机上安装配置hadoop
1,将master虚拟机上的hadoop分发到slave1虚拟机
执行命令:scp -r
H
A
D
O
O
P
H
O
M
E
r
o
o
t
@
s
l
a
v
e
1
:
HADOOP_HOME root@slave1:
HADOOPHOMEroot@slave1:HADOOP_HOME
在slave1虚拟机上查看分发的hadoop
2,将master 的配置文件发到slave1虚拟机上
执行命令:scp /etc/profile root@slave1:/etc/profile
3,在slave1虚拟机上让环境配置生效
切换到slave1虚拟机,执行命令:source /etc/profile
三、在slave2虚拟机上安装配置hadoop
1,将master虚拟机上的hadoop分发到slave2虚拟机
执行命令:scp -r
H
A
D
O
O
P
H
O
M
E
r
o
o
t
@
s
l
a
v
e
2
:
HADOOP_HOME root@slave2:
HADOOPHOMEroot@slave2:HADOOP_HOME
在slave2虚拟机上查看分发的hadoop
2,将master虚拟机上环境配置文件分发到slave2虚拟机
在slave2虚拟机上查看分发的hadoop
3,在slave2虚拟机上让环境配置生效
切换到slave2虚拟机,执行命令:source /etc/profile
四,格式化文件系统
初次启动HDFS集群时,必须对主节点进行格式化处理
执行命令:hdfs namenode -format 会出现很长一串
五,启动和关闭Hadoop 集群
1,主节点master上启动hadoop集群
启动hdfs 服务 输入命令: start-dfs.sh
2,查看master虚拟机上的进程
输入命令: jps
查看slave1的进程
查看slave2的进程
3,启动yarn服务
执行命令:start-yarn.sh
启动了YARN守护进程;一个资源管理器(resourcemanager)在master虚拟机上,三个节点管理器(nodemanager)在master、slave1与slave2虚拟机上
执行命令jps查看master虚拟机的进程,此时进程从4个变成了六个
查看slave1和slave2上的进程,只有NodeManager和DataNode
4,主节点上停止Hadoop集群
在master虚拟机上执行命令:stop-all.sh(相当于同时执行了stop-dfs.sh与stop-yarn.sh)