前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >hadoop(1):hadoop概述

hadoop(1):hadoop概述

作者头像
dodo_lihao
发布2018-09-12 10:32:22
1K0
发布2018-09-12 10:32:22
举报
文章被收录于专栏:懒人开发

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的输出,保存在文件中
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.12.31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • hadoop概述
  • hadoop的场景
  • Hadoop核心
  • hdfs相关
  • yarn Architecture构架图
  • hadoop核心 MapReduce
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档