赞
踩
目录
燃料(大数据),引擎(神经网络)
开源的、可靠的、可扩展的,分布式的计算框架。
Apache旗下的一套开源软件平台(类似于Struts、Spring MVC)
Hadoop提供的功能,利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理。
modules:
●Hadoop Common:共用工具集
●HDFS(Hadoop Distributed File System):(分布式文件系统,用于存储)
●YRAN:(运算资源调度系统,node manager,为MAPREDUCE分配硬件资源)
●MapReduce:(分布式运算编程框架,编程框架/编程模板)
Hadoop可以搭建大型数据仓库,PB级数据的存储、处理、分析、统计等业务。
底层rpc使用Netty。现在的Hadoop是一套生态系统,类似Spring 中有很多内容。
●数据存储:数据块多副本
●数据计算:重新调度作业计算
●存储/计算资源可以横向的先行扩展机器
●一个集群中可以包含数千/万的节点
●存储于连接机器上、降低成本
●成熟生态圈
●狭义Hadoop:是一个适合大数据分布式存储(HDFS)、分布式计算(MapReduce)和资源调度(YARN)的平台。
●广义Hadoop:Hadoop生态系统。每一个子系统只解决某一个特定的问题域。
包括:
●HDFS(分布式文件存储);
●MapReduce(分布式计算框架,离线);
基于MapReduce的几种:
-Hive(SQL查询 使用Hive QL语言,SQL语言借助Hive执行引擎将SQL转换成MapReduce程序语言进行数据计算)
-Mahout (机器学习)
-Pig (脚本语言,脚本语言通过Pig执行引擎转换成MapReduce程序语言进行数据计算)
-Oozie(工作流,调度引擎)
●Zookeeper(分布式协调服务)
●Flume(日志收集框架)
●Sqoop (用于传统关系型数据库数据抽取到HDFS,统计分析结果也可以通过Sqoop转换到关系型数据库)
●Hbase(基于Google的BigData,结构化的、可伸缩、可扩展、分布式的、面向列的数据库)
●Apache Hadoop(都是单独解决问题的方式,合并或有jar包冲突)
●CDH: Cloudera Distributed Hadoop(商业整合版本,通过CM框架在浏览器可以就安装,但是CM框架不开源,大部分公司使用)
archive.clouders.com
●HDP:hortonworks Data Platform(商业整合版本,开源。安装升级不容易)
云计算两大底层支撑技术:“虚拟化”和“大数据技术”。
●源自Google的GFS论文,发表于2003年10月
●HDFS是GFS的克隆版
●HDFS特点:扩展性、容错性、海量数据存储
●将文件切分成指定大小的数据块(默认128M)并以多副本的存储在多个机器上
●数据切分、多副本、容错等操作对用户是透明的
Namenode (Filename,numReplicas,block-ids,…)
/users/sameerp/data/part-0,r:2,{1,3},…(有2个副本,存在于编号id为1和3的block-id上)
/users/sameerp/data/part-1,r:3,{2,4,5}…
●YRAN:Yet Another Resource Negotiator
●负责整个集群资源的管理和调度
●YRAN特点:扩展性、容错性、多框架资源统一调度
YARN支持不同框架作业:
Common:主要包括文件系统、RPC和串行化库。
Avro:用于数据序列化的系统。可以将数据结构或对象转化成便于存储和传输的格式,节约数据存储空间和网络传输带宽。HBase和Hive的客户端和服务端之间的数据传输都采用了Avro。它依赖于模式(Schema),Avro数据的读写是在模式之下完成的,需要动态加载相关数据的模式。
HDFS: 分布式文件系统。
HBase:是一个提供高可靠性、高性能、可伸缩、实时读写、分布式的列式数据库,一般采用HDFS作为其底层数据存储。Hbase基于列存储,而关系型数据库基于行存储。
Mapreduce:一种编程模式。核心思想是分而治之,把输入的数据集切分成弱冠独立的数据块,分给一个主节点管理下的各个分界点来共同并行完成,最后整合各个节点的中间结果,得出最终结果。
Zookeeper: 协同工作系统。
Hive:一个基于Hadoop的数据仓库工具,提供了类似关系型数据库SQL的查询语言 Hive QL。可以通过Hive QL语句快速实现简单的MapReduce统计,Hive自身可以将Hive QL语句转换为MapReduce任务进行运行。
Pig:数据流语言和运行环境。适用于使用Hadoop和MapReduce平台来查询大型半结构化数据集。Pig简化了Hadoop常见的工作任务。为Hadoop应用程序提供了更加接近结构化查询语言SQL的接口。
Sqoop:用来在Hadoop和关系型数据库之间交换数据。如从Mysql导入HDFS/Hbase/Hive等,Sqopp主要通过JDBC和关系数据库进行交互。
Chukwa: 用于监控大型分布式系统的数据收集系统,可以将各种类型的数据收集成适合Hadoop处理的文件,并保存在HDFS中供Hadoop进行各种MapReduce操作。
●源自于Google的MapReduce论文,发表于2004年12月
●MapReduce是Google MapReduce克隆版
●MapReduce特点:扩展性、容错性、海量数据离线处理
MapReduce三个角色:Map task、Reduce task、MRAppMaster。
Input-----Splitting-----Mapping----Shuffling(洗牌)-----Reducing----Final resut
1)数据采集,定制开发采集程序,或使用开源矿建Flume;
2)数据预处理,定制开发mapreduce程序运行于Hadoop集群;
3)数据仓库技术,基于Hadoop之上的Hive
4)数据导出,基于Hadoop的sqoop数据导入导出工具
5)数据可视化,定制开发web程序或使用kettle等产品
6)整个过程的流程调度,Hadoop生态圈中的oozie工具或其他开源产品
离线数据分析路径:
日志—(flume)存储到Haddop HD—mapduce程序预处理----Hive仓库----ETL—Mysql—应用程序
实时数据分析路径:
日志—(kafka)—storm/spark streaming–Mysql—应用程序
1) 数据采集
Flume : web日志写入到HDFS
2) 数据清洗
脏数据剔除:Spark、Hive、MapReduce或其他一些分布式框架
清洗完之后的数据可以存放在HDFS(HIve/Spark SQL)
3) 数据处理
按照需求进行业务统计和分析
4) 处理结果入库
可以存放到RDBMS、MoSQL
5) 数据可视化展示
图形化展示(Echarts、HUE、Zeepelin)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。