docker:Haoop集群

系列文章目录

docker:环境安装
docker:Web迁移
docker:Haoop集群


文章目录

  • 系列文章目录
  • 前言
  • 一、宿主机选择
  • 二、环境准备
    • 1.前置技术
    • 2.网络环境
      • 1. docker网卡
      • 2. 分配IP
  • 三、容器互联
  • 三、Jdk和Hadoop安装
  • 四、分发脚本
  • 五、启动Hadoop
  • 总结


前言

年前学习了docker的相关知识,过年休息了多半月,现在开始继续学习,这次要完成我之前多次做实验的一个设想,就是用docker进行Hadoop集群部署,真正的完成一次构建,导出运行。


一、宿主机选择

这里说一下我踩过的坑,具体原因还没有找到,在最初的设想里,我是想在我的Debian服务器上运行Centos镜像的,经过测试,会出现多个容器内部无法连接的现象,最终将宿主机和容器操作系统统一时这个问题消失了,具体原因未知,所以这里我依旧选择用Cenos7作为宿主机器。

二、环境准备

1.前置技术

我要docker完成我Hadoop专栏中前两章的集群搭建,有过了解后边会更容易看懂。
Hadoop专栏
以下内容我只会记录一些与专栏有差异的操作,相同的配置和操作将不会演示,所以你想从0搭一个集群,但是还没有基础,那现在赶紧退出。

2.网络环境

1. docker网卡

docker network create --subnet=172.18.0.0/16 hadoop-br

我们为Hadoop集群专门新建一个网络。用作集群内部的互联。

2. 分配IP

我们在新建容器的时候直接完成域名和IP的绑定,就不用在docker内修改host文件了,docker会把域名和IP的对应关系直接记录在指定的网络中。

docker run -d --privileged -it -v /opt/software:/opt/software --name hadoop102 --ip 172.18.0.2 -h hadoop102 -p 9870:9870 --net hadoop-br centos:centos7.9.2009 /usr/sbin/init
docker run -d --privileged -ti --name hadoop103 -h hadoop103 --net hadoop-br --ip 172.18.0.3 -p 8088:8088 centos:centos7.9.2009 /usr/sbin/init
docker run -d --privileged -ti --name hadoop104 -h hadoop104 --net hadoop-br --ip 172.18.0.4 centos:centos7.9.2009 /usr/sbin/init

这里顺便将一些需要的文件通过数据卷挂载进去,一些Hadoop的WebUI需要用的端口直接也加上。

三、容器互联

我们分别开三个终端,然后连接到三个容器。

docker exec -it hadoop102 bash
docker exec -it hadoop103 bash
docker exec -it hadoop104 bash

之后我们为每个终端创建新用户,这里和专栏内容一样,不演示。
然后为新用户添加root权限,最基本的Centos7镜像是没有的/etc/sudoers的。
需要为每一个容器安装sudo。

yum install sudo -y

然后即可编写/etc/sudoers文件。
但是当修改时会出现这个报错。
在这里插入图片描述
我们需要给其添加权限。

 chmod 600 /etc/sudoers

然后可以正常修改了。
之后创建家目录和工作目录和专栏一样,不演示。
现在我们转换到新用户开始建立免密登录。

su atguigu

为三台电脑安装ssh

yum -y install openssh-clients openssh-server

我们在102上ping一下其它主机看看能否ping通。

在这里插入图片描述
能ping通就可以进行免密登录的配置。
先对ssh进行配置

vi /etc/ssh/ssh_config

在这里插入图片描述
然后重启一下ssh服务。
systemctl restart sshd
三台容器都要修改重启。
然后先手动ssh连接一下。
在这里插入图片描述
成功以后即可进行免密配置。
注意免密配置全程使用atguigu。
配置过程和专栏一样,不演示。
配置完成后测试一下。
在这里插入图片描述

三、Jdk和Hadoop安装

全程和专栏一致,不做演示。

四、分发脚本

在三个容器中安装rsync

sudo yum install rsync -y

然后编写分发脚本。
但是不知道为什么创建完之后无法直接调用,所以我们创造一个软连接。

sudo ln -s /home/atguigu/bin/xsync /usr/bin/xsync

然后尝试分发jdk和hadoop还有配置文件。

xsync /opt/module/

sudo xsync /etc/profile.d/my_env.sh

再分发配置文件的时候会出现这个问题。
在这里插入图片描述
因为我们用了sudo,所以这条命令使用root执行的,但我们没有给root用户设置免密,现在我们要设置一下。
Ctrl+D切换会root用户,然后设置密码,三台都设置。

passwd root

之后和atguigu一样设置免密。

ssh-keygen -t rsa

ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104

现在切换到atguigu进行配置文件分发。
在这里插入图片描述
现在就可以正常分发了。

五、启动Hadoop

hadoop102执行

hdfs namenode -format
sbin/start-dfs.sh

hadoop103执行

sbin/start-yarn.sh

然后在Web查看。
ip:9870
在这里插入图片描述
ip:8088
在这里插入图片描述


总结

至此集群的基本框架搭建完毕,可以更加自己的需要选择保存镜像或者上传仓库。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Aigtek电压放大器的应用场合有哪些

电压放大器是一种主要用于信号处理的重要电子设备,它可以将输入的低电压信号放大到较高的输出电压水平。在各个应用领域中,电压放大器发挥着重要的作用。下面西安安泰点击将介绍电压放大器的应用场合。 通信系统:电压放大器在通信系统中具有重…

【FPGA】高云FPGA之数字钟实验->HC595驱动数码管

高云FPGA之IP核的使用 1、设计定义2、设计输入2.1 数码管译码显示2.2 74HC595驱动2.3 主模块设计 3、分析和综合4、功能仿真6.1 hex8模块仿真6.2 HC595模块 5、布局布线6、时序仿真7、IO分配以及配置文件(bit流文件)的生成8、配置(烧录&#…

开源LLMs导览:工作原理、顶级LLM列表对比

目录 一、开源 LLM 是什么意思?二、开源LLM如何工作?2.1 预训练2.2 代币化2.3 开源LLM的微调2.4 输入编码2.5 训练与优化2.6 推理 三、开源LLM对组织的好处3.1 增强的数据安全和隐私3.2 节约成本3.3 减少供应商依赖性3.4 代码透明度 四、哪种LLM模式最好…

2024年,香港云服务器哪家好?(五大厂商推荐)

选择哪家厂商的香港云服务器最适合您取决于您的具体需求和预算。以下是一些常见的香港云服务器提供商以及它们的一些特点,这些信息可以帮助您做出更好的决定: 阿里云(Alibaba Cloud): 阿里云在全球范围内都有很好的口碑,提供多种云…

数据湖Iceberg、Hudi和Paimon比较

1.社区发展现状 项目Apache IcebergApache HudiApache Paimon开源时间2018/11/62019/1/172023/3/12LicenseApache-2.0Apache-2.0Apache-2.0Github Watch1481.2k70Github Star5.3k4.9k 1.7k Github Fork1.9k2.3k702Github issue(Open)898481263Github issue(closed)20542410488…

基于Springboot实现课程评分系统设计和实现

基于java Springboot实现课程评分系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获取源码…

数据仓库【指标体系】

指标体系是将零散单点的具有相互联系的指标,系统化的组织起来,通过单点看全局,通过全局解决单点的问题。它主要是由指标和体系两部分组成。 指标是指将业务单元细化后量化的度量值,它使得业务目标可描述、可度量、可拆解&#xff…

LeetCode2.两数相加

题目 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会…

Project_Euler-14 题解

Project_Euler-14 题解 题目 思路 从暴力枚举出发&#xff0c;枚举100万以内的所有数字&#xff0c;对于每一个数&#xff0c;维护一个长度&#xff0c;每根据公式执行一次运算就加一。 最后取最大值。 暴力枚举代码 #include <stdio.h> #include <stdlib.h> #…

跳格子3 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 小明和朋友们一起玩跳格子游戏&#xff0c;每个格子上有特定的分数&#xff0c;score[] [1 -1 -6 7 -17 7]&#xff0c; 从起点score[0]开始&#xff0c;每次最…

petalinux_zynq7 驱动DAC以及ADC模块之四:python实现http_api

前文&#xff1a; petalinux_zynq7 C语言驱动DAC以及ADC模块之一&#xff1a;建立IPhttps://blog.csdn.net/qq_27158179/article/details/136234296petalinux_zynq7 C语言驱动DAC以及ADC模块之二&#xff1a;petalinuxhttps://blog.csdn.net/qq_27158179/article/details/1362…

MongoDB学习笔记

1. 写在前面 最近工作用到了Mongodb&#xff0c;虽然有了gpt&#xff0c;对于这种数据库操作的代码基本上不用自己费多大功夫&#xff0c;但对于知识本身&#xff0c;还是想借机会系统学习下Mongodb的&#xff0c;原因是之前接触数据库一直都是mysql&#xff0c;oracle等关系型…

【鸿蒙 HarmonyOS 4.0】状态管理

一、介绍 资料来自官网&#xff1a;文档中心 在声明式UI编程框架中&#xff0c;UI是程序状态的运行结果&#xff0c;用户构建了一个UI模型&#xff0c;其中应用的运行时的状态是参数。当参数改变时&#xff0c;UI作为返回结果&#xff0c;也将进行对应的改变。这些运行时的状…

Linux java查看内存消耗 linux查看java程序内存(转载)

Linux java查看内存消耗 linux查看java程序内存 目录 一、jps命令。 二、ps命令。 三、top命令。 四、free命令。 五、df命令。 查看应用的CPU、内存使用情况&#xff0c;使用jps、ps、top、free、df命令查看。 一、jps命令。 可以列出本机所有java应用程序的进程pid。…

浏览器显示「SSL 证书无效」应该如何解决?

作为保护网站传输数据安全的重要工具&#xff0c;SSL证书经常被部署于网站服务器上以实现HTTPS加密。但部分网站部署SSL证书后&#xff0c;访问时有时候会出现SSL 证书无效警示。那么SSL证书无效怎么办&#xff1f;导致SSL证书无效的情况可能是SSL证书本身的原因&#xff0c;也…

轻松掌握opencv的8种图像变换

文章目录 opencv的8种图像变换1. 图像放大、缩小2. 图像平移3. 图像旋转4. 图像仿射变换5. 图像裁剪6. 图像的位运算&#xff08;AND, OR, XOR&#xff09;7. 图像的分离和融合8. 图像的颜色空间 opencv的8种图像变换 1. 图像放大、缩小 我们先看下原图 import cv2 import ma…

【论文精读】IBOT

摘要 掩码语言建模(MLM)是一种流行的语言模型预训练范式&#xff0c;在nlp领域取得了巨大的成功。然而&#xff0c;它对视觉Transformer (ViT)的潜力尚未得到充分开发。为在视觉领域延续MLM的成功&#xff0c;故而探索掩码图像建模(MIM)&#xff0c;以训练更好的视觉transforme…

mysql 自定义函数create function

方便后续查询&#xff0c;做以下记录&#xff1b; 自定义函数是一种与存储过程十分相似的过程式数据库对象&#xff0c; 它与存储过程一样&#xff0c;都是由 SQL 语句和过程式语句组成的代码片段&#xff0c;并且可以被应用程序和其他 SQL 语句调用。 自定义函数与存储过程之间…

Day17_集合与数据结构(链表,栈和队列,Map,Collections工具类,二叉树,哈希表)

文章目录 Day17 集合与数据结构学习目标1 数据结构2 动态数组2.1 动态数组的特点2.2 自定义动态数组2.3 ArrayList与Vector的区别&#xff1f;2.4 ArrayList部分源码分析1、JDK1.6构造器2、JDK1.7构造器3、JDK1.8构造器4、添加与扩容5、删除元素6、get/set元素7、查询元素8、迭…

无法打开源文件 “csignal“ (dependency of “rclcpp/rclcpp.hpp“).等错误解决方法

#include "rclcpp/rclcpp.hpp"无法打开源文件的问题 报错情况解决流程1、ctrlshiftp2、修改编辑配置3、结果 在进行ros2编程的过程中&#xff0c;出现上述错误&#xff0c;网上没有找到解决方法&#xff0c;为后来者记录下解决经验&#xff0c;少走弯路&#xff0c;节…