【Hadoop】安装部署-完全分布式搭建

文章目录

  • 前言
  • 一、部署需要的软件
  • 二、Hadoop配置环境
    • [1. 配置网络环境](#1. 配置网络环境)
    • [2. 安装jdk和hadoop](#2. 安装jdk和hadoop)
      • [2.1 配置jdk环境变量](#2.1 配置jdk环境变量)
      • [2.2 配置Hadoop环境变量](#2.2 配置Hadoop环境变量)
  • 三、准备三台虚拟机
    • [1. 修改主机名与IP映射](#1. 修改主机名与IP映射)
    • [2. 修改主机上的hadoop相关配置文件](#2. 修改主机上的hadoop相关配置文件)
      • [2.1 core-site.xml](#2.1 core-site.xml)
      • [2.2 hdfs-site.xml](#2.2 hdfs-site.xml)
      • [2.3 yarn-site.xml](#2.3 yarn-site.xml)
      • [2.4 slaves](#2.4 slaves)
    • [3. 将主机上的hadoop配置文件,同步到其他两个主机上](#3. 将主机上的hadoop配置文件,同步到其他两个主机上)
      • [3.1 使用"scp"对slave1进行同步](#3.1 使用“scp”对slave1进行同步)
      • [3.2 使用"scp"对slave2进行同步](#3.2 使用“scp”对slave2进行同步)
  • 四、配置SSH免密登录及时间同步
    • [1. 免密登录](#1. 免密登录)
      • 1.1在三个机器的目录下执行
      • [1.2 ls -all :查看所有文件和文件夹](#1.2 ls -all :查看所有文件和文件夹)
      • [1.3 在master、slave1、slave2中分别执行](#1.3 在master、slave1、slave2中分别执行)
    • [2. 时间同步](#2. 时间同步)
  • 五、NameNode格式化
  • 六、查看Web管理页面
  • 总结

前言

Hadoop是一个适合大数据的分布式存储和计算平台。狭义上说Hadoop就是一个框架平台,广义上讲Hadoop代表大数据的一个技术生态圈,包括很多软件框架。而我们的完全分布式,指的是在真实环境下,使⽤多台机器,共同配合,来构建⼀个完整的分布式文件系统。在真实环境中,hdfs中的相关守护进程也会分布在不同的机器中。

一、部署需要的软件

  1. 虚拟机管理软件:VMware
  2. 系统:CentOS 7 64 位
  3. SSH⼯具:MobaXterm
  4. JDK:jdk-8u221-linux-x64.tar.gz
  5. Hadoop:hadoop-2.7.1
主机名 IP地址
master 192.168.206.18
slave1 192.168.206.28
slave2 192.168.206.38

首先要确保本地电脑是否已经安装好了VMware Workstation Pro

下载地址: VMware Workstation Pro | CN

清华大学镜像源:

Index of /centos/7/isos/x86_64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
注意!注意!注意!

如果虚拟机是从伪分布式复制过来的,最好先把伪分布式的相关守护进程关闭:stop-all.sh,并且保留好自己的伪分布式部署。

二、Hadoop配置环境

我们设置ip地址首先【Win+R------cmd】使用ipconfig的命令查看VMnet8的ip地址是多少。

例如我的ip地址为192.168.206.1,那么我hadoop的ip地址前3位就需要设置为192.168.206,然后进入到我们的虚拟机里面进行ip地址的设置。

1. 配置网络环境

输入命令vi /etc/sysconfig/network-scripts/ifcfg-ens33进行静态ip地址的设置。

BOOTPROTO=static

ONBOOT=yes

IPADDR=静态ip(这个ip与你的主机在同一个网段)

GATEWAY=网关

NETMASK=子网掩码

DNS1=8.8.8.8

修改以上内容后,Esc键+输入:wq,保存修改的内容。
并重启网络systemctl restart network,让配置生效。

关闭防火墙

关闭防火墙:systemctl stop firewalld

禁用防火墙:systemctl disable firewalld

2. 安装jdk和hadoop

  1. 在官网下载jdk-8u221-linux-x64.tar.gz与hadoop-2.7.1,并解压到/usr/local路径
  2. 解压命令:tar -zxvf 包名
  3. 配置环境变量

2.1 配置jdk环境变量

在/etc/profile文件最后追加两行:

css 复制代码
 export JAVA_HOME=/usr/local/jdk1.8.0_221 
 export PATH=$JAVA_HOME/bin:$PATH

添加完之后保存退出输入此命令使配置立刻生效:source /etc/profile

2.2 配置Hadoop环境变量

在/etc/profile文件最后追加:

css 复制代码
export HADOOP_HOME=/usr/local/hadoop-2.7.1
export HADOOP_PREFIX=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$HADOOP_HOME/bin$HADOOP_HOME/sbin:$PATH

添加完之后保存退出输入此命令使配置立刻生效:source /etc/profile

三、准备三台虚拟机

准备三台虚拟机,主机名分别为master、slave1、slave2,而他们的IP地址分别为192.168.206.18、192.168.206.28、192.168.206.38。

1. 修改主机名与IP映射

2. 修改主机上的hadoop相关配置文件

2.1 core-site.xml

由于我们配置Hadoop的环境变量在**$HADOOP_HOME/etc/hadoop**路径下,所以我们首先切换到此路径,在执行:vi core-site.xml ,配置文件内容如下:

2.2 hdfs-site.xml

配置文件内容如下:

2.3 yarn-site.xml

配置文件内容如下:

2.4 slaves

配置文件内容如下:

3. 将主机上的hadoop配置文件,同步到其他两个主机上

3.1 使用"scp"对slave1进行同步

3.2 使用"scp"对slave2进行同步

四、配置SSH免密登录及时间同步

1. 免密登录

1.1在三个机器的目录下执行

css 复制代码
	ssh-keygen -t rsa
	然后需要一直回车确认哦

1.2 ls -all :查看所有文件和文件夹

css 复制代码
	会在/root/.ssh产生id_rsa和id_rsa.pub文件
	查看.ssh目录可以看到id_rsa(私钥), id_rsa.pub (公钥)两个文件

1.3 在master、slave1、slave2中分别执行

css 复制代码
	(期间需要输入yes ,和对应机器的密码,看提示自行决定)
	ssh-copy-id slave1 
	ssh-copy-id slave2 
	ssh-copy-id master

2. 时间同步

css 复制代码
yum install ntpdate
ntpdate time.ntp.org #同步一个统一的时间(阿里的都可以)

统一设置时间为:

css 复制代码
date -s "20230624 00:00:00"

五、NameNode格式化

注意啦!格式化只需要格式化一次哦,若以后启动Hadoop集群时,就不需要再格式化啦。

css 复制代码
hdfs namenode -format

最后分别在master、slave1、slave2上执行start-all.sh命令启动hadoop集群就大功告成啦!

六、查看Web管理页面

浏览器访问master的50070端口:http://192.168.206.100:50070

总结

问题:
DataNode不能启动或只启动一个

因多次格式化NameNode导致NameNode和DataNode的clusterID不一致无法启动DataNode。

有时候我们的HDFS出了问题,无法解决,可以通过重新格式化NameNode来搞定停止集群的HDFS和Yarn进程,然后删除hadoop目录下的logs以及data文件。

css 复制代码
删除命令为:
rm -rf data
rm -rf logs

《Hadoop》课程学习收获:

本学期我们主要学习了Hadoop的基本概念和架构,包括HDFS、MapReduce等。

1.HDFS:学习如何在HDFS上进行文件读写、权限控制等操作;

2.MapReduce:学习MapReduce编程的基本原理和实现方法;

3.Hive:学习如何使用Hive进行SQL查询,以及如何将数据导入到Hive中进行查询和分析;

4.HaBase:学习将数据按照表、行和列进行存储,使用Zookeeper作为协同管理服务。

Hadoop是大数据中的基础框架,有着广泛的应用,也是其他大数据框架的基础。总的来说,对于本次Hadoop的完全分布式的搭建还算是挺简单滴啦,若有不对滴还请大家在评论区指正哦!

相关推荐
nvd114 小时前
Flink 批处理驱动的湖仓 AI 财务研报流水线:从双流广播汇聚到 Agent 智能决策与原生 Iceberg 落盘全景实战
大数据·人工智能·flink
计算机编程指导师6 小时前
【计算机毕设推荐】基于Hadoop+Spark的公共交通运营数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·数据分析·spark·交通
QYR_118 小时前
机械制造用固体润滑涂层市场分析:2032年全球市场规模预计达8.78亿元,CAGR为6.2%
大数据·人工智能·物联网
数字化顾问8 小时前
(144页PPT)数字化转型汽车企业数智化战略规划(附下载方式)
大数据
智慧物业老杨9 小时前
数字底座,重构小区治理秩序
大数据
计算机编程指导师10 小时前
【计算机毕设选题推荐】基于Hadoop的宫颈癌变进程光谱数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·宫颈癌变
Pniubi10 小时前
分布式锁分类讲解
分布式
guhunyihan10 小时前
无代码系统搭建平台,探索恐象 AI 带来的开发新范式
大数据·人工智能
计算机编程指导师11 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的化妆品销售大数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·化妆品
benchmark_cc11 小时前
前复权数据每天可能变化,历史数据库应该覆盖还是保留原始价格?
大数据·python·pandas·量化交易·股票数据·quantdash