一、前置准备
3台安装了单节点hadoop的机器,详细看一参考:Hadoop 单节点安装-CSDN博客
二、配置说明
hadoop100 | hadoop101 | hadoop102 | |
hdfs | NameNode DataNode | SecondaryNameNode DataNode | DataNode |
yarn | NodeManager | NodeManager | ResourceManager NodeManager |
说明:
- hadoop100、hadoop101、hadoop102 是三台机器的主机名。
- NameNode 负责存储文件的元数据,如文件名、目录结构、文件属性(生成时间、副本数、文件权限)、以及每个文件的块列表和块所在的DataNode。
- DataNode负责在本地文件系统存储文件数据块,以及块数据的校验和。
- SecondaryNameNode 辅助NameNode工作。
- ResourceManager是yarn的主程序,调度其他NodeManager来进行计算操作
- NameNode、SecondaryNameNode、ResourceManager作为主服务,会占用大量的内存,所以尽量将这三个服务安装在在同的机器上
三、进群配置
每台服务器都需要修改一下内容
1、核心配置
#cd 到配置文件目录下 $HADOOP_HOME 这个是环境变量,其实就是hadoop的安装目录
cd $HADOOP_HOME/etc/hadoop
#修改核心配置文件
vim core-site.xml
<configuration>
<!-- 指定 NameNode 的地址,value的内容自行配置 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop100:9000</value>
</property>
<!-- 指定 hadoop 数据的存储目录,value的内容自行配置 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/soft/hadoop-3.2.4/data</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 admin,value的内容自行配置-->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
</configuration>
2、HDFS配置
#编辑配置文件
vim hdfs-site.xml
<configuration>
<!-- NameNode的web 端访问地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop100:9870</value>
</property>
<!-- SecondaryNameNode web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop101:9868</value>
</property>
</configuration>
3、YARN配置
#修改配置文件
vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop102</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
4、MapReduce配置
vim mapred-site.xml
<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5、配置workers
cd $HADOOP_HOME/etc/hadoop
vim workers
#修改成一下内容
hadoop100
hadoop101
hadoop102
四、集群启动
#初始化hdfs
hdfs namenode -format
#启动hdfs服务
cd $HADOOP_HOME/sbin/
#每台服务器都需要执行
start-dfs.sh
#启动yarn 只需要在 ResourceManager 上运行,这里规划的是hadoop102
start-yarn.sh
#启动完成之后可以使用jps查看每一台上服务器上运行的服务是否正确
jps
五、环境验证
关闭防火墙,否则有可能web页面出不来
systemctl stop firewalld.service
systemctl disable firewalld.service
可以登录HDFS的web页面查看:http://hadoop100:9870
可以直接在页面查看文件系统的数据
查看yarn的节点状态:http://hadoop102:8088/
HDFS 功能验证
在三台服务器上分别创建三个文件夹
hadoop fs -mkdir /input
hadoop fs -mkdir /input
hadoop fs -mkdir /hah
刷新出现下图
导入一个文件:hadoop fs -put test.txt /test
使用hadoop自带程序测试mapreduce
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.4.jar wordcount /input /output