@zhangyy
2019-12-10T16:02:13.000000Z
字数 2964
阅读 154
hadoop的部分
- 一. 大数据的应用场景
- 二. hadoop 2.x 概述
- 三. hadoop 2.x 的生态系统
1.1 2015 大数据峰会:
过去7年我们从互联网创业到互联网产业,很快进入互联网经济,
而且正在从IT走向DT时代,也许昨天称为IT领袖峰会,未来要称DT领袖峰会,
DT不仅仅 是技术提升,而是思想观念的提升。
DT和IT时代区别,IT以我为中心,DT以别人为中心,DT要让企业越来越强大,
让你员工强大。DT越来越讲究开放、透明。
我们所有企业都要思考什么样的文化、什么样的组织、
什么样的人才才能适应未来DT时代,相信整个DT时代到来,在海外这被称为D经济。
1.2 大数据hadoop的应用
大数据应用分析
1)统计
2)推荐
3)机器学习
4)人工智能,预测(算法)
SQL on Hadoop
1)Hive
2)Prestore
3)Impala
4)Phoneix(基于HBase)
5)Spark SQL
大数据的特征(4V+1O):
数据量大(Volume)。第一个特征是数据量大,包括采集、存储和计算的量都非常大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。
类型繁多(Variety)。第二个特征是种类和来源多样化。包括结构化、半结构化和非结构化数据,具体表现为网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求。
价值密度低(Value)。第三个特征是数据价值密度相对较低,或者说是浪里淘沙却又弥足珍贵。随着互联网以及物联网的广泛应用,信息感知无处不在,信息海量,但价值密度较低,如何结合业务逻辑并通过强大的机器算法来挖掘数据价值,是大数据时代最需要解决的问题。
速度快时效高(Velocity)。第四个特征数据增长速度快,处理速度也快,时效性要求高。比如搜索引擎要求几分钟前的新闻能够被用户查询到,个性化推荐算法尽可能要求实时完成推荐。这是大数据区别于传统数据挖掘的显著特征。
数据是在线的(Online)。数据是永远在线的,是随时能调用和计算的,这是大数据区别于传统数据最大的特征。现在我们所谈到的大数据不仅仅是大,更重要的是数据变的在线了,这是互联网高速发展背景下的特点。比如,对于打车工具,客户的数据和出租司机数据都是实时在线的,这样的数据才有意义。如果是放在磁盘中而且是离线的,这些数据远远不如在线的商业价值大。
2.1 hadoop 包含的四大模块
Hadoop Common:
为其他Hadoop模块提供基础设施。
Hadoop HDFS:
一个高可靠、高吞吐量的分布式文件系统
Hadoop MapReduce:
一个分布式的离线并行计算框架
Hadoop YARN:
一个新的MapReduce框架,任务调度与资源管理
2.2 apache hadoop 的起源
Apache Lucene:
开源的高性能全文检索工具包
Apache Nutch:
开源的 Web 搜索引擎
Google 三大论文:
MapReduce / GFS / BigTable
Apache Hadoop:
大规模数据处理
2.3 HDFS 系统架构图
HDFS 服务功能
NameNode
主节点,存储文件的元数据如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在DataNode等。
DataNode
在本地文件系统存储文件块数据,以及块数据的校验和。
Secondary NameNode
用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照
YARN 服务功能
ResourceManager
处理客户端请求
启动/监控ApplicationMaster
监控NodeManager
资源分配与调度
NodeManager
单个节点上的资源管理
处理来自ResourceManager的命令
处理来自ApplicationMaster的命令
ApplicationMaster
数据切分
为应用程序申请资源,并分配给内部任务
任务监控与容错
Container
对任务运行环境的抽象,封装了CPU内存等多维资源以及环境变量、启动命令等任务运 行相关的信息.
离线计算框架 MapReduce
一: 将计算过程分为两个阶段,map和reduce
map 阶段并行处理输入数据
reduce 阶段对map 结果进行汇总。
二:shuffle 连接map 和Reduce 两个阶段
map task 将数据写到本地磁盘
reduce task 从每个map TASK 上读取一份数据
三: 仅适合 离线批处理
具有很好的容错性和扩展性
适合简单的批处理任务
四: 缺点明显
启动开销大,过多使用磁盘导致效率底下等。
2.5 MapReduce on YARN
1)用户向YARN中提交应用程序/作业,其中包括ApplicaitonMaster程序、启动ApplicationMaster的命令、用户程序等;
2)ResourceManager为作业分配第一个Container,并与对应的NodeManager通信,要求它在这个Containter中启动该作业的ApplicationMaster;
3)ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManager查询作业的运行状态;然后它将为各个任务申请资源并监控任务的运行状态,直到运行结束。即重复步骤4-7;
4)ApplicationMaster采用轮询的方式通过RPC请求向ResourceManager申请和领取资源;
5)一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务;
6)NodeManager启动任务;
7)各个任务通过RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicaitonMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务;
在作业运行过程中,用户可随时通过RPC向ApplicationMaster查询作业当前运行状态;
8)作业完成后,ApplicationMaster向ResourceManager注销并关闭自己;
数据抓取系统 - Nutch
海量数据怎么存,当然是用分布式文件系统 - HDFS
数据怎么用呢,分析,处理
MapReduce框架,让你编写代码来实现对大数据的分析工作
非结构化数据(日志)收集处理 - fuse,webdav, chukwa, flume, Scribe
数据导入到HDFS中,至此RDBSM也可以加入HDFS的狂欢了 - Hiho, sqoop
MapReduce太麻烦,好吧,让你用熟悉的方式来操作Hadoop里的数据 – Pig, Hive, Jaql
让你的数据可见 - drilldown, Intellicus
用高级语言管理你的任务流 – oozie, Cascading
Hadoop当然也有自己的监控管理工具 – Hue, karmasphere, eclipse plugin, cacti, ganglia
数据序列化处理与任务调度 – Avro, Zookeeper
更多构建在Hadoop上层的服务 – Mahout, Elastic map Reduce
OLTP存储系统 – Hbase