【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的完全分布式的搭建还算是挺简单滴啦,若有不对滴还请大家在评论区指正哦!

相关推荐
2401_8830410832 分钟前
新锐品牌电商代运营公司都有哪些?
大数据·人工智能
青云交35 分钟前
大数据新视界 -- 大数据大厂之 Impala 性能优化:融合机器学习的未来之路(上 (2-1))(11/30)
大数据·计算资源·应用案例·数据交互·impala 性能优化·机器学习融合·行业拓展
Json_181790144803 小时前
An In-depth Look into the 1688 Product Details Data API Interface
大数据·json
WX187021128735 小时前
在分布式光伏电站如何进行电能质量的治理?
分布式
Qspace丨轻空间6 小时前
气膜场馆:推动体育文化旅游创新发展的关键力量—轻空间
大数据·人工智能·安全·生活·娱乐
Elastic 中国社区官方博客7 小时前
如何将数据从 AWS S3 导入到 Elastic Cloud - 第 3 部分:Elastic S3 连接器
大数据·elasticsearch·搜索引擎·云计算·全文检索·可用性测试·aws
Aloudata8 小时前
从Apache Atlas到Aloudata BIG,数据血缘解析有何改变?
大数据·apache·数据血缘·主动元数据·数据链路
不能再留遗憾了8 小时前
RabbitMQ 高级特性——消息分发
分布式·rabbitmq·ruby
水豚AI课代表8 小时前
分析报告、调研报告、工作方案等的提示词
大数据·人工智能·学习·chatgpt·aigc
茶馆大橘8 小时前
微服务系列六:分布式事务与seata
分布式·docker·微服务·nacos·seata·springcloud