Hadoop 3.x各模式部署 - Ubuntu(上)

简介: Hadoop 3.x各模式部署 - Ubuntu

一、Hadoop介绍

Hadoop软件库是一个计算框架,可以使用简单的编程模型以集群的方式对大型数据集进行分布式处理。

1. Hadoop发展史及生态圈

  • Hadoop起源于Apache Nutch项目,始于2002年,是Apache Lucene的子项目之一。
  • 2006年2月,成为一套完整而独立的软件,并被命名为Hadoop
  • 2008年1月,Hadoop成为Apache顶级项目。
  • 2009年7月,MapReduceHDFS成为Hadoop的独立子项目。
  • 2010年5月,Avro脱离Hadoop项目,成为Apache顶级项目。
  • 2010年5月,HBase脱离Hadoop项目,成为Apache顶级项目。
  • 2010年9月,Hive脱离Hadoop项目,成为Apache顶级项目。
  • 2010年9月,Pig脱离Hadoop项目,成为Apache顶级项目。
  • 2011年1月,Zookeeper脱离Hadoop项目,成为Apache顶级项目。
  • 2011年12月,Hadoop 1.0.0版本发布。
  • 2012年10月,Impala加入Hadoop生态圈。
  • 2013年10月,Hadoop 2.0.0版本发布。
  • 2014年2月,Spark成为Apache顶级项目。
  • 2017年12月,Hadoop 3.0.0版本发布。
  • 2023年3月,Hadoop 3.3.5版本发布。

2. Hadoop核心功能及优势

  • 分布式存储系统:HDFS

HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的简称,是Hadoop生态系统中的核心项目之一,也是分布式计算中数据存储管理的基础。

  • 分布式计算框架:MR

MapReduce是一种计算模型,核心思想就是“分而治之”,可以用于TB级的大规模并行计算。Map阶段处理后形成键值对形式的中间结果;Reduce对中间结果相同的“键”对应的“值”进行处理,得到最终结果。

  • 资源管理平台:YARN

YARN(Yet Another Resource Negotiator)是Hadoop的资源管理器,可以为上层应用提供统一的资源管理和调度,为集群的资源利用率、统一管理、数据共享等方面提供了便利。

  • 高扩展

Hadoop是一个高度可扩展的存储平台,可以存储和分发超数百个并行操作的廉价的服务器集群。能够打破传统的关系数据库无法处理大量数据的限制,Hadoop能够提供TB级别数据的运算能力。

  • 成本低

Hadoop可以将廉价的机器组成服务器集群来分发处理数据,成本较低,学习者及普通用户也能够很方便的在自己的PC上部署Hadoop环境。

  • 高效率

Hadoop能够并发的处理数据任务,并且能够在不同的节点之间移动数据,可以保证各个节点的动态平衡。

  • 容错性

Hadoop可以自动维护多份数据的副本,如果计算任务失败,Hadoop能够针对失败的节点重新处理。

3. 部署方式介绍

  • 单机模式

单机模式是一个最简的安装模式,因为Hadoop本身是基于Java编写的,所以只要配置好Java的环境变量就可以运行了。在这种部署方式中我们不需要修改任何的配置文件,也不需要启动任何的服务,只需要解压缩、配置环境变量

虽然配置很简单,但是能做的事情也是很少的。因为没有各种守护进程,所以分布式数据存储以及资源调度等等服务都是不能使用的,但是我们可以很方便的测试MapReduce程序

  • 伪分布模式

伪分布模式是学习阶段最常用的模式,可以将进程都运行在同一台机器上。在这种模式下,可以模拟全分布模式下的运行状态,基本上可以完成全分布模式下的所有操作,伪分布模式是全分布模式的一个特例。

  • 全分布模式

在全分布模式下,会在配置文件中体现出主节点与分节点,可以指定哪些机器上运行哪些服务以达到的成本与效率的平衡。在企业中主要采用的都是全分布式模式,节点从数十个到上百个不等。在学习阶段,如果个人PC的性能足够强劲,也可以使用多台虚拟机代替。

二、Hadoop下载

1. 下载地址

在百度中搜索Hadoop,前两条就会显示我们需要的网站,目前Hadoop属于Apache基金会,所以我们打开网址时注意一下是apache.org

进入后来到Hadoop的官网,点击Download就可以打开下载界面:https://hadoop.apache.org/releases.html

2. 版本选择

现在我们使用的是开源社区版,目前的主流版本为2.x.y3.x.y

在选择Hadoop的版本时,我们应该考虑到与其他生态圈软件的兼容问题。通常的组建方式有两种:

  • 根据各组件的兼容性要求手动选择版本并搭建
  • 使用CDH(Cloudera’s Distribution Including Apache Hadoop)自动选择版本并解决兼容问题

在学习阶段,由于进行的操作比较简单,不需要特别的在意版本的兼容问题,但是建议两种方式大家都能够去进行了解和实践。

3. 安装包下载

目前的3.x版本中已经支持了对于不同系统架构的支持,但是对于安装过程和使用都无影响,本文以3.3.5为例。source为软件源码,binary为所需,根据系统架构点击链接进入:

点击任意一个镜像地址开始下载,直击链接:

可以直接使用wget命令下载到Linux系统。

三、前置环境

Hadoop的运行需要Java环境,先确保已经正确安装配置JDK。

1. 检查已有JDK环境

可以使用java -version来验证已经安装的版本,也可以使用以下命令:

update-java-alternatives --list

使用该命令时需要预先安装java-common:sudo apt install java-common

2. 卸载不需要的版本

如果已经安装的版本不是所需要的,可以先进行卸载,软件名称就是上文中查询到的。

sudo apt remove java-1.8.0-openjdk-arm64

3. 安装对应版本的JDK

JDK 1.8版本基本可以和所有的大数据生态圈组件很好的兼容,如果需要也可以换成其它版本,建议提前确认好版本兼容性。

sudo apt install openjdk-8-jdk

安装完成后可以使用java -version命令进行验证。

4. 创建Hadoop用户

使用大数据生态圈组件,建议创建一个单独的用户,如:hadoop。

sudo adduser hadoop

可以将hadoop用户添加到sudo组,使其拥有更高的权限:

sudo usermod -aG sudo hadoop

修改Hadoop软件压缩包的所属为hadoop:

sudo chown hadoop:hadoop hadoop-3.3.5-aarch64.tar.gz

移动软件包至hadoop用户家目录,并切换到hadoop用户:

sudo mv ~/Software/hadoop-3.3.5-aarch64.tar.gz /home/hadoop/
su - hadoop

四、本地模式

Hadoop的本地模式即不需要启动任务服务进程,仅仅通过携带的软件环境运行计算任务,可以方便的进行程序测试。

1. 解压安装

  • 解压缩
tar -zvxf hadoop-3.3.5-aarch64.tar.gz
  • 环境变量配置

由于使用的是apt安装的JDK,系统当中并没有配置JAVA_HOME变量,可以通过上文提到的命令查看安装位置。

编辑家目录下的.bashrc文件,可在文件结尾写入以下内容:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/home/hadoop/hadoop-3.3.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  • 刷新测试

配置完成后使其立即生效,并通过hadoop命令进行测试:

source ~/.bashrc
hadoop version

2. 运行测试

Hadoop本身自带了一个案例jar包,可以让我们直接执行一个Hello World,路径为share/hadoop/mapreduce

  • 测试数据准备

新建一个txt文件,注意保存的路径【可以直接在jar包所在路径下创建】,读取时需要用到。

touch data.txt
vi data.txt
# 在文件中写入以下内容
good good study
day day up
today is a good day
  • 运行计算任务
  • wordcount:jar包中自带的一个可执行类
  • data.txt:数据输入文件路径
  • output:结果输出文件夹名称【需要指定一个还不存在的目录】

进入到example的jar包所在路径,执行以下命令:

hadoop jar hadoop-mapreduce-examples-3.3.5.jar wordcount data.txt output

目录
相关文章
|
4月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
241 6
|
4月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
111 2
|
4月前
|
Ubuntu 测试技术 网络安全
Ubuntu系统下部署flatpress轻量级博客系统
【10月更文挑战第3天】Ubuntu系统下部署flatpress轻量级博客系统
78 3
Ubuntu系统下部署flatpress轻量级博客系统
|
3月前
|
分布式计算 资源调度 Hadoop
【赵渝强老师】部署Hadoop的本地模式
本文介绍了Hadoop的目录结构及本地模式部署方法,包括解压安装、设置环境变量、配置Hadoop参数等步骤,并通过一个简单的WordCount程序示例,演示了如何在本地模式下运行MapReduce任务。
|
4月前
|
SQL 存储 数据管理
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
87 2
|
4月前
|
Ubuntu API Python
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
119 1
|
4月前
|
Kubernetes 网络安全 容器
基于Ubuntu-22.04安装K8s-v1.28.2实验(一)部署K8s
基于Ubuntu-22.04安装K8s-v1.28.2实验(一)部署K8s
477 2
|
5月前
|
Ubuntu 开发工具 git
在Ubuntu上部署BOA服务器的步骤
部署BOA服务器是一个涉及多个步骤的过程,包括系统更新、安装依赖、下载和编译源代码、配置服务器以及启动和验证。遵循上述步骤,可以在Ubuntu系统上成功部署BOA服务器,为开发和测试提供一个轻量级的Web服务器环境。
141 0
|
2月前
|
存储 分布式计算 大数据
Flume+Hadoop:打造你的大数据处理流水线
本文介绍了如何使用Apache Flume采集日志数据并上传至Hadoop分布式文件系统(HDFS)。Flume是一个高可用、可靠的分布式系统,适用于大规模日志数据的采集和传输。文章详细描述了Flume的安装、配置及启动过程,并通过具体示例展示了如何将本地日志数据实时传输到HDFS中。同时,还提供了验证步骤,确保数据成功上传。最后,补充说明了使用文件模式作为channel以避免数据丢失的方法。
86 4
|
3月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
190 2