docker:Haoop集群

news2024/9/22 21:22:07

系列文章目录

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
在这里插入图片描述


总结

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

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

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

相关文章

新疆营盘古城及古墓群安防舱体实施方案

3 总体布局 3.1设计原则 3.1.1执行有效的国家标准、国家军用标准和行业标准; 3.1.2满足指标要求; 3.1.3采用通用化、模块化设计,提高设备可维修性; 3.1.4采用人机工程学知识进行设计,充分考虑安全性。 3.2 总体…

Sora的第一波受害者出现了。

不知道大家最近除了被Sora刷屏之外,有没有被这张图刷屏 我只能说网友太强大了 说实话,我进入舟老师的直播间,每次都是还有3分钟下播,还有6单就拍完 但是10分钟后还在激情逼单,6单之后还有6单 也许在营销学上&#x…

亚马逊工程师严选,超 40 篇 LLM 论文汇总

2023 年,大语言模型依旧是「话题制造机」,不管是 OpenAI 的「宫斗剧」,还是各个大厂的新模型、新产品「神仙打架」,亦或是行业大模型发展的风生水起,都昭示着大语言模型具备巨大的发展空间。花香自引蝶,其实…

LeetCode 算法题 (数组)存在连续3个奇数的数组

问题: 输入一个数组,并输入长度,判断数组中是否存在连续3个元素都是奇数的情况,如果存在返回存在连续3个元素都是奇数的情况,不存在返回不存在连续3个元素都是奇数的情况 例一: 输入:a[1,2,3…

探索Django路由规则(路由匹配、路由命名空间、HTML中的跳转与Django集成、路由传参以及后端重定向)

路由管理: ​ 在实际开发过程中,⼀个Django 项⽬会包含很多的 app ,这时候如果我们只在主路由⾥进⾏配置就会显得杂乱⽆章,所以通常会在每个 app ⾥,创建各⾃的 urls.py 路由模块,然后从根路由出发&#x…

leetcode日记(32)字符串相乘

做了很久很久……真的太繁琐了!! class Solution { public:string multiply(string num1, string num2) {string s;string str;if (num1 "0" || num2 "0") return "0";for(int inum2.size()-1;i>0;i--){int c2num2[…

代码随想录算法训练营第三十八天|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯。

509. 斐波那契数 题目链接:斐波那契数 题目描述: 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0&#xff0c…

2024 高级前端面试题之 计算机通识(基础) 「精选篇」

该内容主要整理关于 计算机通识(基础) 的相关面试题,其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。 计算机基础精选篇 一、网络1.1 UDP1.2 TCP1.3 HTTP1.4 DNS 二、数据结构2.1 栈2.2 队列2.3 链表2.4 树2.5 堆 三、算法3.1 时…

阿里云配置服务器详细指南_2024年CPU内存带宽配置选择

阿里云服务器配置怎么选择?根据实际使用场景选择,个人搭建网站可选2核2G配置,访问量大的话可以选择2核4G配置,企业部署Java、Python等开发环境可以选择2核8G配置,企业数据库、Web应用或APP可以选择4核8G配置或4核16G配…

Sora热潮 | 暴雨AI服务器助推大模型向前发展

Sora全球爆火这事还有谁不知道吗? 2月16日, OpenAI发布了一条由视频大模型Sora所自动生成的视频,逼真的视觉效果让其在一夜之间“刷屏”。 一石激起千层浪,Sora的发布让科技从业者,投资圈、影视行业纷纷“炸锅“&…

【双指针】:LCR179.查找总价值为目标值的两个商品

朋友们、伙计们,我们又见面了,本专栏是关于各种算法的解析,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 数据结构专栏&…

数据结构D3作业

1. 2. 按位插入 void insert_pos(seq_p L,datatype num,int pos) { if(LNULL) { printf("入参为空,请检查\n"); return; } if(seq_full(L)1) { printf("表已满,不能插入\n"); …

Spring 类型转换、数值绑定与验证(二)—PropertyEditor与Conversion

Spring 中,属性类型转换是在将数值绑定到目标对象时完成的。例如在创建ApplicationContext 容器时,将XML配置的bean 转换成Java类型对象,主要是借助了PropertyEditor类,而在Spring MVC 的Controller的请求参数转化为特定类型时&am…

为M系Mac安装Centos

下载镜像 需要使用特殊镜像,官网或国内的arch 镜像源不可安装 https://share.weiyun.com/2qc0S2VV CentOS-7-aarch64-08191738.mpg https://www.aliyundrive.com/s/1DCW2E5EySR 原文链接:https://blog.csdn.net/acdemic964850/article/details/1290565…

ROS问题记录

目前遇到的问题: 1 、包名大写会警告 包名不要出现大写 2、catkin_make前配置环境变量 尤其在更换终端时,一定要再配置一遍环境变量,常见的错误如下 基本上这个错误都是因为没有执行以下命令 source ~/catkinws/devel/setup.bash3、调用…

ABAP 某些列无法正常筛选

某些列无法正常筛选 如果无法筛选,要注意前导0是否添加,数据库是没有前导0,但是一旦筛选,就是自动加上前导0去筛选,所以筛选不到数据

【JVM】五种对象引用

📝个人主页:五敷有你 🔥系列专栏:JVM ⛺️稳中求进,晒太阳 几种常见的对象引用 可达性算法中描述的对象引用,一般指的是强引用,即是GCRoot对象对普通对象有引用关系,只要这层…

用 Python 自动化处理无聊的事情

“编程最棒的部分就是看到机器做一些有用的事情而获得的胜利。用 Python 将无聊的事情自动化将所有编程视为这些小小的胜利;它让无聊变得有趣。” Hilary Mason,数据科学家兼 Fast Forward Labs 创始人 “我很享受打破东西然后把它们重新组合起来的乐趣…

软件常见设计模式

设计模式 设计模式是为了解决在软件开发过程中遇到的某些问题而形成的思想。同一场景有多种设计模式可以应用,不同的模式有各自的优缺点,开发者可以基于自身需求选择合适的设计模式,去解决相应的工程难题。 良好的软件设计和架构&#xff0…

不要抱怨,不如抱 Java 运算符吧 (1)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…