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

🔥博客主页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打开此页面

相关推荐
冬天的风滚草1 小时前
揭秘云原生混布资源调度器Koordinator (十五)GPU 信息采集与上报机制
云计算
冬天的风滚草1 小时前
揭秘云原生混布资源调度器Koordinator (十三)GPU 资源管理总览
云计算
冬天的风滚草1 小时前
揭秘云原生混布资源调度器Koordinator (十四)DeviceShare 调度插件详解
云计算
德彪稳坐倒骑驴3 小时前
Sqoop入门常用命令
数据库·hadoop·sqoop
CodeCaptain5 小时前
阿里云ECS上配置Nginx的反向代理
nginx·阿里云·云计算
俊哥大数据5 小时前
【项目6】基于Hadoop+Hive+Springboot+vue新闻资讯大数据仓库项目
数据仓库·hive·hadoop
俊哥大数据5 小时前
【实战项目4】Hadoop金融信贷大数据离线分析项目
大数据·hadoop·金融
有谁看见我的剑了?13 小时前
VMware OVF Tool 工具安装学习
云计算
故乡de云1 天前
Google Cloud与AWS大数据AI服务对比:2026年企业选型指南
大数据·人工智能·aws
盛夏5201 天前
Docker容器化部署SpringBoot+Vue项目:从零到一在阿里云宝塔面板的实践指南
阿里云·docker·云计算