启动 AWS Academy Learner Lab【教学】(Hadoop实验)

news2024/11/15 21:02:52

🔥博客主页: A_SHOWY
🎥系列专栏:力扣刷题总结录 数据结构  云计算 

第一部分  创建实例过程

     首先,需要创建3台EC2,一台作主节点 (master node),两台作从节点 (slaves node)。

1.镜像选择

EC2(弹性计算云):是AWS提供的最基本的云计算产品:虚拟专用服务器。这些“实例”可以运行大多数操作系统。

2.选择实例类型

实例类型这里我选择的t2.medium,虽然选择t2.micro或者t2.small可能便宜一些,但是性能和CPU运行速率相差较大,运用Hadoop会显得比较吃力。

3.配置存储信息并设置实例数量

本次实验需要安装的文件大于8GiB,将默认的8GiB改成15GiB,由于需要创建3台EC2,一台作主节点 (master node),两台作从节点 (slaves node)。所以实例数量设置为3。

4.创建密钥对

密钥对名臣设置为hadoop,密钥对类型设置为RSA,私钥文件格式选择.pem(其实可以选择.ppk),由于面对EC2的操作我是用PuTTY来做的,所以将下载好的私钥还需通过PuTTYgen转换为.ppk格式。

成功创建SSH密钥对后:阿里云会保存SSH密钥对的公钥部分。自己需要下载并妥善保管私钥。当实例用公钥发送一段用于验证身份的密文,我们本地的SSH客户端便使用私钥将密文进行解密。

    5.启动实例

实例创建成功

6.对三个实例进行重命名

一台作主节点 (master node),两台作从节点 (slaves node)。为了后续操作清晰进行,故三个实例分别命名为master、slave01、slave02。

第二部分  实例配置连接过程

1.配置PuTTY

启动实例后,需要对EC2实例进行环境配置,需要使用SSH软件来完成远程连接,可以使用tabby、Xshell、electerm,在这里我使用的是Putty,这款工具是款老牌工具,体积小,使用方便,功能强大。

下面我仅仅展示master的连接过程图,slave01和slave02的连接过程同master完全一致。

  • 点击勾选master实例,从下方查看master实例的共有IPv4地址并复制。
  • 打开PuTTY,在将复制的master的共有IPv4粘贴到Host Name一栏,并在Saved Sessions一栏中将名称改为master,点击load进行连接,然后点击save(这样可以保证在下次启动实例时可以点击名称直接连接相应的IPv4,当然重启实验,以及过了0点会让共有IPv4地址改变,此时需要从写在Host Name中重新粘贴新的IPv4地址并连接保存)
  • 在PuTTYgen中将保存的.pem格式私密转为.ppk格式保存。
  • 在Connection——SSH——Auth路径下,点击Browse,选择保存的私钥路径。

  • 已经成功连接。

2.创建 hadoop 用户

  • sudo useradd -m hadoop -s /bin/bash//创建hadoop用户
  • sudo passwd Hadoop//设置 hadoop 用户的密码,需要输入两遍
  • sudo adduser hadoop sudo//为 hadoop 用户添加权限
  • sudo nano /etc/sudoers//打开权限相关文件
  • 在root下面添加一条属于hadoop的权限

第三部分 安装JDK

  • su hadoop//切换到 hadoop 用户
  • sudo yum updateinfo//安装 updateinfo
  • sudo yum install java-1.8.0-openjdk-devel.x86_64//指定安装版本
  • 如果看到complete信息,则表明JDK安装成功
  • java -version//查看java安装的版本

由于master、slave01、slave02的配置方法是一样的,故上述只以master为例。

第四部分 网络配置

如果要想实现通过主机名进行通信,不需要记录对应的IP地址,需要将主机名和IP地址为组存入hosts中。这样的操作就可以避免了通多较为麻烦的局域网内的本地IP进行通信。从三个实例中找到三个实例的私有IP地址

1.sudo nano /etc/hosts//修改hosts文件内容

(slave01,slave02内容修改),可以看到将3个主机名和对应的IP地址都输入到了hosts文件内容中。

2.重启实例

 

3.设置安全组,使三台主机的通信不被拦截

  • 选择实例,选择安全,后选择安全组,选择编辑入站规则
  • 编辑安全组类型选择所有流量,源选择任何位置的IPv4,保存规则

  • 通过ping操作,测试主机之间的连通性

测试可知,Master主机ping Master是通的

测试可知,Master主机ping Slave01 是通的

测试可知,Master主机ping Slave02 是通的

同理,在Slave01主机和Slave02主机上分别ping包括自己的3台z主机都是通的

4.安装 SSH Server

切换到 Master 主机对应的 putty 界面,首先查看 ssh 目录是否存在,如果不存在就创建该目录。

  • cd ~/.ssh/

mkdir ~/.ssh

  • cd ~/.ssh/ //进入ssh目录

  • 将密钥加入授权

cat ./id_rsa.pub >> ./authorized_keys

  • 接下来切换到 Slave01 对应的 putty 界面
  • cd ~/.ssh/

mkdir ~/.ssh

  • cd ~ //返回用户主目录
  • touch id_rsa.pub//创建 id_rsa.pub 文件

sudo nano id_rsa.pub//输入内容

  • 打开 Master 对应的 putty 界面

cd ~/.ssh/ //进入 ssh 目录。

sudo vim id_rsa.pub //打开 id_rsa.pub 文件

  • 复制其中的内容并粘贴到Slave01 对应的 putty 界面
  • 在Slave2中完成相同的操作

  • 在 Slave01 对应的 putty 界面中和 Slave02 对应的 putty 界面中分别输入:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

  • 切换到 Master 主机对应的 putty 界面中输入

sudo vim /etc/ssh/sshd_config //打开文件

  • 将 PasswordAuthentication no 改为 PasswordAuthentication yes

  • 重新启动 sshd,检查是否能实现用户之间的切换,测试 ssh 是否配置成功。若能够完成用户之间的切换,表明配置成功,否则表明配置失败。

以下两图可以看出Master用户成功转换为Slave01,接着转换为Slave02,表面配置成功。

第五部分 安装Hadoop 

1.下载并安装Hadoop:出现以下提示表明下载成功。

2.进入用户主目录,查看下载好的文件,并将其解压到/usr/lib,之后将文件夹名改为 hadoop,并修改 hadoop 用户对其的文件权限

  • cd ~
    ls
  • sudo tar -zxf /home/hadoop/hadoop-2.8.4.tar.gz -C /usr/lib

cd /usr/lib
sudo mv ./hadoop-2.8.4/ ./hadoop
sudo chown -R hadoop ./hadoop

3.修改环境变量文件

sudo nano ~/.bashrc //打开文件的原始内容

在文件中的末尾加上export PATH=$PATH:/usr/lib/hadoop/bin:/usr/lib/hadoop/sbin

  • 配置文件使其生效

source ~/.bashrc

  • 进入 hadoop 文件目录

cd /usr/lib/hadoop/etc/Hadoop

4.修改 hadoop-env.sh 文件

sudo nano hadoop-env.sh

  • 此时,可以通过java-bose找到自己的路径将这个路径设置到JAVA_Home中

根据查到的地址在文件中进行修改。

5.修改slaves文件

sudo nano slaves

修改后的内容如下

6.修改 core-site.xml 文件

sudo nano core-site.xml

替换成以下内容

<configuration>
<property>

<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/lib/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>

7.修改 hdfs-site.xml 文件

sudo nano hdfs-site.xml

将内容替换为

<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>

<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/lib/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/lib/hadoop/tmp/dfs/data</value>
</property>
</configuration>

8.将mapred-site.xml.template改名为 mapred-site.xml并进行修改。

内容替换成

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>Master:19888</value>
</property>
</configuration>

9.修改 yarn-site.xml 文件

sudo nano yarn-site.xml

将其修改为

<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

10.将改好的文件部署到从节点

  • 把修改后的文件内容压缩成压缩包

cd /usr/lib
tar -zcf ~/hadoop.master.tar.gz ./hadoop

  • 使用 scp 命令进行传输,将修改好的文件传输到 Slave01 和 Slave02的用户文件夹下。

scp -r ~/hadoop.master.tar.gz Slave01:/home/hadoop

scp -r ~/hadoop.master.tar.gz Slave02:/home/hadoop

11.在从节点解压刚刚传输来的文件

在两个子节点分别输入

sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/lib
sudo chown -R hadoop /usr/lib/hadoop

12.在Master节点执行 NameNode 的格式化

hdfs namenode -format

出现Exiting with status 0表明格式化成功

  1. 启动Hadoop程序

当完成初始化后,要进行启动服务

  • 首先先看看目前有什么服务,发现仅有一个服务
  • 在 Master 中启动 dfs

start-dfs.sh

可以看到有三个服务

  • 查看 Slave01 和Slave02服务是否开启成功,可以看到均有两个服务,开启成功。
  • 启动Yarn程序
  • start-yarn.sh

  • 查看 Master 服务是否开启成功

可以看到有4个服务,说明启动成功

  • 切换到 Slave01和Slave02 对应的 putty 界面,查看服务是否开启成功。

均有3个启动起来的服务,说明Slave01和Slave02均开启成功。

13.在Master主机开启 historyserver 服务

mr-jobhistory-daemon.sh start historyserver,可以看到有5个服务,说明启动成功。

14.通过 hdfs dfsadmin -report 查看集群状态

hdfs dfsadmin -report

其中 Live datanodes (2) 表明两个从节点都已正常启动,启动成功。

15.通过web查看集群的一些信息

将复制的公有 IPv4 地址复制到浏览器地址栏后加上:50070打开此页面

将复制的公有 IPv4 地址复制到浏览器地址栏后加上 :8088打开此页面

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

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

相关文章

金蝶云星空表单插件单据体批量删除,序号自增

文章目录 金蝶云星空表单插件单据体批量删除&#xff0c;序号自增字段标识说明表单插件获取单据体数据包移除物料为空的行其他移除物料为空的行的方式&#xff0c;但是测试不通过&#xff0c;不建议使用序号重新生成测试 金蝶云星空表单插件单据体批量删除&#xff0c;序号自增…

Hadoop进阶学习---HDFS分布式文件存储系统

1.hdfs分布式文件存储的特点 分布式存储:一次写入,多次读取 HDFS文件系统可存储超大文件,时效性较差. HDFS基友硬件故障检测和自动快速恢复功能. HDFS为数据存储提供很强的扩展能力. HDFS存储一般为一次写入,多次读取,只支持追加写入,不支持随机修改. HDFS可以在普通廉价的机器…

【新手解答8】深入探索 C 语言:递归与循环的应用

C语言的相关问题解答 写在最前面问题&#xff1a;探索递归与循环在C语言中的应用解析现有代码分析整合循环示例代码修改注意事项结论 延伸&#xff1a;递归和循环的退出条件设置解析使用递归使用循环选择适合的方法 写在最前面 一位粉丝私信交流&#xff0c;回想起了当初的我C…

葡萄酒的储存条件会影响葡萄酒的陈酿吗?

自20世纪末以来&#xff0c;葡萄酒储存有关的行业一直在增长&#xff0c;一些葡萄酒鉴赏家可能会选择将葡萄酒存放在家里的专用房间或壁橱里。 自云仓酒庄品牌雷盛红酒分享总所周知&#xff0c;瓶装葡萄酒的储存条件是会影响葡萄酒的陈酿&#xff0c;振动和热波动会加速葡萄酒的…

室内外融合便携式定位终端5G+UWB+RTK

一、介绍 便携式定位终端主要用于提供高精度的位置数据&#xff0c;支持室内UWB定位和室外北斗系统定位功能&#xff0c;支持5G公网和5G专网通信功能&#xff0c;便携式定位终端中超宽带(UWB)和实时动态(RTK)技术的集成代表了精确位置跟踪方面的重大进步。这款UWBRTK便携式定位…

fastadmin权限树。树形下拉框

fastadmin 笔记 权限树 在构造方法中编写相应的代码 值得一提的是&#xff0c;你的表必须有 id 字段以及 pid 字段。 // 必须将结果集转换为数组$ruleList \think\Db::name("state_list")->field(createtime,updatetime, true)->order(id ASC)->select();…

Vue中使用 v-for 循环遍历对象

Vue中使用 v-for 循环遍历对象 start 经常使用 v-for 去遍历我们的数组&#xff0c;然后渲染页面。其实也可以遍历对象&#xff0c;下面介绍一下遍历对象的写法。 代码示例 <template><div id"app"><div v-for"(value, key) in obj" :k…

【23-24 秋学期】NNDL 作业10 BPTT

习题6-1P 推导RNN反向传播算法BPTT. 习题6-2 推导公式(6.40)和公式(6.41)中的梯度&#xff0e; 习题6-3 当使用公式(6.50)作为循环神经网络的状态更新公式时&#xff0c; 分析其可能存在梯度爆炸的原因并给出解决方法&#xff0e; 习题6-2P 设计简单RNN模型&#xff0c;分别…

VSCode 配置JavaScript环境

首先下载node.js&#xff0c;我的电脑是Windows10版本 之后安装node 在这里插入图片描述 安装成功 如果发现运行的时候还是报错&#xff0c;则添加环境变量试试 在Windows10版本的搜索框&#xff0c;搜索环境变量&#xff0c;点击 D:\Program Files\nodejs\ %NODE_HOME…

ArcGIS平滑处理栅格数据

一、实验背景 基于栅格数据的空间分析&#xff0c;常常需要根据特定的分析场景对栅格数据进行处理&#xff0c;如栅格数据的噪声处理。噪声是属性值具有突跃特征的像元位置&#xff0c;直接对带有噪声的栅格数据进行分析会对结果造成较大的影响。而降噪的主要方法之一是平滑&a…

Vue 生成包含数字大小写字母的随机字符串

generateRandomID() {const characters 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;const idLength 30; // 字符串长度 这里生成30位的let randomID ;for (let i 0; i < idLength; i) {const randomIndex Math.floor(Math.random() * characters…

GitHub Copilot试用指南

GitHub Copilot试用指南 首先读这个文档&#xff0c;按照步骤开启30天的试用&#xff1a;管理个人帐户的 GitHub Copilot 订阅 然后读这个文档&#xff1a;使用 IDE 中的 GitHub Copilot 聊天 &#xff0c;在你习惯使用的IDE中配置copilot&#xff0c;暂时好像只支持jetbrai…

EM32DX-E4【C#】

1外观&#xff1a; ecat总线&#xff0c;分布式io 2电源&#xff1a; 靠近SW拨码&#xff1a;24V 中间&#xff1a;0V 靠近面板&#xff1a;PE接地 3DI&#xff1a; 6000H DI输入寄存器 16-bit &#xff08;16位输入&#xff09; 00H U8 子索引总数 01H Unsigned16 IN1…

YoloV5改进策略:Swift Parameter-free Attention,无参注意力机制,超分模型的完美迁移

摘要 https://arxiv.org/pdf/2311.12770.pdf https://github.com/hongyuanyu/SPAN SPAN是一种超分网络模型。SPAN模型通过使用参数自由的注意力机制来提高SISR的性能。这种注意力机制能够增强重要信息并减少冗余,从而在图像超分辨率过程中提高图像质量。 具体来说,SPAN模…

【Filament】Filament环境搭建

1 前言 Filament 是一个实时物理渲染引擎&#xff0c;用于 Android、iOS、Linux、macOS、Windows 和 WebGL 平台。该引擎旨在提供高效、实时的图形渲染&#xff0c;并被设计为在 Android 平台上尽可能小而尽可能高效。Filament 支持基于物理的渲染&#xff08;PBR&#xff09;&…

CefSharp 获取POST(AJAX)、GET消息返回值(request)

CefSharp作为专门为爬虫工具开发的库比Selenium这种开发目的是页面测试工具然后用来做爬虫的工具要贴心得多。我们操作网页的时候发送或者做了某个动作提交表单之后需要知道我们的动作或者提交是否成功&#xff0c;因为有的页面会因为网络延迟问题提交失败&#xff0c;需要准确…

2022 China Collegiate Programming Contest (CCPC) Guilin Site

A.Lily Problem - A - Codeforces 题意 思路 数所有周围没L的格子 #include <bits/stdc.h>using i64 long long;constexpr int N 2e5 10; constexpr int mod 1e9 7; constexpr int Inf 0x3f3f3f3f; constexpr double eps 1e-10;std::string s;int n;void solv…

Android Edittext进阶版(Textfieids)

一、Text fieids 允许用户在 UI 中输入文本&#xff0c;TextInputLayout TextInputEditText。 在 Text fieids 没出来(我不知道)前&#xff0c;想实现这个功能就需要自己自定义控件来实现这个功能。 几年前做个上面这种样式(filled 填充型)。需要多个控件组合 动画才能实现&a…

数据的力量:Web3 游戏运营指南

在充满活力的 Web3 游戏行业中&#xff0c;市场的起伏不定为开发者带来了挑战和机遇。利用数据的能力对于游戏开发者来说至关重要&#xff0c;能够实时监控游戏内的经济状况并分析玩家行为。这些功能可以帮助项目方获得宝贵的智慧洞察&#xff0c;优化游戏设计&#xff0c;提高…

2022年全国大学生数据分析大赛医药电商销售数据分析求解全过程论文及程序

2022年全国大学生数据分析大赛 医药电商销售数据分析 原题再现&#xff1a; 问题背景   20 世纪 90 年代是电子数据交换时代&#xff0c;中国电子商务开始起步并初见雏形&#xff0c;随后 Web 技术爆炸式成长使电子商务处于蓬勃发展阶段&#xff0c;目前互联网信息碎片化以…