三台CentOS7.6虚拟机搭建Hadoop完全分布式集群(二)

2023-12-30 07:20

本文主要是介绍三台CentOS7.6虚拟机搭建Hadoop完全分布式集群(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这个是笔者大学时期的大数据课程使用三台CentOS7.6虚拟机搭建完全分布式集群的案例,已成功搭建完全分布式集群,并测试跑实例。

6.安装JDK

以下操作现在master上操作,然后远程复制到slave01、slave02即可。

6.1 将压缩包发送到master节点机器上,并解压

利用WinSCP,将JDK压缩包从windows系统传至master主节点机器上,并将其放于/opt/software目录
在这里插入图片描述
在这里插入图片描述

注意:将JDK压缩包从windows系统传至master主节点机器上,可以使用WinSCP或者Xftp实现发送。

sudo mkdir -p /usr/java
cd /usr/java
sudo tar -zxvf /opt/software/jdk-8u162-linux-x64.tar.gz -C /usr/java/
#将jdk解压到/usr/java/下
在这里插入图片描述

6.2 master配置/etc/profile文件

sudo vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_162
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
在这里插入图片描述

修改环境变量配置文件后,需要是配置文件生效
source /etc/profile
在这里插入图片描述

查看jdk版本
java -version
在这里插入图片描述

6.3 master配置/etc/profile文件

将JDK复制到slave1和slave2中,

sudo scp -r /usr/java root@slave01:/usr/
在这里插入图片描述

sudo scp -r /usr/java root@slave02:/usr/
在这里插入图片描述

在slave1和slave2上分别配置java的环境变量(即/etc/profile),并使环境变量生效,并java -version验证。

sudo vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_162
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

source /etc/profile
java -version
在slave1从节点机器上
在这里插入图片描述
在这里插入图片描述

在slave2从节点机器上
在这里插入图片描述
在这里插入图片描述

注意:编写jdk的环境变量时,版本号一定要一致。

7.安装zookeeper

以下操作现在master上操作,然后远程复制到slave01、slave02即可。

7.1创建工作目录

mkdir -p /usr/zookeeper
cd /usr/zookeeper
在这里插入图片描述

利用WinSCP,将zookeeper压缩包从windows系统传至master主节点机器上,并将其放于/opt/software目录

sudo cp /home/hadoop/tmp/zookeeper-3.4.10.tar.gz /opt/software/
在这里插入图片描述

解压zookeeper到/usr/zookeeper文件夹下
sudo tar -zxvf /opt/software/zookeeper-3.4.10.tar.gz -C /usr/zookeeper
在这里插入图片描述

在zookeeper的目录下,创建配置中所需的zkdata和zkdatalog两个文件夹。

cd /usr/zookeeper/zookeeper-3.4.10
sudo mkdir zkdata
sudo mkdir zkdatalog
在这里插入图片描述

7.2配置zoo.cfg文件

由于没有zoo.cfg文件,所以进入zookeeper配置文件夹conf,将zoo_sample.cfg文件拷贝一份命名为zoo.cfg,Zookeeper 在启动时会找这个文件作为默认配置文件。

cd /usr/zookeeper/zookeeper-3.4.10/conf/
mv zoo_sample.cfg zoo.cfg
在这里插入图片描述

对zoo.cfg文件进行配置:vim zoo.cfg

修改如下:(红色为增加内容)
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata
clientPort=2181
dataLogDir=/usr/zookeeper/zookeeper-3.4.10/zkdatalog
server.1=LBJ:2888:3888
server.2=slave01:2888:3888
`server.3=slave02:2888:3888``

在这里插入图片描述

7.3进入zkdata文件夹,创建文件myid,用于表示是几号服务器

在master主机中,设置服务器id为1。(集群中设置LBJ为1号服务器,slave01为2号服务器,slave02为3号服务器)

cd /usr/zookeeper/zookeeper-3.4.10/zkdata
sudo vim myid
在这里插入图片描述
在这里插入图片描述

7.4远程复制分发安装文件

配置好的zookeeper,拷贝到集群中的各个结点对应的目录下:
sudo scp -r /usr/zookeeper root@slave01:/usr/
sudo scp -r /usr/zookeeper root@slave02:/usr/
在这里插入图片描述
在这里插入图片描述

7.5 slave01、slave02设置myid

分别在我们配置的dataDir指定的目录即:zkdata下面,没有myid,自己创建一个myid文件,里面内容为一个数字,用来标识当前主机,这个数字要与zoo.cfg文件中配置的server.x中的x 一一对应。

cd /usr/zookeeper/zookeeper-3.4.10/zkdata
sudo vim myid
在slave01上
在这里插入图片描述
在这里插入图片描述

在slave02上
在这里插入图片描述
在这里插入图片描述

7.6 三台机器配置zookeeper环境变量

三台机器同步操作
修改/etc/profile文件,配置zookeeper环境变量。

sudo vim /etc/profile
#zookeeper
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin

在master主节点上
在这里插入图片描述

使环境变量生效: source /etc/profile
在这里插入图片描述

在slave01上
在这里插入图片描述
在这里插入图片描述

在slave02上
在这里插入图片描述
在这里插入图片描述

7.7 开启zookeeper集群

三台机器都切换到zookeeper/zookeeper-3.4.10目录下,执行启动zookeeper集群的脚本

cd /usr/zookeeper/zookeeper-3.4.10
bin/zkServer.sh start #开启zookeeper集群操作

在master上
在这里插入图片描述

hadoop用户权限不够,需要切换到root用户下
在这里插入图片描述

在slave01上
在这里插入图片描述

在slave02上
在这里插入图片描述

7.8 查看开启zookeeper后三台机器zookeeper集群状态

bin /zkServer.sh status #查看状态

在master上
在这里插入图片描述

在slave01上
在这里插入图片描述

在slave02上
在这里插入图片描述

小结:三个节点的zookeeper状态是随机选定的,一个是leader,两个是follower,到这,zookeeper安装成功。

7.9 安装zookeeper遇到问题

在这里插入图片描述

开启zookeeper集群过程中,我遇到了上述问题,我猜想肯定是我的配置文件出错了,所以我回去仔细检查,果然发现了问题,原来我的目录写错了,多了一个zookeeper。
在这里插入图片描述

小结:这提醒我们一定要注意配置文件的正确性,少一个字母,多一个字母都不行。

8 安装hadoop集群

温馨提示:在老师和同学们反复建议下,我们最好使用hadoop-2.7.3版本,否则使用的版本过高,后续的操作会不一样,我这里使用的是hadoop-2.7.3版本,后面还要解决hadoop与hive版本的jar包冲突问题。安装hadoop先在master上配置,然后远程复制到slave01或slave02 即可。

8.1 解压hadoop安装包并配置环境变量

使用WinSCP将hadoop-2.7.3的压缩包从windows系统传至master主节点机器上,并放置在/opt/software目录中,同时创建 /usr/hadoop目录,后续将hadoop-2.7.3的压缩包解压到/usr/hadoop 即可。

将hadoop-2.7.3.tar.gz 复制到/opt/software/下
cp /tmp/hadoop-2.7.3.tar.gz /opt/software/
在这里插入图片描述

解压到/usr/hadoop
tar -zxvf /opt/software/hadoop-2.7.3.tar.gz -C /usr/hadoop/
在这里插入图片描述

配置环境变量

vim /etc/profile #大多数的环境变量都在这里配置,标明注释,以免混乱

/etc/profile 的后面加上:
#hadoop
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
在这里插入图片描述

配置文件生效: source /etc/profile
在这里插入图片描述

8.2 修改hadoop的各配置文件

配置hadoop的配置文件需要在$HADOOP_HOME/etc/hadoop
cd $HADOOP_HOME/etc/hadoop
8.2.1 修改hadoop的hadoop-env.sh、yarn-env.sh环境配置文件
1.修改hadoop的hadoop-env.sh
vim hadoop-env.sh
修改JAVA_HOME内容:

export JAVA_HOME=/usr/java/jdk1.8.0_162
在这里插入图片描述

2.修改hadoop的yarn-env.sh
vim yarn-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_162
在这里插入图片描述
在这里插入图片描述

8.2.2 配置hadoop的配置文件(均为核心文件)
hadoop的各个组件的都是使用XML进行配置,这些文件存放在hadoop的etc/hadoop目录下。

Common组件 core-site.xml
HDFS组件 hdfs-site.xml
MapReduce组件 mapred-site.xml
yarn组件 yarn-site.xml

1.编辑 core-site.xml

vim core-site.xml
(节点地址文件名与临时文件地址)

<property><name>fs.default.name</name><value>hdfs://LBJ:9000</value>
</property>
<property><name>hadoop.tmp.dir</name><value>/usr/hadoop/hadoop-2.7.3/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property><name>io.file.buffer.size</name><value>131072</value>
</property>
<property><name>fs.checkpoint.period</name><value>60</value>
</property>
<property><name>fs.checkpoint.size</name><value>67108864</value>
</property>

在这里插入图片描述

2.编辑 mapred-site.xml

hadoop配置文件中是没有这个文件的,所以需要将mapred-site.xml.template样本文件复制为mapred-site.xml,对其进行编辑:
在这里插入图片描述

vim mapred-site.xml

<property>
<!--指定Mapreduce运行在yarn上--><name>mapreduce.framework.name</name><value>yarn</value></property>

在这里插入图片描述

3.编辑 vim yarn-site.xml

vim yarn-site.xml

<!-- 指定ResourceManager的地址-->
<property><name>yarn.resourcemanager.address</name><value>LBJ:18040</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>LBJ:18030</value></property><property><name>yarn.resourcemanager.webapp.address</name><value>LBJ:18088</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>LBJ:18025</value></property><property><name>yarn.resourcemanager.admin.address</name><value>LBJ:18141</value></property>
<!-- 指定reducer获取数据的方式--><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property><!-- Site specific YARN configuration properties -->

在这里插入图片描述

4.编辑 hdfs-site.xml

vim hdfs-site.xml

<property><name>dfs.replication</name><value>2</value></property><property><name>dfs.namenode.name.dir</name><value>file:/usr/hadoop/hadoop-2.7.3/hdfs/name</value><final>true</final>
</property><property><name>dfs.datanode.data.dir</name><value>file:/usr/hadoop/hadoop-2.7.3/hdfs/data</value><final>true</final></property><property><name>dfs.namenode.secondary.http-address</name><value>LBJ:9001</value></property><property><name>dfs.webhdfs.enabled</name><value>true</value></property><property><name>dfs.permissions</name><value>false</value></property>

在这里插入图片描述

注:dfs.replication:因为hadoop是具有可靠性的,它会备份多个文本,这里value就是指备份的数量(小于等于从节点的数量)。

8.2.3 编辑slaves、master文件
v i slaves
在这里插入图片描述

v i master #如果没有这个该文件创建即可,编辑添加主节点LBJ
在这里插入图片描述

注:这里的命令是vi而不是vim,不然会导致子节点启动不起来。

8.2.4 远程分发hadoop给slave01、slave02
sudo scp -r /usr/hadoop root@slave01:/usr/
在这里插入图片描述

sudo scp -r /usr/hadoop root@slave02:/usr/
在这里插入图片描述

8.2.5 配置slave01、slave02的hadoop环境变量
1.在slave01上

vim /etc/profile

在/etc/profile的末尾添加:

#hadoop
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
在这里插入图片描述

生效: source /etc/profile
在这里插入图片描述

2.在slave02上

vim /etc/profile

/etc/profile的末尾添加:

#hadoop
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

8.3 在主节点上格式化hadoop和开启hadoop,并查看结点状态

注:以下操作,仅在master主节点上进行。

8.3.1格式化hadoop

hadoop namenode -format
在这里插入图片描述
在这里插入图片描述

hadoop格式化成功!!!

8.3.2 开启hadoop
在 /usr/hadoop/hadoop-2.7.3下

cd /usr/hadoop/hadoop-2.7.3

开启hadoop

sbin/start-all.sh
在这里插入图片描述

8.3.3 在各主从机上查看hadoop结点的状态

jps
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.3.4 关闭hadoop集群

sbin/stop-all.sh
在这里插入图片描述

8.4 运行完全分布式例程(参考厦门大学大数据库实验室博客)

1)切换到hadoop-2.7.3目录:cd /usr/hadoop/hadoop-2.7.3/
2)先开启集群: ./sbin/start-all.sh
3)并开启historyserver:sbin/mr-jobhistory-daemon.sh start historyserver
在这里插入图片描述
在这里插入图片描述

4)在master上
bin/hdfs dfs -mkdir -p /user/hadoop
bin/hdfs dfs -mkdir -p input
bin/hdfs dfs -put /usr/hadoop/hadoop-2.7.3/etc/hadoop/*.xml input
bin/hdfs dfs -ls ./input #查看传输的文件

5)运行例程:
hadoop jar /usr/hadoop/hadoop-2.7.3/share/hadoop/ mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
在这里插入图片描述

注:结果需要等待几分钟
结果:
在这里插入图片描述
在这里插入图片描述

6)查看运行结果:
bin/hdfs dfs -cat output/*

三台CentOS7.6虚拟机搭建Hadoop完全分布式集群(二)笔记到此完结,笔者归纳、创作不易,大佬们给个3连再起飞吧

这篇关于三台CentOS7.6虚拟机搭建Hadoop完全分布式集群(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/552108

相关文章

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.