写点什么

万亿数据下 Hadoop 的核心竞争力

  • 2019-06-20
  • 本文字数:3608 字

    阅读完需:约 12 分钟

万亿数据下 Hadoop 的核心竞争力

1. 前言

在大数据时代,Hadoop 有着得天独厚的优势。然而,每个企业的技术储备和需求特点不同,他们希望从海量的客户数据中挖掘真正的商业价值,像 Google 、Facebook 、Twitter 等这样的企业更是 Hadoop 的最早获益者。那么,今天我们就来聊一聊,万亿数据下 Hadoop 的核心竞争力。

2. 什么是 Hadoop ?

在了解 Hadoop 之前,不得不说的一个名词—— “ 大数据 ” 。大数据是时代发展和技术进步的产物,大数据的特征如下:


  • 庞大的数据容量

  • 结构化、半结构化、非结构化的数据类型

  • 高效的处理速度

  • 高质量的数据



Hadoop 由 Apache 基金会孵化并开源的分布式系统,用户可以在不了解分布式底层设计的情况下,开发分布式应用程序,充分利用集群的优势来进行高速的运算和存储。自从 Hadoop 作为 Apache 基金会开源项目发布以来,它一直备受青睐,这得益于 Hadoop 的可扩展性、低成本、灵活的处理模式等特点。

3. 万亿数据下的难点?

数据量达到万亿规模,这已经是一个很庞大的数据量了。这里难点我们可以分为两种情况,一种是原理上不知道怎么处理,没有具体的实施方案,这个属于技术难题。另一种,虽然有具体的实施方案,也明白其中的原理,但是数据规模太过庞大,这个属于工程上的难点。


数据规模庞大带来的难点主要体现在分布式的要求,因为单个节点不足以在有效的成本和规定的时间内处理完所有的数据。简而言之:


  • 并行化问题:处理数据的应用程序要改造成适合并行的方式;

  • 资源分配管理问题:如何有效的管理提交任务的资源,内存、网络、磁盘等;

  • 容错问题:随着机器数量的增加,可靠性如何保证,例如部分机器硬件出错导致不可用,最终结果的完整性和正确性如何保证。

4. Hadoop 的组成部分有哪些?能做什么?

截止至本篇文章,Hadoop 社区发布了 Hadoop-3.2.0 版本,其核心组成部分包含:基础公共库 ( Common ) 、分布式文件存储系统 ( HDFS ) 、分布式计算框架 ( MapReduce ) 、分布式资源调度与管理系统 ( YARN ) 、分布式对象存储框架 ( OZone ) 、机器学习引擎 ( Submarine ) 。


4.1 Hadoop Common

Hadoop Common 属于基础公共库,它是 Hadoop 最底层的一个模块,为 Hadoop 各个子项目提供各种工具,例如配置文件、操作日志等。

4.2 Hadoop Distributed File System

Hadoop Distributed File System 简称 HDFS,它是 Hadoop 的一个分布式文件系统,类似于 Amazon 的 S3 系统,Google 的 GFS 系统。


HDFS 可以处理分布在集群中的大文件,它通过将文件分成数据块来完成此操作。同时,我们可以并行访问分布式数据 ( 例如,在进行数据处理时 ) ,各个数据节点进行数据交互形成数据块的副本。


4.3 Hadoop YARN

YARN 是 Hadoop 的一个分布式资源管理框架,可以为上层应用提供统一的资源管理与调度。通过引入 YARN,Hadoop 集群在资源利用率、资源统一管理、数据共享等方面带来了巨大的好处。



Client 应用提交任务到 YARN ,流程如下:


  1. Client 发送请求给 RM

  2. ResourceManager ( 简称 RM ) 返回 ApplicationId 给 Client

  3. Client 发送 ApplicationId 、QueueName 、用户等信息给 RM

  4. RM 寻找合适的 Container ,并将 Client 提交的信息给 NodeManager ( 简称 NM )

  5. 然后在 NM 中启动 AM ,RM 给 AM 分配最大最小资源

  6. AM 从 RM 那里获取的可使用资源来申请一些 Container

  7. Job 在 Container 中执行,由 AM 返回任务进度,任务执行完成后,AM 向 RM 发送结束任务信息然后退出

4.4 Hadoop MapReduce

MapReduce 是 Hadoop 的一个分布式计算框架,用来处理海量数据。同时,还可以使用 MapReduce 框架来实现一些算法,例如统计单词频率、数据去重、排序、分组等。

4.5 Hadoop OZone

Ozone 是 Hadoop 的可扩展、冗余和分布式对象存储。除了扩展到数十亿不同大小的对象外,OZone 还能在 Kubernetes 和 YARN 等容器环境中有效发挥作用。


  • 可扩展性:OZone 设计之初能够扩展到数百亿个文件和数据块,并且在将来会扩展到更多;

  • 一致性:OZone 是一个强一致性对象存储,它所使用的协议是类似于 RAFT 来实现的;

  • 云集成:OZone 设计之初能够与 YARN 和 Kubernetes 集成使用;

  • 安全性:OZone 能够与 Kerberos 集成,用于控制访问权限,并支持 TDE 和线上加密;

  • 多协议支持:OZone 能够支持不同的协议,例如 S3、HDFS;

  • 高可用:OZone 是一个多副本系统,用于保证数据高可用性。

4.6 Hadoop Submarine

Submarine 是一个允许基础设施工程师 / 数据科学家在资源管理平台 ( 如 YARN ) 上运行深度学习应用程序 ( Tensorflow ,Pytorch 等 ) 的项目。


  • 在已有集群运行:Submarine 支持在 YARN 、Kubernetes 或者其他类似的调度框架中使用;

  • 支持多种框架:Submarine 支持多种机器学习框架,例如 TensorFlow 、Pytorch 、MxNet 等;

  • 覆盖整个 ML:Submarine 不仅仅是一个机器学习引擎,它涵盖了整个机器学习过程,例如算法开发、模型批量训练、模型增量训练、模型在线服务和模型管理。

5. Hadoop 的核心竞争力在哪?

Hadoop 如此受人喜欢,很大程度上取决于用户对大数据存储、管理和分析需求的迫切。大数据是目前很多企业面临的一个挑战,由于数据量的庞大、数据类型的复杂 ,特别是非结构化或者半结构化的数据远远多于结构化的数据,一些传统的基于关系型数据库的存储和分析难以满足时,且关系型数据库巨大成本压力也是很多企业考虑的问题,而 Hadoop 给人们提供了解决大数据问题的技术手段。


大数据时代需要 Hadoop ,那么 Hadoop 的核心竞争力在哪呢?

5.1 降低大数据成本

Hadoop 使企业可以高效的管理数据,以降低数据成本,其中包含业务成本、硬件成本、人工成本、存储成本等。通过易用性、权威性、时效性等特性,Hadoop 还可以帮助用户增加数据价值。目前 Hadoop 社区的支持,以及各大 Hadoop 厂商的支持,使得 Hadoop 从一个单独的开源软件逐步演变成一个具有一定规模的生态系统,这些厂商包含 Cloudera 、MapR 、Hortonworks 等,他们在这一生态系统中扮演着不同的角色,例如有系统厂商、监控服务商、数据分析商等。


而使用者可以从这些厂商中提供的系统来简化 Hadoop 的学习成本,快速构建符合自身要求的大数据平台,同时合理利用厂商提供的附属组件来开发出高效、易用的的大数据应用。

5.2 成熟的 Hadoop 生态圈

Hadoop 不是一个 “ 孤岛 ” 系统,它拥有成熟的 Hadoop 生态圈。



利用 Hadoop 生态圈设计满足自身需求的方案,需要考虑一些关键要素:


  1. 从需求的最终结果开始分析,而不是从可用的工具开始。例如,可用性、一致性等;

  2. 对数据处理时效性的评估,例如离线任务 ( MapReduce 、Hive ) 、实时任务 ( Flink、Spark Streaming );

  3. 尽可能使用成熟的方案。


案例一:获取最后一小时的热门链接


将热门链接集中收集,使用 Flume 将链接发送到 Kafka ,然后使用 Flink 或者 Spark Streaming 计算引擎在 1 小时的窗口内分析数据,最后将计算后的结果写入到 HBase 进行存储。



案例二:为用户推荐电影


这是一个实时场景,用户喜欢电影,那么用户应立即看到相关电影。


解决思路:每次用户给出评级时,计算建议都是包含权重的,因此我们应该定期根据现有用户行为计算建议。根据对用户行为的理解,可以为给定用户预测所有电影的推荐,然后对其进行排序,并过滤用户已经开过的内容。


组件选取:数据库可以使用 NoSQL 数据库,例如 HBase 。来存储用户评级。计算引擎方面可以选择 Flink 或者 Spark ML 通过 Oozie 定时调度来重新计算用户电影推荐。然后,使用 Flume 和 Spark Streaming 用于流式传输和处理实时用户行为。


工作流程:Web 服务器将用户评级发送给 Flume ,后者将其传递给 Spark Streaming ,然后将结果保存到 HBase 中。接着,使用 Oozie 定时调度执行 Spark ML 应用来重新计算电影推荐并将结果保存到 HBase 中。


6. 是否一定要选择 Hadoop ?

与传统数据库系统相比较,开源的 Hadoop 有自己的优势。尤其是 Hadoop 既能处理关系型数据库中的结构化数据,也能处理视频、音频、图片等非结构化数据。并且 Hadoop 还能够根据数据的规模和问题的复杂度轻松的扩展。那是不是一定要用 Hadoop ?


每个企业都有自己的特殊需求,都有自己的技能栈,如果已经购买了成熟的数据库产品,没有必要舍弃这些产品,要确保对 Hadoop 足够的了解,不要盲目的 “ 跟风 ” 。


然而,Hadoop 是解决大数据的一种技术手段,这个是一个趋势,例如 Hadoop 与 AI 、IoT 等领域的结合使用。了解和掌握 Hadoop 是有所必要的,可以从一些小的项目尝试积累更多经验。


7. 结束语

这篇文章就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以发送邮件给我,我会尽我所能为您解答,与君共勉!

作者介绍:

哥不是小萝莉,知名博主,著有《 Kafka 并不难学 》和《 Hadoop 大数据挖掘从入门到进阶实战 》。


作者博客:


https://www.cnblogs.com/smartloli/


邮箱:smartloli.org@gmail.com


Hadoop 一书,链接:


https://item.jd.com/12371763.html


Kafka 一书,链接:


https://item.jd.com/12455361.html


本文来自 DataFun 社区


原文链接


https://mp.weixin.qq.com/s/6XsPXapbpUFnk26-1S7tjA


2019-06-20 08:005728

评论

发布
暂无评论
发现更多内容

MLOps RNN 卷积神经网络- 吴恩达Andrew Ng 论文等资料汇总 易筋 ARTS 打卡 Week 66

John(易筋)

ARTS 打卡计划

【Flutter 专题】41 图解神秘的 SystemChrome

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

千万级学生管理系统的考试试卷存储方案

michael

#架构实战营

JVM启动参数学习笔记二

风翱

JVM 9月日更

消息队列:发送消息实现

正向成长

RocketMQ

Vue进阶(幺贰贰):ES6 判断是否为空对象

No Silver Bullet

Vue 9月日更

给开发新人的信:学会深思熟虑

baiyutang

9月日更

一个不错的投屏软件

IT蜗壳-Tango

9月日更

Prometheus 2.24.0 新特性

耳东@Erdong

release Prometheus 9月日更

手撸二叉树之二叉树的锯齿形层序遍历

HelloWorld杰少

9月日更

写给互联网工程师的5G书 | 4. RAN详解

俞凡

架构 5G 网络 通信

看直播拿证书 | 12 天,0 基础晋级 Serverless 高手

阿里巴巴云原生

阿里云 Serverless 云原生 直播

每个开发人员都应该知道的 JavaScript Web API

Regan Yue

JavaScript web api 9月日更

linux之lscpu命令

入门小站

Linux

在线将JS/JavaScript-Object转JSON工具

入门小站

工具

手撸二叉树之从中序与后序遍历序列构造二叉树

HelloWorld杰少

9月日更

SpringMVC源码分析-HandlerAdapter(1)-初始化和简单实现

Brave

源码 springmvc 9月日更

消息队列存储消息数据的MySQL表格设计

gawaine

架构师训练

超全面Redis分布式高可用方案:哨兵机制

架构精进之路

redis 后端 引航计划 内容合集

产品分析:解决什么问题?

石云升

产品经理 9月日更

什么是操作型系统

奔向架构师

数据仓库 9月日更

CoroutineWorker

Changing Lin

9月日更

Opus从入门到精通(八)Opus编码基础之压缩编码

轻口味

android 音视频 9月日更

☕【Java 技术指南】「并发编程专题」Fork/Join 框架基本使用和原理探究(原理篇)

洛神灬殇

forkjoin forkjoinpool 9月日更 任务盗取

JavaScript进阶(五)节流

Augus

JavaScript 9月日更

利用 Kotlin 协程提升应用性能

Changing Lin

9月日更

参数校验如何优雅的处理

卢卡多多

参数校验 9月日更

Linux创建/删除新用户

在即

9月日更

穿越时空,跟我一起探索云栖数字谷

阿里巴巴云原生

云栖大会

Canvas API 的基本用法

devpoint

html5 canvas 9月日更

详细讲解服务幂等性设计

架构精进之路

后端 幂等性 引航计划 内容合集

万亿数据下 Hadoop 的核心竞争力_大数据_DataFunTalk_InfoQ精选文章