启动 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打开此页面

相关推荐
运维&陈同学2 小时前
【zookeeper03】消息队列与微服务之zookeeper集群部署
linux·微服务·zookeeper·云原生·消息队列·云计算·java-zookeeper
云计算DevOps-韩老师3 小时前
【网络云计算】2024第47周-每日【2024/11/21】周考-实操题-RAID6实操解析2
网络·云计算
Lorin 洛林4 小时前
Hadoop 系列 MapReduce:Map、Shuffle、Reduce
大数据·hadoop·mapreduce
dessler5 小时前
云计算&虚拟化-kvm-扩缩容cpu
linux·运维·云计算
学Linux的语莫5 小时前
Ansible Playbook剧本用法
linux·服务器·云计算·ansible
B站计算机毕业设计超人7 小时前
计算机毕业设计SparkStreaming+Kafka旅游推荐系统 旅游景点客流量预测 旅游可视化 旅游大数据 Hive数据仓库 机器学习 深度学习
大数据·数据仓库·hadoop·python·kafka·课程设计·数据可视化
cloud studio AI应用9 小时前
腾讯云 AI 代码助手:产品研发过程的思考和方法论
人工智能·云计算·腾讯云
Yz987611 小时前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
武子康11 小时前
大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结
java·大数据·数据仓库·hive·hadoop·sql·hdfs
武子康11 小时前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql