初识hadoop

前言

之前在学校的时候一直就想学习大数据方面的技术,包括hadoop和机器学习啊什么的,但是归根结底就是因为自己太懒了,导致没有坚持多长时间,加上一直为offer做准备,所以当时重心放在C++上面了(虽然C++也没怎么学),计划在大四下有空余时间再来慢慢学习。现在实习了,需要这方面的知识,这对于我来说,除去校招时候投递C++职位有少许影响之外,无疑是有很多的好处。

所以,接下来的很长日子,我学习C++之外的很多时间都必须要花在大数据上面了。

那么首先呢,先来认识一下这处理大数据的hadoop工具了。

简述大数据

大数据(big data),是指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。

大数据的4V特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值)。

大数据的价值体现在以下几个方面:1)对大量消费者提供产品或服务的企业可以利用大数据进行精准营销;2) 做小而美模式的中长尾企业可以利用大数据做服务转型;3) 面临互联网压力之下必须转型的传统企业需要与时俱进充分利用大数据的价值。

什么是Hadoop?

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了处理和计算。

Hadoop的核心架构

Hadoop 由许多元素构成。其最底部是 Hadoop Distributed File System(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS的上一层是MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。

HDFS

对外部客户机而言,HDFS就像一个传统的分级文件系统。它的主要目的是支持以流的形式访问写入的大型文件(PB级别)。可以创建、删除、移动或重命名文件,等等。存储在 HDFS 中的文件被分成块,块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。但是 HDFS 的架构是基于一组特定的节点构建的,这是由它自身的特点决定的。这些节点包括NameNode(仅一个)和DataNode。

NameNode在 HDFS 内部提供元数据服务,它负责管理文件系统名称空间和控制外部客户机的访问。NameNode 决定是否将文件映射到 DataNode 上的复制块上。NameNode 在一个称为 FsImage 的文件中存储所有关于文件系统名称空间的信息。这个文件和一个包含所有事务的记录文件(这里是 EditLog)将存储在 NameNode 的本地文件系统上。FsImage 和 EditLog 文件也需要复制副本,以防文件损坏或 NameNode 系统丢失。

DataNode为 HDFS 提供存储块, 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。DataNode 响应来自 HDFS 客户机的读写请求。它们还响应来自 NameNode 的创建、删除和复制块的命令。NameNode 依赖来自每个 DataNode 的定期心跳(heartbeat)消息。每条消息都包含一个块报告,NameNode 可以根据这个报告验证块映射和其他文件系统元数据。如果 DataNode 不能发送心跳消息,NameNode 将采取修复措施,重新复制在该节点上丢失的块。

MapReduce

最简单的 MapReduce应用程序至少包含 3 个部分:一个 Map 函数、一个 Reduce 函数和一个 main 函数。main 函数将作业控制和文件输入/输出结合起来。在这点上,Hadoop 提供了大量的接口和抽象类,从而为 Hadoop应用程序开发人员提供许多工具,可用于调试和性能度量等。

MapReduce 本身就是用于并行处理大数据集的软件框架。MapReduce 的根源是函数型编程中的 map 和 reduce 函数。它由两个可能包含有许多实例(许多 Map 和 Reduce)的操作组成。Map 函数接受一组数据并将其转换为一个键/值对(key-value)列表,输入域中的每个元素对应一个键/值对。Reduce 函数接受 Map 函数生成的列表,然后根据它们的键缩小键/值对列表(即键相同的键/值对合并在一起形成一个列表形式)。

一个代表客户机在单个主系统上启动的 MapReduce应用程序称为 JobTracker。类似于 NameNode,它是 Hadoop 集群中惟一负责控制 MapReduce应用程序的系统。在应用程序提交之后,将提供包含在 HDFS 中的输入和输出目录。JobTracker 使用文件块信息(物理量和位置)确定如何创建其他 TaskTracker 从属任务。MapReduce应用程序被复制到每个出现输入文件块的节点。将为特定节点上的每个文件块创建一个惟一的从属任务。每个 TaskTracker 将状态和完成信息报告给 JobTracker。

Hadoop有什么优势?

Hadoop是一个能够对大量数据进行分布式处理的软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。

Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。

Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。

Hadoop 还是可伸缩的,能够处理 PB 级数据。

总结如下:

高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。

高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。

转载于:https://www.cnblogs.com/BaiYiShaoNian/p/4769178.html

细细品味大数据--初识hadoop相关推荐

  1. 【快速入门大数据】hadoop和它的hdfs、yarn、mapreduce

    文章目录 导学 大数据概述 初识Hadoop 概述 核心组件 HDFS分布式文件系统 资源调度系统YARN MapReduce 优势 发展史 生态系统 发行版本选择 企业应用案例 第3章 分布式文件系 ...

  2. 《品味大数据》的“魔力”

    本文是一篇书评,原书见https://book.douban.com/subject/26894372/ 大数据这个词时下被炒的热火朝天,作为一个IT行业的在校生,自然免不了对此产生强大的好奇心,在当 ...

  3. 书评:《品味大数据》的“魔力”

       个人写的一篇书评,原书见https://book.douban.com/subject/26894372/ 大数据这个词时下被炒的热火朝天,作为一个IT行业的在校生,自然免不了对此产生强大的好奇 ...

  4. GitChat · 大数据 | 一步一步学习大数据:Hadoop 生态系统与场景

    目录(?)[-] Hadoop概要 Hadoop相关组件介绍 HDFS Yarn Hive HBase Spark Other Tools Hadoop集群硬件和拓扑规划 硬件配置 软件配置 Hado ...

  5. Hadoop专业解决方案-第1章 大数据和Hadoop生态圈

    一.前言: 非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,经过两周的努力,已经有啦初步的成果,目前第1章 大数据和Hadoop生态圈小组已经翻译完成,在此 ...

  6. hadoop 传感器数据_大数据时代Hadoop的本质,你有过认真了解吗?

    ​ ​除非你过去几年一直隐居,远离这个计算机的世界,否则你不可能没有听过Hadoop,全名Apache Hadoop,是一个在通用低成本的硬件上处理存储和大规模并行计算的一个开源框架,Hadoop本质 ...

  7. 大数据与Hadoop有什么关系?大数据Hadoop入门简介

    学习着数据科学与大数据技术专业(简称大数据)的我们,对于"大数据"这个词是再熟悉不过了,而每当我们越去了解大数据就越发现有个词也会一直被提及那就是--Hadoop 那Hadoop与 ...

  8. 大数据之Hadoop学习——动手实战学习MapReduce编程实例

    文章目录 一.MapReduce理论基础 二.Hadoop.Spark学习路线及资源收纳 三.MapReduce编程实例 1.自定义对象序列化 需求分析 报错:Exception in thread ...

  9. 大数据和Hadoop什么关系?为什么大数据要学习Hadoop?

    大数据是一系列技术的统称,经过多年的发展,大数据已经形成了从数据采集.整理.传输.存储.安全.分析.呈现和应用等一系列环节,这些环节涉及到诸多大数据工作岗位,这些工作岗位与物联网.云计算也都有密切的联 ...

最新文章

  1. Android音量控制曲线
  2. MFC 加载并显示图片的四种方法
  3. linux怎么在线安装gcc,Linux 在线安装软件 gcc在线安装的操作方法
  4. 07.用户故事与敏捷方法——优秀用户故事准则笔记
  5. C#中IEnumerableT.Distinct()将指定实体类对象用Lambda表达式实现多条件去重
  6. java 反解析cron_Java解析Cron表达式
  7. 我的Delphi开发经验谈(本人修改版) 收藏
  8. Excel统一将小写的金额转为大写汉字金额的操作
  9. 20分钟让你阅读速度提高3倍
  10. WPF中资源字典引用出错
  11. 一款经典动漫改编的二次元日系角色扮演类手游——航海王热血航线
  12. 2023转型“密码”——中小企业进销存软件
  13. 【CF #781 Div2】A-C
  14. python四则运算器编写_0007 编程入门python语言之四则运算器
  15. 演员选择框三级联动(原生javascript和jquery实现)
  16. centos操作系统简介
  17. oem718d 基准站设置_Novatel诺瓦泰 OEM718D单机测向板卡
  18. matlab没有电力系统模块库,电力系统模块库,power systems blockset,音标,读音,翻译,英文例句,英语词典...
  19. APP拉新项目公司产品项目介绍
  20. 如何攒下理财的第一笔钱

热门文章

  1. 企业ERP制度的“执行力”
  2. vue颜色选择器_如何制作? Vue的颜色选择器!
  3. JavaScript的“ this”通过成立一个高中乐队来解释
  4. 一群算法_树遍历解释:他们就像一群懒惰的学生,试图欺骗他们的考试
  5. PAT(甲级)2020年春季考试 7-4 Replacement Selection
  6. (C++)CSP202009-1 称检测点查询
  7. UI设计要做什么,UI设计培训都要学什么
  8. Interesting visualization tools for profiling.
  9. 小程序代理加盟实现月入1800到50K
  10. html select以数组的方式提交