本地+分布式Hadoop完整搭建过程
1 概述
Hadoop
在大数据技术体系中极为重要,被誉为是改变世界的7个Java项目之一(剩下6个是Junit
、Eclipse
、Spring
、Solr
、HudsonAndJenkins
、Android
),本篇文章以Hadoop 3.3.0
官方文档为基础,首先会介绍Hadoop
相关术语,包括HDFS
,MapReduce
等,接着会完整描述Hadoop
的搭建过程,包括本地以及分布式集群的搭建。
2 术语介绍
Hadoop
:Hadoop
是Apache
开发的分布式系统基础架构,用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储HDFS
:全称Hadoop Distributed File System
,Hadoop
分布式文件系统,被设计成适合运行在通用硬件上的分布式文件系统,具有高度容错性的特点,能提供高吞吐量的数据访问MapReduce
:一个编程模型,用于大规模数据集的并行运算,是面向大数据并行处理的计算模型、架构以及平台。平台指的是允许使用普通商用服务器构成一个包含数十甚至数千个节点的分布和并行计算集群。架构指的是MapReduce
提供了一个庞大但设计精良的并行计算软件框架,能自动完成计算任务的并行化处理,自动划分计算数据和计算任务。模型指的是借助于函数式编程语言的设计思想,提供了一种简便的并行程序设计方法YARN
:YARN
是Hadoop
的一种资源管理器,一个通用的资源管理系统,可以为上层应用提供统一的资源管理以及调度,基本思想是将JobTracker
的两个主要功能(资源管理和作业调度/监控
)分离
3 环境
- 操作环境:
Manjaro 20.0.3
- 虚拟机环境:
VirtualBox 6.1.10
+CentOS-8.2.2004-x86_64-minimal
× 3 Hadoop 3.3.0
(aarch64
+x86_64
)OpenJDK 11
(aarch64
+x86_64
)- 服务器:
CentOS 8
× 3(aarch64
× 1 +x86_64
× 2)
4 Hadoop
部署模式
首先来看一下Hadoop
支持的部署模式,Hadoop
集群搭建支持以下三种模式:
- 本地模式:默认模式,运行在单一Java进程中
- 伪分布模式:运行在一个节点中但是在不同的Java进程中
- 完全分布模式:运行在不同机器上的标准集群模式,利用多台主机部署
Hadoop
5 安装前准备
5.1 Hadoop
官网下载戳这里,本文采用目前最新的3.3.0
版本,注意如果服务器的架构为aarch64
需要下载对应版本。
5.2 JDK
关于JDK
的选择,参考文末的链接:
3.3
版本在运行时支持Java11
,3.2
(包括3.2
)以下只支持Java8
,另外也提到了现在Hadoop
使用OpenJDK
作为构建/测试以及发布的JDK
,因此这里使用OpenJDK11
,戳这里下载,如果服务器架构为aarch64
可以使用yum install
安装。
5.3 虚拟机
虚拟机用的是Virtual Box
,6.1.10
版本。
使用虚拟机是为了模拟搭建集群,就算有真实服务器也建议先在虚拟机上跑一遍大概流程。
5.4 服务器
部署Hadoop
的真实服务器,这里使用了三台服务器进行搭建集群。
6 动手吧!
准备工作做好后就开始动手吧!
由于篇幅略长所以分成了四篇文章方便查看:
7 结语
本文讲述了搭建Hadoop
集群的三种方式,如无意外就可以搭建一个基本的Hadoop
集群了。
但是,一般来说,并不能直接投入生产环境中使用,因为需要配合ZooKeeper
搭建HA(高可用)
集群,本文限于篇幅就不再叙述了。本文的初衷是教会读者如何搭建,至于ZooKeeper
,网上有不少文章可以参考。最后希望读者看完之后能够对Hadoop
有一个大概的认识,了解Hadoop
的组成部分以及基本工作原理。
8 参考
如果觉得文章好看,欢迎点赞。
同时欢迎关注微信公众号:氷泠之路。
本地+分布式Hadoop完整搭建过程的更多相关文章
- Hadoop完整搭建过程(三):完全分布模式(虚拟机)
1 完全分布模式 完全分布模式是比本地模式与伪分布模式更加复杂的模式,真正利用多台Linux主机来进行部署Hadoop,对集群进行规划,使得Hadoop各个模块分别部署在不同的多台机器上,这篇文章介绍 ...
- Hadoop完整搭建过程(二):伪分布模式
1 伪分布模式 伪分布模式是运行在单个节点以及多个Java进程上的模式.相比起本地模式,需要进行更多配置文件的设置以及ssh.YARN相关设置. 2 Hadoop配置文件 修改Hadoop安装目录下的 ...
- Hadoop完整搭建过程(一):本地模式
1 本地模式 本地模式是最简单的模式,所有模块都运行在一个JVM进程中,使用本地文件系统而不是HDFS. 本地模式主要是用于本地开发过程中的运行调试用,下载后的Hadoop不需要设置默认就是本地模式. ...
- Hadoop完整搭建过程(四):完全分布模式(服务器)
1 概述 上一篇文章介绍了如何使用虚拟机搭建集群,到了这篇文章就是实战了,使用真实的三台不同服务器进行Hadoop集群的搭建.具体步骤其实与虚拟机的差不多,但是由于安全组以及端口等等一些列的问题,会与 ...
- 转载——Asp.Net MVC+EF+三层架构的完整搭建过程
转载http://www.cnblogs.com/zzqvq/p/5816091.html Asp.Net MVC+EF+三层架构的完整搭建过程 架构图: 使用的数据库: 一张公司的员工信息表,测试数 ...
- Hadoop2.7.3+Spark2.1.0完全分布式集群搭建过程
1.选取三台服务器(CentOS系统64位) 114.55.246.88 主节点 114.55.246.77 从节点 114.55.246.93 从节点 之后的操作如果是用普通用户操作的话也必须知道r ...
- 大数据之路week06--day07(完全分布式Hadoop的搭建)
前提工作: 克隆2台虚拟机完成后:新的2台虚拟机,请务必依次修改3台虚拟机的ip地址和主机名称[建议三台主机名称依次叫做:master.node1.node2 ] 上一篇博客 (三台虚拟机都要开机) ...
- Hadoop环境搭建过程中遇到的问题以及解决方法
1.启动hadoop之前,ssh免密登录slave主机正常,使用命令start-all.sh启动hadoop时,需要输入slave主机的密码,说明ssh文件权限有问题,需要执行以下操作: 1)进入.s ...
- Asp.Net MVC+EF+三层架构的完整搭建过程
架构图: 使用的数据库: 一张公司的员工信息表,测试数据 解决方案项目设计: 1.新建一个空白解决方案名称为Company 2.在该解决方案下,新建解决方案文件夹(UI,BLL,DAL,Model) ...
随机推荐
- std::unordered_map与std::map
前者查找更快.后者自动排序,并可指定排序方式. 资料参考: https://blog.csdn.net/photon222/article/details/102947597
- Linux下的进程控制块(PCB)
本文转载自Linux下的进程控制块(PCB) 导语 进程在操作系统中都有一个户口,用于表示这个进程.这个户口操作系统被称为PCB(进程控制块),在linux中具体实现是 task_struct数据结构 ...
- 力扣1438. 绝对差不超过限制的最长连续子数组-C语言实现-中等难度
题目 传送门 文本 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit . 如果不存在满足条 ...
- [信号与系统]傅里叶变换、DFT、FFT分析与理解
目录 一.前言 二.傅里叶变换 1.傅里叶级数 2.傅里叶级数系数求解 2.1.求解方法 2.2.三角函数的正交性 2.3.系数求解过程 2.4.关于傅里叶级数的个人感悟 3.引入复指数 4.总结 三 ...
- 腾讯云Centos7.6开放端口及配置腾讯云安全组
1:防火墙的开启.关闭.状态查询.设置开机自启.开机禁用命令 检查状态(1):firewall-cmd --state 检查状态(2):systemctl status firewalld.servi ...
- SpringBoot启动报错 Disconnected from the target VM, address: '127.0.0.1:2227', transport: 'socket'
今天搭建了一个SpringBoot项目,刚启动就报错 Disconnected from the target VM, address: '127.0.0.1:2227', transport: 's ...
- 面试必备——Java多线程与并发(一)
1.进程和线程的 (1)由来 1)串行 最初的计算机只能接受一些特定的指令,用户输入一个指令,计算机就做出一个操作.当用户在思考或者输入时,计算机就在等待.显然这样效率低下,在很多时候,计算机都处在等 ...
- WPF窗口和用户控件事件相互触发
问题1: WPF项目里有一个窗口和一个用户控件,窗口和用户控件里都有一个Button,点击窗口里的Button如何触发用户控件里Button的Click事件 解答: //窗口代码 public par ...
- STL中常用容器及操作 学习笔记1
@[TOC](下面介绍STL中常见的容器及操作)## 不定长数组 vector> vetcor:其实就是一个数组或者说是容器 其操作不同于之前直接定义的数组 > 而且可以直接赋值也可以直接 ...
- docker搭建redis集群和Sentinel,实现故障转移
0.引言 公司开发需要用到redis,虽然有运维自动搭建,还是记录下如何搭建redis集群和Sentinel. 采用的是vagrant虚拟机+docker的方式进行搭建. 搭建思路: 首先是借鉴下其他 ...