Ubuntu22.04系统Hadoop集群搭建

Hadoop 安装的全部步骤

在这里就省略了虚拟机的安装步骤,需要的可以后台踢踢我!

系统配置

  1. Linux系统:Ubuntu-22.04
  2. Hadoop:Hadoop-3.3.6
    下载地址:Hadoop3.3.6下载地址
  3. Java:Java1.8.0_351下载地址

步骤1 安装vim编辑器和SSH服务

sudo apt-get install vim   # 如果你习惯用vim编辑器,可以下载
sudo apt install openssh-server  
sudo ufw disable    #关闭防火墙
sudo apt-get install open-vm-tools
sudo apt-get install opem-vm –tools-desktop
sudo usermod –aG sudo hduser  
sudo apt-get update
sudo apt-get upgrade

步骤2 验证当前IP地址,配置静态IP地址,更新主机名

记住IPv4 Address地址以及DNS

在这里插入图片描述

配置IPv4地址

在这里插入图片描

配置IPv6

在master机器上面配置映射:
sudo nano /etc/hosts

#进入以后 将我们预期计划的映射关系添加进去
192.168.239.130 master
192.168.239.131 slave1
192.168.239.132 slave2
更新主机名
sudo nano /etc/hostname    #更改为主机名master
重启虚拟机
sudo reboot
检查主IP地址
ip a  #检查ip地址
ping yahoo.com  #互联网测试(按Ctrl+C打断)

步骤2:在“/opt/”目录下创建“/module”和“/software”。更改 这些目录的属性,并上传Java和Hadoop软件包。

cd  /     #change to root directory
cd /opt
pwd  #检查目录
sudo mkdir  module software    #创建module  software文件夹
sudo chown hduser:hduser module/  software/  #将所有者从根目录更改为hduser

步骤3 安装Java

用xftp连接master虚拟机将下载好的Hadoop安装包以及Java安装包上传到software文件夹中。

解压Java安装包
cd  /
cd /opt/software/
tar -zxvf jdk-8u351-linux-x64.tar.gz -C /opt/module/
配置Java环境变量
cd /opt/module/jdk1.8.0_351
pwd                       #获取Java的路径
cd  /home/hduser
sudo nano  ~/.bashrc

在文件的末尾添加以下一行
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_351   #此处是Java的安装路径
export PATH=$PATH:$JAVA_HOME/bin
应用新的环境变量
source  ~/.bashrc
JAVA测试
java -version

步骤4 安装Hadoop

解压Hadoop安装包
cd  /opt/software/
tar -zxvf hadoop-3.3.6.tar.gz -C /opt/module/
配置Hadoop环境变量
cd /opt/module/hadoop-3.3.6
pwd                       #获取Hadoop的路径
cd  /home/hduser
sudo nano  ~/.bashrc

在文件的末尾添加以下一行
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.3.6   #此地方为Hadoop的路径
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
应用新的环境变量
source  ~/.bashrc
Hadoop测试
hadoop version
更新 hadoop-env.sh 文件
nano  /opt/module/hadoop-3.3.6/etc/hadoop/hadoop-env.sh

随便找个地方添加这个
export JAVA_HOME=/opt/module/jdk1.8.0_351

步骤5:伪分布Hadoop集群的测试

cd  /opt/module/hadoop-3.3.6
mkdir wcinput    #创建wcinput文件夹
cd wcinput
touch word.txt     #创建word.txt文本文件
sudo nano word.txt      #编辑文件

添加以下文本
hadoop yarn
hadoop mapreduce
spark
spark
mapreduce
回到 Hadoop 目录/opt/module/hadoop-3.3.6
cd  /opt/module/hadoop-3.3.6
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount wcinput/ wcoutput
查看结果
cat wcoutput/part-r-00000

看到如下结果:
hadoop	2
mapreduce 2
spark	2
yarn	1

步骤6 设置分布式三节点Hadoop集群

配置主节点

  cd  /opt/module/hadoop-3.3.6/etc/hadoop
1)配置 core-site.xml
nano core-site.xml
<configuration>
	 <!-- 指定 NameNode 的地址 -->
	 <property>
		 <name>fs.defaultFS</name>
		 <value>hdfs://master:8020</value>
	 </property>
	 <!-- 指定 hadoop 数据的存储目录 -->
	 <property>
		 <name>hadoop.tmp.dir</name>
		 <value>/opt/module/hadoop-3.3.6/data</value>
	 </property>
	 <!-- 配置 HDFS 网页登录使用的静态用户为 master -->
	 <property>
		 <name>hadoop.http.staticuser.user</name>
		 <value>master</value>
	 </property>
 </configuration>
2)配置 hdfs-site.xml
nano hdfs-site.xml
<configuration>
	<!--  web 端访问地址-->
	<property>
		<name>dfs.namenode.http-address</name>
		<value>master:9870</value>
	</property>
	<!--  web 端访问地址-->
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>slave2:9868</value>
	</property>
</configuration>
3)配置 yarn-site.xml
nano 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>slave1</value>
	</property>
	<!-- 开启日志聚集功能 -->
	<property>
		<name>yarn.log-aggregation-enable</name>
		<value>true</value>
	</property>
	<!-- 设置日志聚集服务器地址 -->
	<property> 
		<name>yarn.log.server.url</name> 
		<value>http://master:19888/jobhistory/logs</value>
	</property>
	<!-- 设置日志保留时间为 7 天 -->
	<property>
		<name>yarn.log-aggregation.retain-seconds</name>
		<value>604800</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)配置 mapred-site.xml
nano mapred-site.xml
<configuration>
	<property>
	    <name>yarn.app.mapreduce.am.env</name>
	    <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.6</value>
	</property>
	<property>
	    <name>mapreduce.map.env</name>
	    <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.6</value>
	</property>
	<property>
	    <name>mapreduce.reduce.env</name>
	    <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.6</value>
	</property>
	<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
	 <property>
		 <name>mapreduce.framework.name</name>
		 <value>yarn</value>
	 </property>
	<!-- 历史服务器端地址 -->
	<property>
		 <name>mapreduce.jobhistory.address</name>
		 <value>master:10020</value>
	</property>
	<!-- 历史服务器 web 端地址 -->
	<property>
		 <name>mapreduce.jobhistory.webapp.address</name>
		 <value>master:19888</value>
	</property>
</configuration>
5)配置worker
nano /opt/module/hadoop-3.3.6/etc/hadoop/workers

添加以下节点的名称
master
slave1
slave2
6)开始克隆另外2台机器 并修改名称 分别为slave1 和 slave2(克隆时候将master先关机再进行克隆操作)
更改 slave1 以及slave2 的主机名
sudo nano /etc/hostname
更改 slave1 以及 slave2 的ip地址

在这里插入图片描述

配置IPv4地址

在这里插入图片描

配置IPv6

修改完成后重启
reboot
7)配置3台机器的免密登录
==========每台机器都要操作一边========
ssh localhost          #登录ssh 服务,才能生成/.ssh
cd ~/.ssh/    #将目录转到密钥的生成目录.ssh下面
ssh-keygen -t rsa    #生成密钥 (此处敲三下回车键即可)
在每台机子上做完以上步骤后,在做下面步骤
==========将公钥拷贝到要免密登录的目标机器上(每台机器都要操作一边)========
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

步骤7 启动集群

初始化在master机器上面:
hdfs namenode -format
在master上启动 HDFS
cd /opt/module/hadoop-3.3.6/sbin
start-dfs.sh
在slave1上启动 YARN
cd /opt/module/hadoop-3.3.6/sbin
start-yarn.sh
使用jps查看集群
master虚拟机上

在这里插入图片描述

slave1虚拟机上

在这里插入图片描述

slave2虚拟机上

在这里插入图片描述

步骤8 集群条件下测试wordcount

我们在测试Hadoop伪分布式时候创建过一个wcinput目录,目录里面包含了一个word.txt,我们可以直接传到hdfs中进行完全分布式的测试.

cd /opt/module/hadoop-3.3.6
hadoop fs -put wcinput/ /    
#(将/opt/module/ hadoop-3.3.6路径下的wcinput目录上传到hdfs中的根目录)
上传以后执行程序:
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /wcinput/ /wcoutput
查看结果
hadoop fs -cat /wcoutput/part-r-00000

看到如下结果:
hadoop	2
mapreduce 2
spark	2
yarn	1
出现这样的结果,说明我们的集群搭建成功,并且可以正常运行!
Web 端查看 HDFS 的 NameNode
(a)浏览器中输入:http://master:9870
(b)查看 HDFS 上存储的数据信息
(5)Web 端查看 YARN 的 ResourceManager
(a)浏览器中输入:http://slave1:8088
(b)查看 YARN 上运行的 Job 信息

步骤9 关闭集群并关闭所有虚拟机

stop-all.sh   # 在master上以及slave1上都要输入
sudo shutdown now   #关机

大家有啥不懂的可以后台踢踢我,给大家解答!

  • 25
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值