三台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连再起飞吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/308631.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring-6-事务管理

事务是构建可靠企业级应用程序的最关键部分之一。 最常见的事务类型是数据库操作。 在典型的数据库更新操作中&#xff0c;首先数据库事务开始&#xff0c;然后数据被更新&#xff0c;最后提交或回滚事务(根据数据库操作的结果而定)。但是&#xff0c;在很多情况下&#xff0…

你能描述下你对vue生命周期的理解?在created和mounted这两个生命周期中请求数据有什么区别呢?

一、生命周期是什么 生命周期&#xff08;Life Cycle&#xff09;的概念应用很广泛&#xff0c;特别是在政治、经济、环境、技术、社会等诸多领域经常出现&#xff0c;其基本涵义可以通俗地理解为“从摇篮到坟墓”&#xff08;Cradle-to-Grave&#xff09;的整个过程在Vue中实…

【unity学习笔记】配置模型,实现眨眼和口型效果

一、vriod捏人 1.在vroidstudio软件中捏人 2.导出模型&#xff08;.vrm) 二、vrid导入unity的插件 1.在Git上搜索、打开univrm。 2.找到release页面找到合适的插件版本。&#xff08;VRM-0.116.0_0f6c&#xff09; 3.将univrm导入到工程中&#xff08;assets&#xff09;。 三…

QT上位机开发(第一个应用)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 不管是软件&#xff0c;还是硬件&#xff0c;如果我们能够顺利启动第一个应用&#xff0c;点亮第一个电路的话&#xff0c;这对我们的信心来说会有…

MacBook查看本机IP

嘚吧嘚 其实这也不是什么困难的问题&#xff0c;但是今年刚刚入坑Mac&#xff0c;外加用的频率不是很高&#xff0c;每次使用的时候都查&#xff0c;用完就忘&#xff0c;下次用的时候再查&#x1f92e;。真的把自己恶心坏了&#x1f648;。 所以写篇文章记录一下&#x1f92…

houdini fft模型

按照博友给的代码&#xff0c;进行可视化&#xff0c;发现绘出的图形没有错误&#xff0c;但计算的结果16&#xff0c;32&#xff0c;64.。。居然是错的&#xff1b;哪位知道正确的&#xff0c;敬请指正&#xff0c;或是后续啥时候复习完后再改正吧 主要函数代码 ic_lay detai…

VSCode + vite + vue3断点调试配置

没想到这个配置我搞了一上午&#xff0c;网上很多的配置方案都没有效果。总算搞定了&#xff0c;特此记录一下。 首先需要在.vscode文件夹下面创建launch.json配置文件。然后输入如下配置&#xff1a; {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。//…

从零开始:使用 BIND 构建和管理您的 DNS 服务器

1 前言 在这篇文章中&#xff0c;我将详细介绍如何使用 BIND&#xff08;Berkeley Internet Name Domain&#xff09;软件包中的 named 程序来配置和管理一个基本的 DNS 服务器。 从安装 BIND 开始&#xff0c;到设置 DNS 区域文件&#xff0c;再到运行和测试您的服务器&#x…

GPT4All : 便捷易用的本地智能问答推理软件(乱记)

安装与使用 去官网 https://gpt4all.io/index.html下载可执行文件。 打开应用即可看到是否共享数据的选项&#xff1a; 然后自动进入模型下载界面 测试 内存占用 缺点&#xff1a;在我本地的轻薄本上运行时&#xff0c;风扇会有轻微噪声&#xff0c;关闭软件很久都没停止。…

华为无线AC内三层漫游配置详解

重要说明 1、在一台ac中实现三层漫游 2、ac和核心的互联vlan和ap的管理vlan是同一个广播域&#xff0c;可以不用配option 43 3、直接转发模式&#xff0c;ac上可以不起业务vlan&#xff0c;ac和核心交换机上可以只放行一个互联vlan 10 4、ac上要启两个vap魔板&#xff0c;两个…

为什么ChatGPT采用SSE协议而不是Websocket?

在探索ChatGPT的使用过程中&#xff0c;我们发现GPT采用了流式数据返回的方式。理论上&#xff0c;这种情况可以通过全双工通信协议实现持久化连接&#xff0c;或者依赖于基于EventStream的事件流。然而&#xff0c;ChatGPT选择了后者&#xff0c;也就是本文即将深入探讨的SSE&…

线性代数——(期末突击)行列式(上)-行列式计算、行列式的性质

目录 行列式 行列式计算 逆序数 行列式的性质 转置 两行&#xff08;列&#xff09;互换 两行&#xff08;列&#xff09;对应相等 提公因子 两行&#xff08;列&#xff09;对应成比例 某行&#xff08;列&#xff09;为零 行列式分裂 行列式变换及三角行列式 行…