Hadoop单机模式部署 - CentOS(结尾附视频)

简介: Hadoop单机模式部署 - CentOS(结尾附视频)

一、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版本发布。

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. 安装包下载

本文选择2.9.2版本进行演示,Source为源码,Binary为我们所需要的软件包,点击对应版本的binary进入下载界面。

点击任意一个镜像地址开始下载,直击链接:https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz

三、安装步骤

文本将在CentOS 7系统环境下演示Hadoop的单机模式部署。

1. 前置环境

在配置Hadoop前,需要先配置好JDK,在安装先需要先卸载历史版本,详细的步骤可以参考我的另一篇文章:JDK的解压安装 - CentOS

  • 查询历史版本(如没有可跳过下一步)
rpm -qa|grep java
rpm -qa|grep jdk
  • 卸载历史版本(使用root用户操作)
rpm -e --nodeps 软件包全称(从查询处获得)
  • 解压缩
tar -zvxf jdk-8u251-linux-x64.tar.gz
  • 配置环境变量(以全局为例-root用户操作)
vi /etc/profile
# 在文件结尾添加以下内容
JAVA_HOME=/opt/jdk1.8.0_251
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export JAVA_HOME
export PATH
  • 刷新环境变量
source /etc/profile
  • 使用命令测试
java -version

2. Hadoop安装

对于Hadoop软件,通常会新建一个单独的用户来管理,下面以普通用户hadoop为例来进行操作。

# 新建hadoop用户
useradd hadoop
# 为hadoop用户设置密码
passwd hadoop
# 切换至hadoop用户
su - hadoop
  • 解压缩

使用hadoop用户新建一个会话,上传Hadoop软件包。

tar -zxvf hadoop-2.9.2.tar.gz
  • 配置环境变量(以用户变量为例)
vi ~/.bash_profile
# 在文件结尾添加以下内容
HADOOP_HOME=/home/hadoop/hadoop-2.9.2
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_HOME
export PATH
  • 刷新环境变量
source ~/.bash_profile
  • 使用命令测试
hadoop version

3. 运行WordCount

测试命令成功之后我们还可以运行一个MapReduce小程序来测试一下,相当于Hadoop的“Hello World”。在Hadoop的安装目录中,存放了一些可以直接运行的jar包,对于不同版本,存放路径可能有所差异。在2.9.2版本中,存放路径为:share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar

  • 进入jar包所在路径

  • 准备数据

新建一个纯文本文件,使用空格、换行符来分隔单词,写入一些句子。

touch data.txt
vi data.txt
good good study
day day up
today is a good day

  • 开始计算

使用hadoop jar命令来运行一个jar包,在jar包中可能存在多个可执行的类,目前需要运行的是其中的wordcount。运行时需要两个参数:

  • 输入路径:数据源文件或目录
  • 输出路径:一个还不存在的目录,会自动创建

输入路径就是刚刚创建的data.txt,而输出路径必须是一个不存在路径,每次执行完成后会自动创建该目录,并生成一些结果文件。

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

  • 异常解决

如果在运行过程中出现UnknownHostException: bogon: 未知的名称或服务异常,可以通过在 /etc/hosts 文件中添加本机映射解决。如:本机主机名为hadoop,则修改内容如下(使用root用户操作):

四、视频直达

视频地址:https://www.bilibili.com/video/BV1Mf4y117JQ,喜欢的小伙伴儿一定要三连加关注哦~

Hadoop单机模式部署 - CentOS

写在结尾:作者力求做到将每个知识点细化,并且对于有关联的知识点都会使用传送门挂载链接。文章采用:“文字 + 配图 + 视频”的方式来进行展现,均是挤时间所作,希望看到这里能留下评论点个赞,略表支持!

目录
相关文章
|
3月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
96 2
|
4月前
|
监控 前端开发 Linux
centos7系统安装部署zabbix5.0
【9月更文挑战第23天】在CentOS 7系统上部署Zabbix 5.0的步骤包括:安装MariaDB数据库及必要软件包,配置Zabbix仓库,设置数据库并导入Zabbix数据库架构,配置Zabbix服务器与前端参数,启动相关服务,并通过浏览器访问Web界面完成安装向导。
309 0
|
2月前
|
Oracle 关系型数据库 MySQL
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
|
4月前
|
Oracle Java 关系型数据库
CentOS 7.6操作系统部署JDK实战案例
这篇文章介绍了在CentOS 7.6操作系统上通过多种方式部署JDK的详细步骤,包括使用yum安装openjdk、基于rpm包和二进制包安装Oracle JDK,并提供了配置环境变量的方法。
312 80
|
2月前
|
分布式计算 资源调度 Hadoop
【赵渝强老师】部署Hadoop的本地模式
本文介绍了Hadoop的目录结构及本地模式部署方法,包括解压安装、设置环境变量、配置Hadoop参数等步骤,并通过一个简单的WordCount程序示例,演示了如何在本地模式下运行MapReduce任务。
|
3月前
|
存储 Linux 开发者
虚拟机centos7.9一键部署docker
本文介绍了如何在 CentOS 7.9 虚拟机上安装 Docker 社区版 (Docker-ce-20.10.20)。通过使用阿里云镜像源,利用 `wget` 下载并配置 Docker-ce 的 YUM 仓库文件,然后通过 `yum` 命令完成安装。安装后,通过 `systemctl` 设置 Docker 开机自启并启动 Docker 服务。最后,使用 `docker version` 验证安装成功,并展示了客户端与服务器的版本信息。文中还提供了列出所有可用 Docker-ce 版本的命令。
287 0
虚拟机centos7.9一键部署docker
|
4月前
|
存储 Kubernetes 负载均衡
CentOS 7.9二进制部署K8S 1.28.3+集群实战
本文详细介绍了在CentOS 7.9上通过二进制方式部署Kubernetes 1.28.3+集群的全过程,包括环境准备、组件安装、证书生成、高可用配置以及网络插件部署等关键步骤。
771 4
CentOS 7.9二进制部署K8S 1.28.3+集群实战
|
4月前
|
Kubernetes Linux API
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
该博客文章详细介绍了在CentOS 7.6操作系统上使用kubeadm工具部署kubernetes 1.17.2版本的测试集群的过程,包括主机环境准备、安装Docker、配置kubelet、初始化集群、添加节点、部署网络插件以及配置k8s node节点管理api server服务器。
181 0
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
|
3月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
207 6
|
24天前
|
存储 分布式计算 大数据
Flume+Hadoop:打造你的大数据处理流水线
本文介绍了如何使用Apache Flume采集日志数据并上传至Hadoop分布式文件系统(HDFS)。Flume是一个高可用、可靠的分布式系统,适用于大规模日志数据的采集和传输。文章详细描述了Flume的安装、配置及启动过程,并通过具体示例展示了如何将本地日志数据实时传输到HDFS中。同时,还提供了验证步骤,确保数据成功上传。最后,补充说明了使用文件模式作为channel以避免数据丢失的方法。
60 4