【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
Hadoop生态系统的特点:
源代码开源(免费)
社区活跃、参与者众多
涉及分布式存储和计算的方方面面
已得到企业界验证
Hadoop1.0和2.0:
Hadoop概述:
分布式存储系统HDFS(Hadoop Distributed File System)
分布式存储系统
提供了高可靠性、高扩展性和高吞吐率的数据存储服务
资源管理系统YARN(Yet Another Resource Negotiator)
负责集群资源的统一管理和调度
分布式计算框架MapReduce
分布式计算框架
具有易于编程、高容错性和高扩展性等优点
Hadoop2.0层级关系:
Hadoop构成 :HDFS 分布式文件存储
源自于Google的GFS论文
发表于2003年10月
HDFS是GFS克隆版
HDFS特点
良好的扩展性
高容错性
适合PB级以上海量数据的存储
基本原理
将文件切分成等大的数据块,存储到多台机器上
将数据切分、容错、负载均衡等功能透明化
可将HDFS看成一个容量巨大、具有高容错性的磁盘
应用场景
海量数据的可靠性存储
数据归档
Hadoop构成 :YARN(资源管理系统)
YARN是什么
Hadoop 2.0新增系统
负责集群的资源管理和调度
使得多种计算框架可以运行在一个集群中
YARN的特点
良好的扩展性、高可用性
对多种类型的应用程序进行统一管理和调度
自带了多种多用户调度器,适合共享集群环境
Hadoop构成 :MapReduce(分布式计算框架)
源自于Google的MapReduce论文
发表于2004年12月
Hadoop MapReduce是Google MapReduce克隆版
MapReduce特点
良好的扩展性
高容错性
适合PB级以上海量数据的离线处理
Hadoop生态系统介绍:1.0时代
Hadoop生态系统介绍:2.0时代
Hadoop生态系统:Hive(基于MR的数据仓库)
由facebook开源,最初用于解决海量结构化的日志数据统计问题;
ETL(Extraction-Transformation-Loading)工具
构建在Hadoop之上的数据仓库;
数据计算使用MR,数据存储使用HDFS
Hive 定义了一种类 SQL 查询语言——HQL;
类似SQL,但不完全相同
通常用于进行离线数据处理(采用MapReduce);
可认为是一个HQLMR的语言翻译器。
日志分析
统计网站一个时间段内的pv、uv
多维度数据分析
大部分互联网公司使用Hive进行日志分析,包括百度、淘宝等
其他场景
海量结构化数据离线分析
低成本进行数据分析(不直接编写MR)
Hadoop生态系统:Pig
由yahoo !开源,设计动机是提供一种基于MapReduce的数据分析工具
构建在Hadoop之上的数据仓库
定义了一种数据流语言——Pig Latin
通常用于进行离线分析
Hadoop生态系统:wordcount比较 mapreduce
Hadoop生态系统:wordcount比较 hive
Hadoop生态系统:wordcount比较 pig
Hadoop生态系统:Mahout(数据挖掘库)
基于Hadoop的机器学习和数据挖掘的分布式计算框架
实现了三大类算法
推荐(Recommendation)
聚类(Clustering)
分类(Classification)
Hadoop生态系统:HBase(分布式数据库)
源自Google的Bigtable论文
发表于2006年11月
HBase是Google Bigtable克隆版
HBase特点
高可靠性
高性能
面向列
良好的扩展性
Hadoop生态系统:HBase数据模型
Table:表
类似于传统传统数据库中的表
Column Family:列簇
Table在水平方向有一个或者多个Column Family组成
一个Column Family中可以由任意多个Column组成
Row Key: 行键
Table的主键
Table中的记录按照Row Key排序
Timestamp: 时间戳
每行数据均对应一个时间戳
版本号
Hadoop生态系统:HBase架构
Hadoop生态系统:Zookeeper(分布式协作服务)
源自Google的Chubby论文
发表于2006年11月
Zookeeper是Chubby克隆版纳
解决分布式环境下数据管理问题
统一命名
状态同步
集群管理
配置同步
Hadoop生态系统:Zookeeper 角色及应用
HDFS
YARN
Storm
HBase
Flume
Dubbo(阿里巴巴)
Metaq(阿里巴巴)
Hadoop生态系统:Sqoop(数据同步工具)
连接Hadoop与传统数据库之间的桥梁
支持多种数据库,包括MySQL、DB2等
插拔式,用户可根据需要支持新的数据库
本质上是一个MapReduce程序
充分利用了MR分布式并行的特点
充分利用MR容错性
Hadoop生态系统:Flume(日志收集工具)
Cloudera开源的日志收集系统
Flume特点
分布式
高可靠性
高容错性
易于定制与扩展
Hadoop生态系统:Oozie(作业流调度系统)
目前计算框架和作业类型繁多:
MapReduce Java、Streaming、HQL、Pig等
如何对这些框架和作业进行统一管理和调度:
不同作业之间存在依赖关系(DAG);
周期性作业
定时执行的作业
作业执行状态监控与报警(发邮件、短信等)
多种解决方案:
Linux Crontab
自己设计调度系统(淘宝等公司)
直接使用开源系统(Oozie)
Hadoop版本:发行版介绍
Apache Hadoop
推荐使用最新的2.x.x版本
下载地址:http://hadoop.apache.org
CDH(Cloudera Distributed Hadoop)
推荐使用最新的CDH5版本,比如CDH5.0.0
下载地址: http://archive.cloudera.com/cdh5/cdh/
HDP(Hortonworks Data Platform)
推荐使用最新的HDP 2.x版本,比如HDP 2.1版本
下载地址:http://zh.hortonworks.com/hdp/downloads/
Hadoop版本:HDP
Hadoop版本:CDH
Hadoop版本:版本选择
不同发行版兼容性
架构、部署和使用方法一致,不同之处仅在若干内部实现
建议选择公司发行版,比如CDH或HDP
更易维护和升级
经过集成测试,不会面临版本兼容问题
来源:oschina
链接:https://my.oschina.net/u/3728166/blog/3035146