1、准备工作
使用普通用户hadoop登录虚拟机
新开一个窗口,使用root用户登录
在/etc/sudoers添加:hadoop ALL=(ALL) NOPASSWD:ALL
在/opt目录下创建module和software两个文件夹
#进入opt目录
cd /opt
#创建两个文件夹
mkdir module
mkdir software
将用户权限修改为hadoop
sudo chown -R 1000:1000 module
sudo chown -R 1000:1000 software
当root变成了hadoop则修改成功了,然后克隆出两台虚拟机
将下载好的jdk和hadoop上传到software
将hadoop和jdk解压到module目录
tar -zxvf hadoop-3.1.3.tar.gz -C ../module/
tar -zxvf jdk-8u391-linux-x64.tar.gz -C ../module/
配置jdk和hadoop环境
在/etc/profile.d目录下创建一个my_env.sh文件里面写入
export JAVA_HOME=/opt/module/jdk1.8.0_391
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使得配置文件生效
source my_env.sh
映射主机名
sudo vim /etc/hosts
添加以下内容
192.168.119.100 hadoop100
192.168.119.101 hadoop101
192.168.119.102 hadoop102
关闭防火墙
sudo systemctl stop firewalld
2、配置Hadoop
设置免密
每台机器上都执行以下内容
第一步:
ssh-keygen
第二步:
ssh-copy-id hadoop100
ssh-copy-id hadoop101
ssh-copy-id hadoop102
来到/opt/module/hadoop-3.1.3/etc/hadoop目录下
2.1、配置Hadoop中的jdk环境
vim hadoop-env.sh
2.2、配置核心文件
vim core-site.xml
在configuration标签中添加以下内容
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop100:8020</value>
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoopData/temp</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 hadoop -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>hadoop</value>
</property>
2.3、hdfs配置
vim hdfs-site.xml
在configuration标签中添加以下内容
<!-- nn web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop100:9870</value>
</property>
<!-- 2nn web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop102:9868</value>
</property>
2.4、mapred配置
vim mapred-site.xml
在configuration标签中添加以下内容
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop100:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop100:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
2.5、yarn配置
vim yarn-site.xml
在configuration标签中添加以下内容
<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop101</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>
</property>
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop100:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为 7 天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
2.6 workers配置
将里面的所有内容删除掉
添加以下的内容
hadoop100
hadoop101
hadoop102
3、将配置好的hadoop传到另外的两台虚拟机中
scp -r hadoop-3.1.3/ hadoop101:$PWD
scp -r hadoop-3.1.3/ hadoop102:$PWD
在hadoop100上执行以下内容
hadoop namenode -format
启动集群
start-all.sh
第一台机器jps
第二台机器jps
第三台机器jps
4、测试集群是否启动成功
访问:https://192.168.119.100:9870
访问:https://192.168.119.101:8088
看到这里,如果对你有所帮助,请点个关注,谢谢。