处理架构:Hadoop
开源分布式计算平台,极大降低计算复杂性,提供简单傻瓜式接口,Java开发
支持多种编程语言,c\c++\java\python,跨平台
俩大核心
HDFS+MapReduce——分别解决分布存储和处理
03,google提出分布式文件系统GFS(Google File System)
04,google提出分布式并行编程框架MapReduce
初始效率
910节点对1TB用了209s
冗余副本机制,提供高可靠性(一点故障有备份)
高效率性
可扩展性,不断增加
高容错,多副本
成本低
高性能计算(HPC,High Performance Computing)
不同于以往HPC,可替代贵的小型机,用普通PC机构成集群,也可用于linux
MR:长处批量数据离线批处理,hive,pig处理分析
MaHout:基于mr的数据挖掘实现
应用:
facebook
中国移动
Hadoop有不同的版本,优先讲Apache Hadoop
Hadoop1.0 和2.0是不同架构
MapReduce框架1.0【管的太多了,所以效率低,在2.0里面将资源管理相关转移为YARN框架】
解决俩个部分1.数据处理分析,2.集群调度
mapreduce是架构在YARN上的第一个框架
spark和storm都是搭建在底层YARN之上的
spark/storm/mapreduce
HDFS可扩展性不好,数据多了就不好
2.0中提出了NN Federation,名称节点,进行分区管理
引入了HA,高可入行,整个2.0只有一个NN,用HA对NN做备份,防止1.0中出现故障NN,直接坏死。
发行版
Hortonworks
cludera【CDH-Cloudera Distribution Hadoop】
MapR
选择Hadoop版本的因素
1.是否开源
2.是否有稳定版
3.是否实践检验
4.是否强大的社区支持
开源下的安装使用维护等易用性差
商业性的易用性则好很多
本地支持?
项目结构
2代以后MapReduce不做实时处理了,都做离线计算了
Tez会把MapReduce作业分析优化构造DAG,防止重复作业
Spark也是用Reduce函数,区别去MR,MR对数据处理先把数据写到磁盘,完成后写回HDFS,而Spark基于内存,比MR效率高一个数量级
Hive--数据仓库,用于数据分析,多维分析,在Hadoop,可实现更大容量存储,支持SQL语句,Hive会把SQL语句转化为MR作业
Pig是流处理,轻量级分析,提供类似SQL查询Pig Latin,pig可嵌入大型语句。MR对底层封闭了很多复杂性,但依然很复杂,所以定义了Pig,写一句运行一句出结果,轻量级脚本
Oozie:Hadoop上的工作流管理系统,用于作业调度
Zookeeper:分布式协调一致性--分布式锁,集群管理,HBase中对集群中的机器管理,使用了
HBase:分布式存储,随机读写,支持实时应用,解决HDFS只能顺序读写
HDFS分布式存储系统,做的顺序读写
Flume流日志收集
Sqoop数据导入导出,将关系型数据库导入到Hadoop,入HDFS/HBASE/Hive;也可反向导出
Ambari安装部署整套Hadoop
安装Hadoop
Hadoop分为三种模式
1.单机模式
默认为非分布式模式(本地模式),无需其他配置即可运行,不涉及HDFS
2.伪分布式
单节点上以伪分布式运行,一个node及作为NN也作为DataNode,读取HDFS中的文件
3.分布式
多节点