大数据处理架构Hadoop
1.hadoop简介
Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构。(并非单一软件,更多指的是一个生态系统)
其中两大核心是:
1.hdfs:分布式文件存储系统
2.mapreduce:分析处理数据
Hadoop的产生解决了大数据发展的两大难题:
1.数据存储与管理
2.数据处理与分析
2.hadoop起源
一切源于谷歌的三驾马车: 何为三驾马车
Hadoop最初是由Apache Lucene项目的创始人Doug Cutting开发的文本搜索库。Hadoop源自始于2002年的Apache Nutch项目——一个开源的网络搜索引擎并且也是Lucene项目的一部分,在2004年,Nutch项目也模仿GFS开发了自己的分布式文件系统NDFS(Nutch Distributed File System),也就是HDFS的前身。
2004年,谷歌公司又发表了另一篇具有深远影响的论文,阐述了MapReduce分布式编程思想,2005年,Nutch开源实现了谷歌的MapReduce
3 Hadoop生态系统
3.1 HDFS
Hadoop分布式文件系统(Hadoop Distributed File System ,HDFS)是hadoop项目的核心之一,是对谷歌文件系统(Google File System,GFS)的开源实现。优点很多:可以运行在廉价机器上,高可靠,
3.2 MapReduce
分布式并行编程模型
核心思想:分而治之
是对谷歌MapReduce的开源实现,将复杂,运行在大规模集群上的并行计算高度抽象到两个函数–Map和Reduce
3.3 Hbase
高可靠,高性能,可伸缩,实时读写,分布式的列式数据库
是对谷歌BigTable的开源实现,具有强大的非结构化数据存储能力
3.4 Hive
基于Hadoop的数据仓库工具,对hadoop文件的数据集进行数据整理,特殊查询和分析存储,门槛低,特有的Hive sql类似关系数据库SQL
3.5Flume
分布式海量日志采集,聚合和传输系统
3.6 Sqoop
hadoop和关系数据库之间的交换数据,Sqoop(SQL–to–Hadoop)
3.7 Ambari
一个web工具,笔者没有体验过,暂时不能描述。
3.8 Zookeeper
java编写的用于构建分布式应用,减轻分布式应用程序所承担的协调任务(例如 统一命名服务,状态同步服务,集群管理,分布式应用配置项的管理)
3.x等等
4 Hadoop版本选择
开源版主要是apache基金会参与,还有一些科技公司参与,中国的华为也参与的
商业版是公司客制化更高的,国内国外均有公司在做相关产品
如何选择:
学生学习当然无脑开源版了,主要是免费。。。
5 Hadoop 项目结构
下面这张结合上面的两张图更好理解为什么有这么多组件在haoop生态系统,不同的业务场景,有着不同的处理办法
6 Hadoop安装与实践
这里放入林子雨老师的教程
https://dblab.xmu.edu.cn/blog/2544/