Hadoop大数据平台(未完,待续)

时间:2023-01-31 04:52:54

Hadoop大数据——
随着计算机技术的发展,互联网的普及,信息的积累已经到了一个非常庞大的地步,信息的增长也在不断的加快。
信息更是爆炸性增长,收集,检索,统计这些信息越发困难,必须使用新的技术来解决这些问题。
大数据由巨型数据组成,这些数据集大小超出人类在可接受时间下的收集,使用,管理和处理能力。
把数据集合并进行分析可得出许多额外的信息和数据关系性,可用来察觉商业趋势,判定研究质量,避免疾病扩散,打击犯罪或测定及时交通路况等,这样的用途正是大型数据集盛行的原因。
从各种各样类型的数据中,快速获得有价值信息的能力,适用于大数据的技术,包括大规模并行处理数据库,数据挖掘电网,分布式文件系统,分布式数据库,云计算平台,互联网,和可扩展的存储系统。



大数据特性——
 数量:TB/EB级,记录/日志,事物,表&文件
 速度:批处理,实时,多进程,数据流
 种类:结构化,非结构化,多因素,概率性
 价值:统计学,事件性,相关性,假设性
 真实性:可信性,真伪性,来源&信誉,有效性,可审计性



大数据与Hadoop——
 Hadoop是一种分析和处理海量数据的软件平台,开源,使用Java开发,可以提供一个分布式基础架构。
 特点:高扩展性,高可靠性,高效性,高容错性,低成本


Hadoop起源——
03年开始,Google陆续发表了几篇论文,GFS,MapReducs,BigTable。
GFS是一个可扩展的分布式文件系统,用于大型的,分布式的,对大量数据进行访问的应用,他运行于廉价的平台硬件上,提供容错功能。
Mapreduce是针对分布式并行计算的一套编程模型,由MAP和reducs组成,,Map是影设,把指令分发到多个worker上去,reducs是规约,把Map的worker计算出来的结果合并。
 bigtable:存储结构化数据,bigtable是建立在GFS,scheduler,lockserver和Mapreduce之上的,每个table都是一个多维的稀疏图。

这三大技术被称为Google的三驾马车,虽然Google没有公布这三个产品的源码,但是他发布了这三个产品的详细设计论文,
Yahoo资助Hadoop按照这三篇论文的开源Java实现,不过在性能上Hadoop比Google要差很多。
 GFS-----> HDFS
 Mapreduce--------> Mapreduce
 bigtable-------> Hbase



Hadoop常用组件——
 hdfs(hadoop分布式文件系统)
 mapreduce(分布式计算框架)
 zookeeper(分布式协作服务)
 hbase(分布式列存数据库)
 hive(基于Hadoop的数据仓库)
 sqoop(数据同步工具)
 pig(基于Hadoop的数据流系统)
 mahout(数据挖倔算法库)
 flume(日志收集工具)


Hadoop核心组件——
 processing:spark,mapreduce(分布式计算框架)
 resource management:yarn(集群资源管理系统)
 storage:hdfs(分布式文件系统)


hdfs角色及概念——
 是Hadoop体中数据存储管理的基础,他是一个高度容错的系统,用于低成本的通用硬件上运行。

角色和概念:
 client---(切分文件,访问hdfs,与namednode交互,获取文件位置信息,与datanode交互,读取和写入数据)
 namenode---(master节点,管理hdfs的名称空间和数据块映射信息,配置副本策略,处理所有客户端请求)
 secondary namenode---(定期合并fsimage和fsedits,推送给namenode,紧急情况下,可辅助恢复namenode,它并非是热备份)
 datanode---(数据存储节点,存储实际的数据,汇报存储信息给namenode)
 block:每块缺省64mb大小,每块可以多个副本



mapreduce结构——

源自Google的mapreduce论文,java实现的分布式计算框架。
 
角色及概念:
  jobtracker--(master节点,只有一个,管理所有作业,任务/作业的监控,错误处理等,将任务分解成一系列任务,并分派给tasktracker)
  tasktracker--(slave节点,一般是多台,运行map task和reduce task,并与jobtracker交互,汇报任务状态)
  map task--(解析每条数据记录,传递给用户编写的map(),并执行,将输出结果写入本地磁盘,如果为map-only作业,直接写入hdfs)
  reducer task--(从map task的执行结果中,远程读取输入数据,对数据进行排序,将数据按照分组传递给用户编写的reduce函数执行)


yarn结构——
yarn是Hadoop的一个通用的资源管理系统,yarn的核心思想是将jobtracker和tasktacker进行分离。
 由下面极大构成组件:
  resourcemanager:一个全局的资源管理器
  nodemanager:每个节点(RM)代理
  applicationmaster:表示每个应用
  每一个applicationmaster有多个container在nodemanager上运行。

yarn角色:
 resourcemanager--(处理客户端请求,启动/监控applicationmaster,监控nodemanager,资源分配与调度)
 nodemanager--(单个节点上的资源管理,处理来自resourcemanager和applicationmaster的命令)
 applicationmaster--(数据切分,为应用程序申请资源,并分配给内部任务,任务监控与容错)
 container--(对任务运行环境的抽象,封装了cpu,内存等,多维资源以及环境变量,启动命令等任务运行相关的信息资源分配与调度)
 client--(用户与yarn交互的客户端程序,提交应用程序,监控应用程序状态,杀死应用程序等)



————————————————————————————————————————————————————————————————————————————————————————————————————————————