1、前言

在讲述Hadoop集群搭建之前,首先要了解Hadoop和集群两个名词,Hadoop是由Apache基金会开发的分布式系统基础架构,简单理解就是大数据技术应用的基础。集群可以理解为多台装有hadoop的服务器。搭建Hadoop集群的目的就是为了管理多台服务器,使多台服务器之间能够协调工作。本文选择了3台阿里云服务器。从下图中可以对整个大数据架构有了大体的了解。

Hadoop主要有HDFS(分布式文件存储系统)、Yarn(集群资源管理与调度)和MapReduce(分布式计算框架)组成。Hadoop集群中分为主机(master)和从机(slave),本文配置一台阿里云服务器为主机和从机。其余两台为从机。HDFS(分布式文件存储系统)在主机上称为Namenode节点,在从机上称为Datanode节点。Namenode维护HDFS的文件系统树以及文件树中所有的文件和文件夹的元数据。可以理解为win系统中文件夹属性中的那些信息,Datanode是存储和检索数据的地方。可以理解为win系统中文件夹中实际数据。

Yarn(集群资源管理与调度)在主机上称为ResourceManager节点,在从机上称为NodeManager。ResourceManager是全局的资源管理器,负责整个系统的资源管理和分配,NodeManager是节点上的资源和任务管理器。定时地向ResourceManager汇报本节点的资源使用情况。

MapReduce(分布式计算框架)顾名思义就是计算框架,有啥特点呢,就是分布式,可以把大型数据处理任务分解成很多单个简单的任务,然后再把各个处理结果合在一起。计算过程可以百度了解。

2、Hadoop集群搭建

2.1 服务器系统设置

网上教程多采用虚拟机创建多个linux系统来搭建Hadoop集群,我觉得虚拟机有弊端就采用了阿里云服务器。阿里云服务器购买选配过程后续再介绍。

1)hosts文件修改

hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“ 数据库 ”。当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从hosts文件中寻找对应的 IP 地址,一旦找到,系统就会立即打开对应网页,如果没有找到,则系统会将网址提交 DNS 域名解析服务器进行 IP 地址的解析。就如你访问本地的时候,你输入127.0.0.1和localhost是一致的。hosts文件修改就是在添加三台服务器IP和域名的映射。

vi /etc/hosts

添加一下映射

172.27.66.8 master
172.27.66.10 slave1
172.27.66.9 slave2

后续访问域名和访问IP的效果是一样的。

按照IP地址修改三台服务器的主机名

hostnamectl set-hostname master
hostnamectl set-hostname slave1
hostnamectl set-hostname slave2

2)SSH免密登录

SSH免密登录是为了各个服务器之间访问不在需要密码。三台服务器分别执行一遍如下命令。执行完该命令会在root/.ssh下生成密钥。

ssh-keygen -t rsa
#在slave1和slave2下分别把id_rsa.pub发送到主机上,并重新命令
scp id_rsa.pub root@master:~/.ssh/id_rsa.pub.slave1
scp id_rsa.pub root@master:~/.ssh/id_rsa.pub.slave2

在主机root/.ssh下把id_rsa.pub、id_rsa.pub.slave1、id_rsa.pub.slave2追加到authorized_keys中。

cat id_rsa.pub >> authorized_keys
cat id_rsa.pub.slave1 >> authorized_keys
cat id_rsa.pub.slave2 >> authorized_keys

然后把authorized_keys传回到slave1和slave2中

scp authorized_keys root@slave1:~/.ssh
scp authorized_keys root@slave2:~/.ssh

最后修改文件权限。

chmod 755 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

2.2 Hadoop安装

hadoop各组件软件下载地址:

清华镜像:https://mirrors.tuna.tsinghua.edu.cn/apache/

  • 各模块配置文件修改

Hadoop的版本为3.2.1,软件包hadoop-3.2.1.tar.gz解压到/usr/local下,

tar -zxvf hadoop-3.2.1.tar.gz

安装完成后进入/usr/local/hadoop-3.2.1/etc/hadoop,修改配置文件为:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml、workers,

#打开文件的命令
vi core-site.xml

core-site.xml在 ----之间添加如下配置,注意修改hadoop.tmp.dir路径(按照自己系统的路径)

<configuration><property><name>fs.default.name</name><value>hdfs://master:9000</value></property><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop-3.2.1/tmp</value></property><property><name>io.file.buffer.size</name><value>131072</value></property>
</configuration>

hdfs-site.xml在 ----之间添加如下配置,注意修改dfs.datanode.data.dir和dfs.namenode.name.dir路径。dfs.replication副本参数。同datanode个数。

<configuration><property><name>dfs.namenode.name.dir</name><value>file:/usr/local/hadoop-3.2.1/hdfs/namenode</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop-3.2.1/hdfs/datanode</value></property><property><name>dfs.replication</name><value>2</value></property><property><name>dfs.permissions</name><value>false</value><description>need not permissions</description></property><property><name>dfs.namenode.http-address</name><value>master:50070</value></property>
</configuration>

yarn-site.xml在 ----之间添加如下配置。

<configuration>
<!-- Site specific YARN configuration properties --><property><name>yarn.resourcemanager.hostname</name><value>master</value></property><property><description>The address of the applications manager interface in the RM.</description><name>yarn.resourcemanager.address</name><value>${yarn.resourcemanager.hostname}:8032</value></property><property><description>The address of the scheduler interface.</description><name>yarn.resourcemanager.scheduler.address</name><value>${yarn.resourcemanager.hostname}:8030</value></property><property><description>The http address of the RM web application.</description><name>yarn.resourcemanager.webapp.address</name><value>${yarn.resourcemanager.hostname}:18088</value></property><property><description>The https adddress of the RM web application.</description><name>yarn.resourcemanager.webapp.https.address</name><value>${yarn.resourcemanager.hostname}:18090</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>${yarn.resourcemanager.hostname}:8031</value></property><property><description>The address of the RM admin interface.</description><name>yarn.resourcemanager.admin.address</name><value>${yarn.resourcemanager.hostname}:8033</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>

mapred-site.xml在 ----之间添加如下配置。

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapred.job.tracker</name><value>master:9001</value></property>
</configuration>

workers下添加如下内容。

slave1
slave2
  • 环境变量设置

hadoop-env.sh、yarn-env.sh两个文件下,添加java的地址,环境变量的目的就是为了便于访问。

export JAVA_HOME=/usr/local/jdk1.8.0_261

2.3 JDK8安装

java的版本为jdk-8u261-linux-x64.tar.gz,解压到/usr/local下

tar -zxvf jdk-8u261-linux-x64.tar.gz -C /usr/local

设置环境变量

vi /etc/profile
#添加如下内容
JAVA_HOME=/usr/local/jdk1.8.0_261
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
#立即生效环境变量
source /etc/profile

2.4 hadoop集群测试

#将主机下配置好的hadoop文件整体发送到两个从机上
scp -r /usr/local/hadoop-3.2.1 root@slave1:/usr/local
scp -r /usr/local/hadoop-3.2.1 root@slave2:/usr/local#添加hadoop的环境变量
export HADOOP_HOME=/usr/local/hadoop-3.2.1
export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop#在主机下格式化namenode
/usr/local/hadoop-3.1.1/bin/hdfs namenode -format
#启动和关闭HDFS
start-dfs.sh
stop-dfs.sh
#启动和关闭yarn
start-yarn.sh
stop-yarn.sh
#启动全部
start-all.sh
stop-all.sh

启动集群后在主机上输入jps显示

在从机上输入jps显示

输入hdfs dfsadmin -report显示

往期精选

牛x!一款比传统数据库查询快近 200 倍的数据库,来看一看?

华为鸿蒙 OS 尝鲜,跑了个 “hello world”!跑通后,我特么开始怀疑人生...

最全面 Mybatis 框架核心配置文件使用总结,值得收藏

如何设计类似 QQ、微信等第三方账号登录 ?(附表结构)

一款免费数据库管理工具,比 Navicat 更好有用,功能更强大,强烈推荐!

Redis如何实现故障自动恢复?浅析哨兵的工作原理

为什么 MySQL 不推荐使用 uuid 或者雪花 id 作为主键?

每天使用 Spring 框架,那你知道 lazy-init 懒加载原理吗?

IntelliJ IDEA 中被低估的功能,利用项目源码一键绘制成 UML 类图

必须了解的mysql三大日志-binlog、redo log和undo log

点个赞,就知道你“在看”!

阿里云 ECS 服务器上如何搭建 Hadoop 集群详细步骤图解相关推荐

  1. 在阿里云ECS服务器上搭建FTP服务

    在阿里云ECS服务器上搭建FTP服务 一.简介 二.环境简介 三.搭建FTP服务器步骤 1.配置ECS服务器的安全组策略 2.服务器安装vsftpd软件 3.修改配置文件 4.启动FTP服务 5.Wi ...

  2. 【计算机系统】如何在阿里云ECS服务器上定时执行Python脚本?

    如何在阿里云ECS服务器上定时执行Python脚本? 喜欢的话请给个关注或者点个赞再走吧,你们的支持是我创作的动力! 拓展链接:ES6精讲教程,一文看懂! 基于SpringBoot天猫商城整站 思路: ...

  3. 阿里云ECS服务器+WordPress快速搭建个人博客

    本文是转载,但完善了一些细节,精简了部分步骤,以及lnmp一键安装后的一些单独服务启动命令. 开始前准备: 一台阿里云ECS或者轻量级的服务器 Linux基础操作 喜欢捣鼓,善于思考 Windows上 ...

  4. DotAsterisk(点星PBX)呼叫中心系统在阿里云ECS服务器上的安装部署

    最近有一项语音呼叫的业务需要将DotAsterisk(点星PBX)部署到阿里云ECS云主机上,正好这段时间发现阿里云做活动,ECS机器购买优惠力度很大,新用户只需要699元就可以购买一台2CPU 4G ...

  5. Navicat连接阿里云ECS服务器上的MySQL容器

    一.首先要mysql授权 Mysql授权可参考http://www.jb51.net/article/42441.htm mysql>GRANT ALL PRIVILEGES ON *.* TO ...

  6. 在阿里云ECS服务器上搭建tomcat

    我购买的ECS安装的是 centos7版本的Linux系统,在网上查了一会资料搞定了,记录一下:  1.远程连接ECS  我用的是window操作系统,每次使用控制台去连接我的ECS显得非常的不方便, ...

  7. 在阿里云ECS服务器上使用NextCloud+Aria2+AriaNg部署下载站

    目录 写在前面 安装Aria2并部署RPC 安装Aria2 RPC配置 设置Aria2c开机自启动 安装AriaNg 安装NextCloud并添加外部存储 安装NextCloud 为NextCloud ...

  8. 使用Navicat连接阿里云ECS服务器上的MySQL数据库

    使用Navicat通过SSH在本地连接远程数据库 1.首先常规设置 2.进行SSH设置 阿里云远程数据库连接成功 三.下面通过PHP代码连接数据库验证是否可以获取数据库数据 <?php head ...

  9. 使用Navicat连接阿里云ECS服务器上安装的MySQL数据库出现 Can‘t connect to MYSQL server on ‘‘(10060) 问题解决

    我在阿里云安全组开放3306端口之后,使用navicat连接数据库依然出现Can't connect to MYSQL server on ''(10060) 问题. 于是使用 firewall-cm ...

最新文章

  1. python自动登录教程_python实现校园网自动登录的示例讲解
  2. SQL——将表中的最大ID+1插入新的ID中------Insert into 表 MAX(表id) +1
  3. SPRING多个占位符配置文件解析源码研究--转
  4. Android控件ActionBar浅析及适配2.x的方法介绍
  5. Remoting简介
  6. word文档打印 自动编码_职场老油条才知道的3个Word打印技巧,一年能节省几百张打印纸!...
  7. java中怎么制作单选框_java代码swing编程 制作一个单选按钮的Frame
  8. Spring获取JavaBean的xml形式和注解形式
  9. 罗永浩带货520鲜花礼盒再翻车:自掏腰包100多万,双倍赔偿
  10. hadoop 传感器数据_晋城大数据培训
  11. 计算机兴趣小组的意义,计算机兴趣小组总结
  12. 在现有集群环境下动态增加(下架)新的节点
  13. 8. vue 的生命周期
  14. 银行卡号 归属地大全
  15. 监控摄像头RTSP低延时无插件直播解决方案
  16. 2022年全国最新消防设施操作员模拟试题题库及答案
  17. Netty面试题(史上最全)
  18. Linux之poll/select/epoll代码示例
  19. 百度真的出了瑞丽算法吗
  20. (14)ROS学习-ROS工作空间覆盖

热门文章

  1. 我的Python分析成长之路9
  2. {__ob__: observer}取值报错问题
  3. uniapp 下拉列表插件 lable问题
  4. 06 体脂率案例优化
  5. “大数据杀熟”?商家对数据的使用可能远超出想象
  6. 个人简历技能特长或爱好计算机,四种适合写进个人简历的特长或爱好
  7. 浏览器的判断和Window系统是64位还是32位的判断
  8. 第四十九篇 复数的概念
  9. RCNN系列论文学习:RCNN、FastRCNN、FaterRCNN、MaskRCNN(包含IOU、NMS介绍)
  10. Python matplotlib绘图,使用鼠标滚轮放大/缩小图像