三台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.mzph.cn/news/584803.shtml

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

相关文章

通过AWS Endpoints从内网访问S3

AWS S3作为非结构化数据的存储&#xff0c;经常会有内网中的app调用的需求。S3默认是走公网访问的&#xff0c;如果内网app通过公网地址访问S3并获取数据会消耗公网带宽费用。如下图所示&#xff1a; AWS 提供了一种叫做endpoints的资源&#xff0c;这种资源可以后挂S3服务&a…

【Maven】linux部署maven

简介 最近学习hyperledger-fabric超级账本&#xff08;区块链&#xff09;&#xff0c;需要使用到java和maven&#xff0c;所以重新学习了一下如何部署maven&#xff0c;这里附上参考文档。在附上官方网站的下载地址&#xff1a;https://maven.apache.org/download.cgi。首先去…

WPF+Halcon 培训项目实战(7):目标匹配助手

前言 为了更好地去学习WPFHalcon&#xff0c;我决定去报个班学一下。原因无非是想换个工作。相关的教学视频来源于下方的Up主的提供的教程。这里只做笔记分享&#xff0c;想要源码或者教学视频可以和他联系一下。 相关链接 微软系列技术教程 WPF 年度公益课程 Halcon开发 CSD…

Kindle使用USB数据线传书封面无法显示问题

以下内容只针对USB传书&#xff08;非越狱版本&#xff0c;越狱了有相关插件&#xff0c;这里不谈&#xff09;&#xff0c;不包括邮件传书。 恶心图如下&#xff1a; 直接把mobi/azw3/azw &#xff08;epub模式不能直接拷贝&#xff0c;kindle无法读取&#xff09;格式的电子…

STL——stack容器

1.stack基本概念 概念&#xff1a;stack是一种先进后出&#xff08;First In Last Out,FILO&#xff09;的数据结构&#xff0c;它只有一个出口。 栈中只有顶端的元素才可以被外界使用&#xff0c;因此栈不允许有遍历行为。 栈中进入数据称为——入栈&#xff08;push&#x…

在markdown中添加视频的两种方法

查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置&#xff0c;前后端开发环境的配置&#xff0c;编辑器的配置&#xff0c;网络服务的配置&#xff0c;网络命令的应用与配置&#xff0c;windows常见问题的解决等。 文章目录 方式一源代码: 方式二结尾语网络的梦想 markd…

提升数据库性能的关键指南-Oracle AWR报告

文章目录 一、了解AWR报告&#xff1a;数据库性能的仪表盘二、生成AWR报告三、解读AWR报告的关键部分1.报告开头的系统基础信息2.ADDM发现3.负载概览(Load Profile)4.参数文件5.顶级前台等待事件6.SQL 统计信息-顶级SQL7.SGA Advisory AND PAG Advisory 一、了解AWR报告&#x…

如何理解Go语言的数组

什么是数组 首先下一个定义&#xff0c;数组是对线性的内存区域的抽象。高维数组和一维数组有着同样的内存布局。&#xff08;大学生考试的时候别借鉴哈&#xff0c;这是自己下的定义&#xff0c;相当于是一篇议论文的论点。&#xff09; 线性的内存区域说白了就是连续的内存…

Mac Pycharm在Debug模式报编码(SyntaxError)错误

1. 错误信息&#xff1a; Traceback (most recent call last):File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/tokenize.py", line 330, in find_cookieline_string line.decode(utf-8) UnicodeDeco…

Vue(二):计算属性与 watch 监听器

03. Vue 指令拓展 3.1 指令修饰符 可以通过 . 来指明一些指令的后缀&#xff0c;不同的后缀中封装了不同的操作&#xff0c;可以帮助我们简化代码&#xff0c;比如之前使用过的监听 enter 键的弹起&#xff0c;我们需要操作事件对象&#xff0c;来检测用户使用了哪个键&#…

无需翻墙|Stable Diffusion WebUI 安装|AI绘画

前言 最近终于有机会从围墙里往外看&#xff0c;了解到外面的世界已经有了天翻地覆的变化&#xff0c;感叹万千&#xff0c;笔者在本地mac&#xff0c;windows&#xff0c;linux&#xff0c;docker部署了不下20遍后&#xff0c;整理出来的linux极简避坑安装方案&#xff0c;供…

4. 云原生之kubesphere基础服务搭建

文章目录 安装kubesphere插件服务暴露NodePort方式LoadBalancer方式安装 OpenELB部署eip资源配置网关启动网关创建路由测试网关路由ingress高级功能在服务中配置LoadBalancer 基础设施部署服务部署建议helm仓库添加helm仓库 运维相关部署gitlab部署nexus3部署harbor 研发相关 安…

回归预测 | MATLAB实ZOA-LSTM基于斑马优化算法优化长短期记忆神经网络的多输入单输出数据回归预测模型 (多指标,多图)

回归预测 | MATLAB实ZOA-LSTM基于斑马优化算法优化长短期记忆神经网络的多输入单输出数据回归预测模型 &#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实ZOA-LSTM基于斑马优化算法优化长短期记忆神经网络的多输入单输出数据回归预测模型 &#xff08;…

ROS仿真R2机器人之安装运行及MoveIt的介绍

R2(Robonaut 2)是NASA美国宇航局与GM通用联合推出的宇航人形机器人&#xff0c;能在国际空间站使用&#xff0c;可想而知其价格是非常昂贵&#xff0c;几百万美刀吧&#xff0c;还好NASA发布了一个R2机器人的Gazebo模型&#xff0c;使用模型就不需要花钱了&#xff0c;由于我们…

o2o生活通全开源尊享版+多城市切换+企业付款+交友IM+平台快报

搭建教程 1.把 pigo2ov282.sql 文件里面的网址 test.souho.net 全部批量替换为你的自己的 2.使用 phpmyadmin 导入 pigo2ov282.sql 到你的数据库&#xff08;直接访问/phpmyadmin 即可&#xff09; 3.修改数据库文件/conf/db.php 里的数据库连接信息&#xff08;请勿使用记事本…

蓝牙物联网移动硬件数据传输系统解决方案

随着传感器技术、网络技术和数据传输技术的不断发展&#xff0c;人们对智能设备的需求日渐增强,利用传感器技术可以对周围环境进行准确和全面的感知&#xff0c;获取到实时信息&#xff0c;从而在网络中进行传输和共享&#xff0c;再通过服务器对各种数据进行保存、分析和挖掘等…

2023-12-29 服务器开发-centos部署ftp

摘要: 2023-12-29 服务器开发-centos-部署ftp 部署ftp vsftpd&#xff08;very secure FTP daemon&#xff09;是Linux下的一款小巧轻快、安全易用的FTP服务器软件。本教程介绍如何在Linux实例上安装并配置vsftpd。 前提条件 已创建ECS实例并为实例分配了公网IP地址。 背景…

使用element中el-cascader级联选择器动态懒加载以及回显 (单选)

<template><!-- 新增||修改弹框 --><el-dialog :close-on-click-modal"false" :close-on-press-escape"false" :title"title" :visible.sync"open"width"800px" append-to-body><el-form ref"for…

小型内衣洗衣机什么牌子好?口碑好的小型洗衣机

想必大家都知道&#xff0c;我们的内衣裤、袜子这些衣物对卫生方面的要求是比较的高&#xff0c;毕竟是贴身的衣物&#xff0c;因此是要分开清洗的&#xff0c;而不能够跟我们其他的大件衣服一起放入到大型洗衣机里进行混洗&#xff0c;很多就选择了分开单独的手洗&#xff0c;…

初识Sringboot3+vue3环境准备

环境准备 后端环境准备 下载JDK17https://www.oracle.com/java/technologies/downloads/#jdk17-windows 安装就下一步下一步,选择安装路径 配置环境 环境 JDK17、IDEA2021、maven3.5、vscode 后端 基础&#xff1a;javaSE&#xff0c;javaWeb、JDBC、SMM框架&#xff08;Spr…