一、Hadoop的特性
Hadoop是一个能够队大量数据进行分布式处理的技术框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性:
高可靠性 采用冗余数据存储方式,即使一个副本发生故障,其他副本也可以保证正常对外提供服务。高效性 采用分布式存储和分布式处理两大核心技术,能够高效的处理PB级数据高拓展性 Hadoop的设计目标是可以高效稳定地运行在廉价的计算机集群上,可以扩展到数以千计的计算机节点上成本低 采用廉价的计算机集群,成本较低运行在Linux系统上 基于JAVA开发,可以较好地运行在Linux操作系统上支持多种编程语言 Hadoop上的应用程序也可以使用其他语言编写
二、HDFS读写过程
读:
- 客户节点向名称节点获取文件开始部分或全部block列表
- 名称节点返回block列表
- 按客户节点与数据节点的距离进行排序
- 客户节点调用read()方法
- DFSInputStream找出离客户节点最近的数据节点链接并读取数据
- 关闭链接
反复读取block直到读完数据
写:
- 客户节点向名称节点请求上传文件
- 名称节点对文件进行检查,并回复客户端是否可以上传文件
- 客户节点请求block上传到那几个数据节点上
- 名称节点返回n个数据节点的节点信息
- 客户节点请求向数据节点上传数据,数据节点链式依次将数据传给下一个数据节点
- 数据节点逐级应答客户端
- 关闭链接
反复写入数据直到写完
三、名称节点和数据节点
名称节点(NameNode)
负责管理分布式文件系统的命名空间 - 保存了两个核心数据结构
Fslmage 和EditLog
FsImage 用于维护文件系统树以及文件树中所有的文件和文件夹的元数据 EditLog 记录了所有针对文件的创建、删除、重命名等操作
- 记录了每个文件中各个块所在数据节点的位置信息,但是并不持久化的储存这些信息。而是在每次启动时扫描所有的数据节点并重构,得到这些信息。
数据节点(DataNode)
- 是HDFS的工作节点,负责数据的存储和读取
- 根据客户端或名称节点的调度进行数据的存储和检索
- 定期向名称节点发送块的列表信息
- 每个数据节点都保存在各自的Linux文件系统中
四、HBase与传统关系数据库的区别对比
数据类型
- 关系数据库
采用关系模型 ,具有丰富的数据类型和存储方式。 - HBase
只有简单的字符类型 ,所有的类型都是交由用户自己处理,它只保存字符串
数据操作
- 关系数据库中
提供了丰富的操作 ,通常有各式各样的函数和连接操作 - HBase提供的操作
不存在复杂的表与表之间的关系 ,只有简单的插入、查询、删除、清空等,表和表之间式分离的
存储模式
- 关系数据库是
基于表格解构和行模式存储的 - HBase式
基于列存储的
数据所引
- 关系型数据库通常
可以针对不同列构建复杂的多个索引 ,以提高数据访问性能 - HBase
只有一个索引——行键 ,通过巧妙的设计HBase中的所有访问方法,或者通过行键访问,或者通过行键扫描,从而使得整个系统不会慢下来。 由于HBase位于Hadoop框架之上,因此可以使用Hadoop MapReduce来快速、高效的生成索引表
数据维护
- 关系型数据库是
替换修改 ,用 “新” 值去替换 “旧” 值 - HBase的更新不会删除 “旧” 版本,而是生成一个 “新” 的版本, “旧” 的数据任然版本
可伸缩性
- 关系型数据库很难横向拓展,纵向拓展的空间也比较有限
- HBase能轻松增加或减少节点数量,并且对错误的兼容性比较高
五、MapReduce的各个执行阶段
- InputFormat做预处理,将文件切分为逻辑上的多个InputSplit
- RecordReader根据InputSplit转换为键值对Map作为输入
- Map进行Shuffle操作,输出一系列键值对作为中间结果
- Reduce以Map的总监结果作为输入进行处理,结果交给OutputFormat模块
- OutputFormat判断是否满足条件并考虑输出结果到分布式文件系统
六、WordCount的具体执行过程
- 用户程序分发部署到多台机器上,一台作为master,用于分配任务,其余机器为woker,用于处理任务
- 系统分配一部分worker执行map任务,一部分worker执行reduce任务。MaoReduce会将输入的文件拆分成M个分片,将由空闲的worker进行处理
- 处理map的worker输出中间结果并存在本地磁盘中,maser通知对应的处理reduce任务的worker来取对应的数据
- Reduce对领取到的数据进行排序,使相同key的键值对聚集在一起,遍历所有不同的key进行reduce操作
- 结果输出到文件中,并唤醒用户程序
五、大数据概述
1.三次信息喜化浪潮
2.大数据特征(4v)
volume大量化、velocity快速化、variety快速化、variety多样化、value价值化
3.大数据影响
- 科学研究:给科学研究提供了大量的数据基础,给科学研究的第四范式(数据密集型科学)提供了大量的理论基础
- 思维方式:转变了人们的思维方式(全样而非抽样,效率而非精准,相关而非因果)
- 社会发展:成为了一种新的决策方式;促进了信息技术与各行业的深度融合 ;推动了新技术和新应用的不断涌现
- 就业市场:数据科学家成为热门人才
- 人才培养:在很大程度上改变了中国高效信息激素相关专业的现有教学和科研体系
4.大数据的应用
大数据无处不在,包括制造、金融、汽车、互联网、餐饮、电信、能源、物流、生物医学、体育娱乐等社会的各个行业/领域都融入了大数据
5.大数据关键技术
- 数据采集预处理
- 数据存储和管理(HDFS)
- 数据处理和分析(如MapReduce)
- 数据安全和隐私保护
6.大数据计算模式
- 批处理计算:针对大规模数据的批量处理(MapReduce,Spark)
- 流计算:针对流数据的实时计算(Flink,Storm,S4,Flume,Streams等)
- 图计算:针对大规模图结构的数据的处理(Pregel,GraphX,Giraph等)
- 查询分析计算:大规模的存储管理和查询分析(Dremel,Hive,Cassandra等)
7.大数据与云计算、物联网的关系
- 大数据、云计算和物联网的区别:
大数据 :大数据侧重于对海量数据的存储、处理和分析(从海量数据种发现价值,服务于生产和生活) 云计算 :旨在整合和优化各种IT资源,并通过网络以服务的方式廉价的提供给用户 物联网 :物联网的发展目标是实现“物物相连”,应用创新是物联网发展的核心
- 三者是相辅相成的,云计算为大数据提高功率技术支撑,大数据为云计算提供了用武之地,物联网给数据的产生方式带来了变革
|