hadoop(1):hadoop概述


hadoop概述

hadoop是 Doug CuttingLucene 之后的一个项目 主要用于 计算 是一个 开源,可靠,可扩展 的分布式计算框架 主要有

  • hdfs
    • 也就是 hadoop 的 dfs(Distributed File System)
  • MapReduce
    • 也就是核心想法(先Map,再reduce)
    • java8 里面也看见对应的方法,感觉如果数据量小,现在用别的也可以实现,只是时间会长很多
  • yarn
    • 分布式资源调度

当然,hadoop1 和 hadoop2 的一些名词有变化 但是,对应的实现,是没有太大区别的 好处是,可以多台机器同时处理,通过心跳去及时获取计算结果


hadoop的场景

一般可以用于

  • 日志分析
  • 海量数据的计算
  • 复杂算法
  • 搜索引擎
  • dsp获取的个人数据以及为行为分析提供数据

对应的hadoop生态圈

hadoop生态图

  • Zookeeper
    • 分布式协作服务
  • HBase
    • 一个实时的nosql
    • sql(关系型数据库) 和 nosql(非关系型数据库)
      • mysql, Oracle、SQLServer、DB2 都是关系型数据库(当数据量不是太大的时候,有又是)
      • MongoDB(很常见的nosql), Redis(很常见的内存数据库),Vertica(很少人用,原来公司用过,很强大),HBase
  • Hive
    • 数据仓库
    • 存储数据用
  • Pig
    • 数据流处理
  • Mahout
    • 数据挖掘库
    • 哎,超级难
    • 感觉数学要好,算法要好
  • MapReduce
    • 计算的核心
  • HDFS
    • hadoop的 dfs(Distributed File System)分布式文件系统
    • 感觉记住几个命令就行了
  • Flume
    • 日志收集
  • Sqoop
    • 数据库ETL,转换数据(Hive -> HBase, HBase -> Hive 等)
    • 没了解过

Hadoop核心

Hadoop Common

  • 很多项目都有common模块
  • 常用的基础,都放在里面 Hadoop HDFS
  • hadoop的 dfs(Distributed File System)分布式文件系统 Hadoop MapReduce
  • 分布式离线并行计算框架
  • 也就是核心想法(先Map,再reduce) Hadoop YARN
  • 新的MapReduce框架, 任务调度,资源管理

hdfs相关

namenode

  • Metadata存储一些信息
    • 比如, name名字, replicas备份数,路径等等
    • 记得,android的apk也有META-INF, html一般头部也有 meta 信息
  • 分开块处理信息
    • hadoop2, 默认128m一个块
    • hadoop1, 默认64m一个块

datanode

  • 存储信息
  • namenode分块后,信息分别会存储在datanode中

secondnamenode

  • namenode的副手吧
  • 最好和namenode不在一个服务器上,当namenode倒掉后,secondnamenode会跟上

yarn Architecture构架图

yarn (Yet Another Resource Negotiator,另一种资源协调者) 整个集群的资源调度,同时监控 比如,一个任务需要的cpu,内存等 这里ResourceManager是总的管理者,所有nodemanager的都由它管理 nodemanager一般都在不同的机器上

一般流程

  • client 给 ResourceManager 一个请求
  • 会转换成一个Task(上图有, MapTask, ReduceTask,MPI Task)
  • Task会交给AppMaster,创建一个进程,获取信息,做对应的操作
  • 同时, AppMaster会给 ResourceManager 对应的信息返回,告诉需要的资源
  • ResourceManager 会根据对应的情况,分配资源
  • 外部所有的Container,由AppMaster统一管理

hadoop核心 MapReduce

Map任务

  • 读取输入内存, 解析成 key,value 键值对
  • 重写map方法, 编写业务输出的key, value
  • 对 key,value 进行分区 (Partitioner类)
  • 将键值对排序,分组。相同key放入同一个集合

Reduce任务

  • 多个map输入, 按照不同的分区,copy到不同的 reduce节点
  • 对多个map任务进行合并,排序。根据逻辑,得到新的 key,value输出
  • 把reduce的输出,保存在文件中

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

简谈Spark Streaming的实时计算整合

基于Spark通用计算平台,可以很好地扩展各种计算类型的应用,尤其是Spark提供了内建的计算库支持,像Spark Streaming、Spark SQL、ML...

39980
来自专栏Python小屋

Python大数据处理扩展库pySpark用法精要

Spark是一个开源的、通用的并行计算与分布式计算框架,其活跃度在Apache基金会所有开源项目中排第三位,最大特点是基于内存计算,适合迭代计算,兼容多种应用场...

46160
来自专栏Albert陈凯

Spark系列课程-00xxSpark RDD持久化

我们这节课讲一下RDD的持久化 ? RDD的持久化 这段代码我们上午已经看过了,有瑕疵大家看出来了吗? 有什么瑕疵啊? 大家是否还记得我在第二节课的时候跟大...

41980
来自专栏岑玉海

Spark Streaming编程指南

Overview Spark Streaming属于Spark的核心api,它支持高吞吐量、支持容错的实时流数据处理。 它可以接受来自Kafka, Flume,...

76050
来自专栏Albert陈凯

4.3 RDD操作

4.3 RDD操作 RDD提供了一个抽象的分布式数据架构,我们不必担心底层数据的分布式特性,而应用逻辑可以表达为一系列转换处理。 通常应用逻辑是以一系列转换(...

28870
来自专栏xingoo, 一个梦想做发明家的程序员

Structured Streaming教程(1) —— 基本概念与使用

在有过1.6的streaming和2.x的streaming开发体验之后,再来使用Structured Streaming会有一种完全不同的体验,尤其是在代码设...

16710
来自专栏知识分享

串口通信DMA中断

这是以前学32的时候写的,那时候学了32之后感觉32真是太强大了,比51强的没影。关于dma网上有许多的资料,亲们搜搜,这里只贴代码了,其实我也想详详细细地叙述...

33370
来自专栏蓝天

强制DataNode向NameNode上报blocks

正常情况下,什么时候上报blocks,是由NameNode通过回复心跳响应的方式触发的。 一次机房搬迁中,原机房hadoop版本为2.7.2,新机房版本为2....

15220
来自专栏祝威廉

Spark 2.0 Structured Streaming 分析

Spark 2.0 将流式计算也统一到DataFrame里去了,提出了Structured Streaming的概念,将数据源映射为一张无线长度的表,同时将流式...

17230
来自专栏about云

spark入门基础知识常见问答整理

一. Spark基础知识 1.Spark是什么? UCBerkeley AMPlab所开源的类HadoopMapReduce的通用的并行计算框架 dfsSpa...

378100

扫码关注云+社区

领取腾讯云代金券