既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
1.BOOTPROTO
设置为static
,表示IP为静态的。
2.GATEWAY
设置为上一步查询到的实际网关地址。
3.IPADDR
设置为网关所在的网段,这里查到的网段为10.90.100.0
5. 关闭防火墙
[root@node1 ~]# systemctl stop firewalld
[root@node1 ~]# systemctl disable firewalld
6.克隆主机
(1)选中node1用来克隆出node2和node3主机,点击 虚拟机–>管理–>克隆
完整克隆
用同样的方法克隆出node3
修改主机名
在node2上登录普通用户hadoop进行操作
修改主机名
[hadoop@node1 ~]$ sudo hostnamectl set-hostname node2
[sudo] password for hadoop:
查看主机名
[hadoop@node1 ~]$ hostname
node2
重启机器
[hadoop@node1 ~]$ sudo reboot
同样的方法:
修改node3的主机名为node3
设置静态IP
静态IP的设置过程参照第一部分
node2 ip设置为 10.90.100.122
node3 ip设置为 10.90.100.123
修改ip与主机名的映射
[hadoop@node1 ~]$ sudo vi /etc/hosts
添加如下内容
10.90.100.121 node1
10.90.100.122 node2
10.90.100.123 node3
重启机器
[hadoop@node1 ~]$ sudo reboot
同样的方法,修改node2、node3机器。
7.配置机器之间免密登录
在node1机器操作:
ssh-keygen -t rsa
执行命令后,连续敲击三次回车键
[hadoop@node1 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:MOzp1MyZUfA69Wi3JEVoOXB4qkbRXr0t47ZCR2AgE2s hadoop@node1
The key's randomart image is:
+---[RSA 2048]----+
| +o+=o+. |
| ..+o+X.. |
| Eo.*oo.o |
| o.Bo* += . |
| .+.S +o+o |
| oo o.++. |
| .. . o.. |
| . . |
| . |
+----[SHA256]-----+
拷贝公钥
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
执行ssh-copy-id命令后,根据提示输入yes,再输入机器登录密码
验证从node1发起ssh登录到node2,过程中不需要登录密码为配置成功。使用
exit
退出免密登录。
同样的方法,在node2、node3机器上配置机器之间免密登录操作。
8.编写分发脚本
安装rsync
命令
[hadoop@node1 ~]$ rsync --help
-bash: rsync: command not found
[hadoop@node1 ~]$ sudo yum install rsync -y
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
在主目录创建bin
目录
[hadoop@node1 ~]$ mkdir ~/bin
创建分发脚本文件xsync
[hadoop@node2 ~]$ vim ~/bin/xsync
内容如下
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in node1 node2 node3
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
修改权限
[hadoop@node1 ~]$ chmod +x ~/bin/xsync
测试
分别在node2、node3机器安装xsync命令
sudo yum install rsync -y
把xsync命令发送到node2、node3
xsync /home/hadoop/bin
二、安装JDK
① 上传jdk文件到已经安装好的node1,上传方式有很多,任选一种方式即可:
② 上传成功后,通过 ls 命令查看是否上传成功
③ 解压jdk-8u202-linux-x64.tar.gz
到/opt/module/hadoop
目录下:
[hadoop@node1 ~]$ tar -zxvf jdk-8u202-linux-x64.tar.gz -C /opt/module/hadoop
没有/opt/module/hadoop目录先创建,因为是使用hadoop普通用户,把hadoop目录的所属用户改为hadoop
[hadoop@node1 ~]$ sudo chown hadoop:hadoop -R /opt/module/hadoop
④建立 JDK 软链接,以方便后续使用:
[hadoop@node1 hadoop]$ cd /opt/module/hadoop/
[hadoop@node1 hadoop]$ ln -s /opt/module/hadoop/jdk1.8.0_202 jdk
⑤ 配置 JDK 环境变量 :
[hadoop@node1 hadoop]$ sudo vim /etc/profile
vim 为打开文件命令
在文件内容的末尾添加如下代码(注意:等号两侧不要有空格)。
export JAVA\_HOME=/opt/module/hadoop/jdk
export JRE\_HOME=${JAVA\_HOME}/jre
export CLASSPATH=$JAVA\_HOME/lib/dt.jar:$JAVA\_HOME/lib/tools.jar:.
export PATH=${JAVA\_HOME}/bin:$PATH
⑥ 使配置生效 :
[hadoop@node1 hadoop]$ source /etc/profile
⑦ 检验是否安装成功 :
[hadoop@node1 hadoop]$ java -version
java version "1.8.0\_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
三、Hadoop集群安装部署
1.安装Hadoop
(1) 上传hadoop安装包到已经安装好的node1,上传方式有很多,任选一种方式即可
(2)上传成功后,通过 ls 命令查看是否上传成功
(3)解压hadoop-3.3.4.tar.gz
到/opt/module/hadoop/
目录下
[hadoop@node1 ~]$ tar -xzvf hadoop-3.3.4.tar.gz -C /opt/module/hadoop/
(4)建立 hadoop软链接,以方便后续使用
[hadoop@node1 hadoop]$ cd /opt/module/hadoop/
[hadoop@node1 hadoop]$ ln -s /opt/module/hadoop/hadoop-3.3.4 hadoop
(5)配置 hadoop 环境变量
[hadoop@node1 hadoop]$ sudo vim /etc/profile
在文件内容的末尾添加如下代码(注意:等号两侧不要有空格)。
export HADOOP\_HOME=/opt/module/hadoop/hadoop
export PATH=$PATH:$HADOOP\_HOME/bin:$HADOOP\_HOME/sbin
(6) 使配置生效 :
[hadoop@node1 software]$ source /etc/profile
(7) 校验
[hadoop@node1 software]$ hadoop version
Hadoop 3.3.4
Source code repository https://github.com/apache/hadoop.git -r a585a73c3e02ac62350c136643a5e7f6095a3dbb
Compiled by stevel on 2022-07-29T12:32Z
Compiled with protoc 3.7.1
From source with checksum fb9dd8918a7b8a5b430d61af858f6ec
This command was run using /opt/module/hadoop/hadoop-3.3.4/share/hadoop/common/hadoop-common-3.3.4.jar
[hadoop@node1 software]$
看到hadoop版本号输出,说明环境变量配置成功
2.配置Hadoop 集群
1)核心配置文件
配置core-site.xml
[hadoop@node1 bin]$ cd $HADOOP\_HOME/etc/hadoop
[hadoop@node1 hadoop]$ vim core-site.xml
内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9820</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop/hadoop-3.3.4/data</value>
</property>
<!-- 配置HDFS网页登录使用的静态用户为hadoop -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>hadoop</value>
</property>
<!-- 配置该hadoop(superUser)允许通过代理访问的主机节点 -->
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<!-- 配置该hadoop(superUser)允许通过代理用户所属组 -->
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
<!-- 配置该hadoop(superUser)允许通过代理的用户-->
<property>
<name>hadoop.proxyuser.hadoop.users</name>
<value>*</value>
</property>
</configuration>
2)配置hdfs-site.xml
[hadoop@node1 hadoop]$ vim hdfs-site.xml
内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- nn web端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>node1:9870</value>
</property>
<!-- 2nn web端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node3:9868</value>
</property>
</configuration>
3)配置yarn-site.xml
[hadoop@node1 hadoop]$ vim yarn-site.xml
内容如下:
<?xml version="1.0"?>
<configuration>
<!-- 指定MR走shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node2</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>
<!-- yarn容器允许分配的最大最小内存 -->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>
<!-- yarn容器允许管理的物理内存大小 -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
4)配置mapred-site.xml
[hadoop@node1 hadoop]$ vim mapred-site.xml
内容如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定MapReduce程序运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5)配置workers
[hadoop@node1 hadoop]$ vim workers
把原有的内容替换成如下内容:
node1
node2
node3
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
6)配置历史服务器
修改mapred-site.xml
[hadoop@node1 hadoop]$ vim mapred-site.xml
mapred-site.xml
添加如下配置
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
文件最终结果:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定MapReduce程序运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
</configuration>
7)配置日志聚集
修改yarn-site.xml
[hadoop@node1 hadoop]$ vim yarn-site.xml
yarn-site.xml
在<configuration></configuration>
之间添加如下配置
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
![img](https://img-blog.csdnimg.cn/img_convert/d492c33937c38569e132e630ae6a7e5b.png)
![img](https://img-blog.csdnimg.cn/img_convert/400e21790b8150d27b674e272125b423.png)
![img](https://img-blog.csdnimg.cn/img_convert/29f2941eb6f702ff28da506ca8a1b1e3.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**
ml`在`<configuration></configuration>`之间添加如下配置
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
[外链图片转存中…(img-cc2bVQ5x-1715610179015)]
[外链图片转存中…(img-F8dIwDi7-1715610179016)]
[外链图片转存中…(img-jyttyYJQ-1715610179016)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新