Hadoop学习2:完全分布集群搭建

news2024/11/25 23:40:03

文章目录

      • Fully-Distributed Operation(完全分布模式)== 重点
        • 机器环境同步
        • 集群规划
        • 配置文件修改以及同步
          • 步骤0:下面其他步骤涉及修改配置以这里为准(要不然部署使用过程会有很多问题)
            • 通用配置(三台节点机器)
            • 个性化配置-192.168.19.107
            • 个性化配置-192.168.19.108
            • 个性化配置-192.168.19.109
            • 个性化配置-到时访问dfs、yarn页面的个人电脑
          • 步骤1:配置修改【192.168.19.107】
          • 步骤2:配置同步
          • 步骤3:格式化集群中的dfs主节点
          • 步骤4:手动启动(步骤4、5选择其中一个)
            • 步骤4.1:192.168.19.107的DFS的相关节点启动
            • 步骤4.2:192.168.19.108的DFS的相关节点启动
            • 步骤4.3:192.168.19.109的DFS的相关节点启动
          • 步骤5:一键启动(无需一个一个节点启动)== (步骤4、5选择其中一个)
          • 步骤6:一键启动yarn集群
          • 步骤7:启动mapred计算历史过程服务程序historyserver
          • 步骤8:访问页面查看集群是否生效
            • dfs页面
            • yarn页面

Fully-Distributed Operation(完全分布模式)== 重点

参考: https://hadoop.apache.org/docs/r3.3.6/hadoop-project-dist/hadoop-common/ClusterSetup.html

切记、切记、切记: hadoop所有配置文件涉及主机相关,都使用域名进行配置,别使用具体主机的IP,否则会遇到奇奇怪怪的效果,整个搭建,请以步骤0的标准为参考搭建,其他步骤中涉及IP的配置请忽略。

机器环境同步

自行使用我写的多机文件同步脚本,同步一台机器的jdk、hadoop、脚本等文件: https://blog.csdn.net/weixin_39651356/article/details/136593905

集群规划
192.168.19.107192.168.19.108192.168.19.109
HDFSNameNode、DataNodeDataNodeSecondaryNameNode、DataNode
YARNNodeManagerResourceManager、NodeManagerNodeManager
配置文件修改以及同步

配置一键同步脚本: https://blog.csdn.net/weixin_39651356/article/details/136593905

步骤0:下面其他步骤涉及修改配置以这里为准(要不然部署使用过程会有很多问题)
通用配置(三台节点机器)


静态DNS文件:/etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.19.107 zookeeper107 hadoop107
192.168.19.108 zookeeper108 hadoop108
192.168.19.109 zookeeper109 hadoop109

在这里插入图片描述




集群机器信息:/opt/module/hadoop-3.3.6/etc/hadoop/workers

hadoop107
hadoop108
hadoop109

在这里插入图片描述




hadoop组件公共配置:/opt/module/hadoop-3.3.6/etc/hadoop/core-site.xml

<configuration>


<!-- 默认是本地文件协议 file: == NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop107:9000</value>
</property>


<!-- 临时目录 默认/tmp/hadoop-${user.name} == 或者也可以是数据目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.3.6/tmp</value>
</property>

<!-- HDFS网页登录时使用的用户,使其具有可以在网页删除文件的权限,默认【dr.who】 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>

</configuration>

在这里插入图片描述




hadoop-dfs分布式文件组件配置:/opt/module/hadoop-3.3.6/etc/hadoop/hdfs-site.xml

<configuration>

<!-- 集群设置为1, 默认3 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- dfs页面查看文件内容 -->
<!--
<property>
<name>dfs.datanode.http.address</name>
<value>192.168.19.107:9864</value>
</property>
-->
<!-- dfs页面访问地址 -->

<property>
<name>dfs.namenode.http-address</name>
<value>hadoop107:9870</value>
</property>

<!-- namenode的备份节点 == RPC协议改成http协议 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop109:9868</value>
</property>

</configuration>

在这里插入图片描述




hadoop-yarn节点、资源管理组件配置:/opt/module/hadoop-3.3.6/etc/hadoop/hdfs-site.xml

<configuration>

<!-- Site specific YARN configuration properties == https://hadoop.apache.org/docs/r3.3.6/hadoop-yarn/hadoop-yarn-common/yarn-defa
ult.xml -->

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>


<!--资源管理节点的IP地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop108</value>
</property>



<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_H
OME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
</property>

<!--
<property>
<name>yarn.timeline-service.hostname</name>
<value>192.168.19.107</value>
</property>
-->


<!-- 日志聚集启动 -->
<!--
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
-->
<!-- 日志聚集的日志保留的时间,单位秒 -->
<!--
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>2592000</value>
</property>
-->

</configuration>

在这里插入图片描述




hadoop-mapred节点、资源管理组件配置: /opt/module/hadoop-3.3.6/etc/hadoop/mapred-site.xml

<configuration>


<!-- The runtime framework for executing MapReduce jobs. Can be one of local, classic or yarn -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>


<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property>

<!-- mr运行日志采集系统配置 -->
<!--
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.19.107:10020</value>
</property>

<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.19.107:19888</value>
</property>
-->


</configuration>

在这里插入图片描述




添加JDK环境变量: /opt/module/hadoop-3.3.6/etc/hadoop/hadoop-env.sh、/opt/module/hadoop-3.3.6/etc/hadoop/yarn-env.sh、/opt/module/hadoop-3.3.6/etc/hadoop/mapred-env.sh

export JAVA_HOME=/www/server/jdk8/jdk1.8.0_202

在这里插入图片描述




系统环境变量配置:/etc/profile

# 文件末尾添加如下配置 == 修改此文件后,需使用 source /etc/profile,使其加载入系统生效
JAVA_HOME=/www/server/jdk8/jdk1.8.0_202
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin/:/www/server/liquibase
export PATH JAVA_HOME CLASSPATH


## Hadoop
export HADOOP_HOME=/opt/module/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin:/opt/module/script

# 如果hadoop使用root用户启动,必须配这玩意
HDFS_NAMENODE_USER=root
HDFS_DATANODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root


export HDFS_NAMENODE_USER HDFS_DATANODE_USER HDFS_SECONDARYNAMENODE_USER YARN_RESOURCEMANAGER_USER YARN_NODEMANAGER_USER

在这里插入图片描述

个性化配置-192.168.19.107

需重启电脑生效

机器域名:/etc/hostname

hadoop107

在这里插入图片描述

个性化配置-192.168.19.108

需重启电脑生效

机器域名:/etc/hostname

hadoop108

在这里插入图片描述




一键同步配置到另外两台机器:同步脚本自行参考我的另一篇博客 https://blog.csdn.net/weixin_39651356/article/details/136593905?spm=1001.2014.3001.5502

xsyncByFile /opt/module/hadoop-3.3.6/etc/hadoop
个性化配置-192.168.19.109

需重启电脑生效

机器域名:/etc/hostname

hadoop109

在这里插入图片描述

个性化配置-到时访问dfs、yarn页面的个人电脑

静态DNS:C:\Windows\System32\drivers\etc\hosts

192.168.19.107 hadoop107
192.168.19.107 zookeeper107
192.168.19.108 hadoop108
192.168.19.108 zookeeper108
192.168.19.109 hadoop109
192.168.19.109 zookeeper109

在这里插入图片描述

步骤1:配置修改【192.168.19.107】

/opt/module/hadoop-3.3.6/etc/hadoop/hadoop-env.sh
在这里插入图片描述


/opt/module/hadoop-3.3.6/etc/hadoop/core-site.xml
在这里插入图片描述

<configuration>


<!-- 默认是本地文件协议 file: -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.19.107:9000</value>
</property>


<!-- 临时目录 默认/tmp/hadoop-${user.name} -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.3.6/tmp</value>
</property>


</configuration>


/opt/module/hadoop-3.3.6/etc/hadoop/hdfs-site.xml
在这里插入图片描述

<configuration>

<!-- 集群设置为1, 默认3 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- namenode的备份节点 == RPC协议改成http协议 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.19.109:9868</value>
</property>

</configuration>


/opt/module/hadoop-3.3.6/etc/hadoop/yarn-env.sh
在这里插入图片描述


/opt/module/hadoop-3.3.6/etc/hadoop/yarn-site.xml
在这里插入图片描述

<configuration>

<!-- Site specific YARN configuration properties == https://hadoop.apache.org/docs/r3.3.6/hadoop-yarn/hadoop-yarn-common/yarn-default.xml -->

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

<!--资源管理节点的IP地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.19.108</value>
</property>



<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
</property>


<property>
<name>yarn.timeline-service.hostname</name>
<value>192.168.19.107</value>
</property>


<!-- 日志聚集启动 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志聚集的日志保留的时间,单位秒 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>2592000</value>
</property>

</configuration>


/opt/module/hadoop-3.3.6/etc/hadoop/mapred-env.sh
在这里插入图片描述


/opt/module/hadoop-3.3.6/etc/hadoop/mapred-site.xml
在这里插入图片描述

<configuration>


<!-- The runtime framework for executing MapReduce jobs. Can be one of local, classic or yarn -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>


<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property>

<!-- mr运行日志采集系统配置 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.19.107:10020</value>
</property>

<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.19.107:19888</value>
</property>


</configuration>
步骤2:配置同步


在这里插入图片描述

步骤3:格式化集群中的dfs主节点

192.168.19.107

# 格式化主dfs中的数据,确保运行此命令时dfs进程已停止



# 日志目录删除
rm -rf /opt/module/hadoop-3.3.6/logs && rm -rf /opt/module/hadoop-3.3.6/tmp


# 开始格式化
hdfs namenode -format

192.168.19.108、192.168.19.109

# 删除从节点这两个目录即可,无需运行dfs格式化命令
# 日志目录删除
rm -rf /opt/module/hadoop-3.3.6/logs && rm -rf /opt/module/hadoop-3.3.6/tmp


步骤4:手动启动(步骤4、5选择其中一个)
步骤4.1:192.168.19.107的DFS的相关节点启动
cd /opt/module/hadoop-3.3.6/sbin

bash hadoop-daemon.sh start namenode

bash hadoop-daemon.sh start datanode

在这里插入图片描述

步骤4.2:192.168.19.108的DFS的相关节点启动
cd /opt/module/hadoop-3.3.6/sbin


bash hadoop-daemon.sh start datanode


在这里插入图片描述

步骤4.3:192.168.19.109的DFS的相关节点启动
cd /opt/module/hadoop-3.3.6/sbin


# 可使用命令替代:hdfs --daemon stop namenode secondarynamenode
bash hadoop-daemon.sh start datanode

bash hadoop-daemon.sh start secondarynamenode

在这里插入图片描述

步骤5:一键启动(无需一个一个节点启动)== (步骤4、5选择其中一个)

more /opt/module/hadoop-3.3.6/etc/hadoop/workers == 集群服务器的信息进行配置
在这里插入图片描述

在这里插入图片描述

/opt/module/hadoop-3.3.6/sbin/start-dfs.sh == 脚本一键启动集群
在这里插入图片描述

在这里插入图片描述

步骤6:一键启动yarn集群

注意: ResourceManager节点在哪台机器,则有哪台机器运行此脚本

start-yarn.sh

在这里插入图片描述

步骤7:启动mapred计算历史过程服务程序historyserver
mapred --daemon start historyserver

在这里插入图片描述

步骤8:访问页面查看集群是否生效
dfs页面

浏览器访问: http://192.168.19.107:9870/

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

yarn页面

浏览器访问: http://192.168.19.108:8088/cluster

在这里插入图片描述

在这里插入图片描述

yarn调用dfs里面的文件使用mapreduce计算开始

hadoop jar /opt/module/hadoop-3.3.6/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /wordCountData /wordCountDataOutput

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

社交革命的引领者:探索Facebook如何改变我们的生活方式

1.数字社交的兴起 随着互联网的普及&#xff0c;社交媒体成为我们日常生活的重要组成部分。Facebook作为其中的先驱&#xff0c;从最初的社交网络演变成了一个拥有数十亿用户的全球化平台。它不仅改变了我们与世界互动的方式&#xff0c;还深刻影响了我们的社交习惯、人际关系以…

华为机考:HJ102 字符统计

华为机考&#xff1a;HJ102 字符统计 描述 方法1 先将所有字符计算数量&#xff0c;在对比其中字符的assic码 #include<iostream> #include<vector> #include<algorithm> #include<string> using namespace std; bool cmp(pair<char, int> a,…

C++ std::list的merge()使用与分析

看到《C标准库第2版》对list::merge()的相关介绍&#xff0c;令我有点迷糊&#xff0c;特意敲代码验了一下不同情况的调用结果。 《C标准库第2版》对list::merge()的相关介绍 list::merge()定义 merge()的作用就是将两个list合并在一起&#xff0c;函数有2个版本&#xff1a;…

数字图像处理-空间滤波

空间滤波 空域滤波基础 – 离散卷积的边缘效应 平滑空间滤波器 # -*- coding: utf-8 -*- # Author: Huazhong Yang # Email: cjdxyhz163.com # Time : 2024/3/7 20:26import cv2 import numpy as np# 读取图像 image cv2.imread(a1.png)# 应用高斯滤波 # 第二个参数是高斯…

微信小程序开发系列(三十)·小程序本地存储API·同步和异步的区别

目录 1. 同步API 1.1 getStorageSync存储API 1.2 removeStorageSync获取数据API 1.3 removeStorageSync删除 1.4 clearStorageSync清空 2. 异步API 2.1 setStorage存储API 2.2 getStorage获取数据API 2.3 removeStorage删除API 2.4 clearStorage清空 3. …

qt vs 编程 字符编码 程序从源码到编译到显示过程中存在的字符编码

理解字符编码&#xff0c;请参考&#xff1a;unicode ucs2 utf16 utf8 ansi GBK GB2312 CSDN博客 汉字&#xff08;或者说多字节字符&#xff09;的存放需求&#xff0c;是计算机中各种编码问题的最直接原因。如果程序不直接使用汉字&#xff0c;或间接在所有操作步骤中统一使…

Hilt

1.使用Hilt实现快速依赖注入 1.1 导入依赖 //hilt依赖//Hiltimplementation("com.google.dagger:hilt-android:2.44")annotationProcessor("com.google.dagger:hilt-android-compiler:2.44")1.2 在build.gradle(app)中加入插件 plugins {id("com.an…

大规模自动化重构框架--OpenRewrite浅析

目录 1. OpenRewrite是什么&#xff1f;定位&#xff1f; 2. OpenWrite具体如何做&#xff1f; 3. 核心概念释义 3.1 Lossless Semantic Trees (LST) 无损语义树 3.2 访问器&#xff08;Visitors&#xff09; 3.3 配方&#xff08;Recipes&#xff09; 4. 参考链接 Open…

SpringBlade error/list SQL 注入漏洞复现

0x01 产品简介 SpringBlade 是一个由商业级项目升级优化而来的 SpringCloud 分布式微服务架构、SpringBoot 单体式微服务架构并存的综合型项目。 0x02 漏洞概述 SpringBlade 框架后台 /api/blade-log/error/list路径存在SQL注入漏洞,攻击者除了可以利用 SQL 注入漏洞获取数…

Redis应用缓存

目录 前言 关于“二八定律” 使用Redis作为缓存 为什么关系型数据库性能不高 为什么并发量高了就容易宕机 Redis就是一个用来作为数据库缓存的常见方案 缓存更新策略 定期生成 搜索引擎为例 实时生成 淘汰策略 FIFO(First In First Out) 先进先出 lRU(Least …

106. Dockerfile通过多阶段构建减小Golang镜像的大小

我们如何通过引入具有多阶段构建过程的Dockerfiles来减小Golang镜像的大小&#xff1f; 让我们从一个通用的Dockerfile开始&#xff0c;它负责处理基本的事务&#xff0c;如依赖项、构建二进制文件、声明暴露的端口等&#xff0c;以便为Go中的一个非常基础的REST API提供服务。…

YoloV8实战:YoloV8-World应用实战案例

摘要 YOLO-World模型确实是一个突破性的创新&#xff0c;它结合了YOLOv8框架的实时性能与开放式词汇检测的能力&#xff0c;为众多视觉应用提供了前所未有的解决方案。以下是对YOLO-World模型的进一步解读&#xff1a; 模型架构与功能 YOLO-World模型充分利用了YOLOv8框架的…

剑指offer面试题34:在二叉树中和为某一值的路径

面试题34&#xff1a;在二叉树中和为某一值的路径 题目&#xff1a; LCR 153. 二叉树中和为目标值的路径 - 力扣&#xff08;LeetCode&#xff09; 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路…

C语言 - 各种自定义数据类型

1.结构体 把不同类型的数据组合成一个整体 所占内存长度是各成员所占内存的总和 typedef struct XXX { int a; char b; }txxx; txxx data; typedef struct XXX { int a:1; int b:1; …

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:RichText)

富文本组件&#xff0c;解析并显示HTML格式文本。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。该组件无法根据内容自适应设置宽高属性&#xff0c;需要开发者设置显示布局。 子组件 不包含子组…

封装的echarts子组件使用watch监听option失效的问题

项目场景&#xff1a; 我在项目里面封装了一个echarts组件&#xff0c;组件接收一个来自外部的option,然后我用了一个watch函数去监听这个option的变化&#xff0c;option变化之后&#xff0c;销毁&#xff0c;然后再新建一个charts表 碎碎念 问题如标题所示&#xff0c;这篇…

ubuntu 安装 infiniband 和 RoCE 驱动

下载驱动程序 驱动程序地址 https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/ 安装 安装参考文档 https://docs.nvidia.com/networking/display/mlnxofedv24010331/installing+mlnx_ofed#src-2571322208_InstallingMLNX_OFED-InstallationProced…

十五、计算机视觉-sobel算子

文章目录 前言一、sobel算子的概念二、sobel算子的计算方式三、具体实现 前言 上节课我们学习了梯度的知识&#xff0c;学习了如何去计算梯度&#xff0c;本节我们继续学习计算梯度的方法&#xff0c;本节我们学习使用Sobel算子计算梯度&#xff0c;这与上节课梯度计算方法有所…

Java客户端调用elasticsearch进行深度分页查询 (search_after)

Java客户端调用elasticsearch进行深度分页查询 &#xff08;search_after&#xff09; 一. 代码二. 测试结果 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 具体的Search_after解…

科技回顾,飞凌嵌入式受邀亮相第八届瑞芯微开发者大会「RKDC2024」

2024年3月7日~8日&#xff0c;第八届瑞芯微开发者大会&#xff08;RKDC2024&#xff09;在福州举行&#xff0c;本届大会以“AI芯片AI应用AloT”为主题&#xff0c;邀请各行业的开发者共启数智化未来。 本届大会亮点颇多&#xff0c;不仅有13大芯片应用展示、9场产品和技术论坛…