大数据技术原理及概念

  1. 信息科技需要解决:信息存储、信息传输、信息处理
  2. 大数据4个”V”:数据量大(Volume),数据种类繁多(Variety),处理速度快(Velocity),价值密度低(Value)
  3. “大数据摩尔定律”:数据以每年50%的速度增加
  4. 数据类型分为:结构化书数据(10%)、非结构化数据(90%)   其表现形式是二维表
  5. 大数据对思维方式的影响: 1.全样而非抽样

2.效率而非精确

3.相关而非因果

6.大数据对科学研究的影响:  (1)实验科学

(2)理论科学

(3)计算科学

(4)数据密集型科学

7.大数据计算模式:批处理计算、流计算、图计算、查询分析计算

Hadoop

  1. Hadoop基于Java语言开发,具有很好的跨平台特性,支持多种编程语言。
  2. Hadoop核心:分布式文件系统(HDFS)、MapReduce
  3. 创始人:Doug.Cutting
  4. Hadoop的特性:高可靠性、高效性、高可扩展性、高容错性、成本低 ,运行Linux上。
  5. 让名称节点生成自己的SSH密钥:ssh -keygen -t rsa -p  ‘  ‘

   用ssh localhost 检查一下是否输入密码

  1. 举例Hadoop伪分布安装:hdfs-site.xml 、core-site.xml、hadoop-env.sh
  2. 格式化:hadoop namenode -format
  3. 上传到HDFS中:hdfs dfs -mkdir / -put / -ls / -cat

HDFS

  1. 分布式文件系统就是把文件分布存储到多个节点上,成千上万的计算机节点构成集群
  2. 主节点/从节点: 主节点负责文件和目录的创建、删除和重命名,同时管理数据节     (名称节点/数据节点)  点和文件块的映射关系。

从节点负责数据的存储和读取,由名称节点分配存储位置,客户端直 接写入相应数据节点,从节点也要根据名称节点的命令创建删除数据

块和冗余定制。

数据节点都被保存在各自节点的本地Linux文件系统中。

  1. HDFS的局限性:1.不适合低延迟数据访问
  1. 无法高效存储大量小文件
  2. 不支持多用户写入及任意修改文件
  1. HDFS默认一个块是64MB:支持大规模文件存储,简化系统设计,适合数据备份

分布式文件系统通常采用:多副本存储

  1. HDFS:名称节点负责管理分布式文件系统的命名空间,保存了两个核心的数据结构

FsImage、Editlog

FsImage:维护文件系统树以及文件树中所有的文件和文件夹的元数据

  1. 名称节点启动过程中处于“安全模式”只提供读. hadoop dfsadmin -safemode leave  退出   安全模式
  2. SecondaryNameNode的工作情况**

   1.SecondaryNameNode定期与NameNode通信,请求停止Editlog文件,暂时将新的写操 作写到一个新的文件edit.new上来

   2.通过HTTP、GET方式从Namenode获得FsImage和Editlog ,并下载

   3.将下载下的FsImage载入到内存,然后一条执行Editlog文件中的各项更新操作后,使

得FsImage最新——Editlog和FsImage合并

  1. 通过post方式将新得FsImage发送到Namenode上
  2. 以新换旧,新得FsImage换到旧的FsImage文件,同时替换Editlog文件

第二名称节点的作用:1.可以完成EditLog与FsImage的合并操作

2.可以作为名称节点的“检查点”

                       3.减小EditLog文件大小

                   4.缩短名称节点重启时间  

                   5.保存名称节点中的元数据信息

HDFS体系结构

  1. HDFS采用主从结构模型
  2. HDFS的命名空间包含目录,文件和块
  3. HDFS通信协议是构建在TCD/IP协议基础上的

   客户端与数据节点的交互通过RPC,名称节点不会主动发起RPC

  1. HDFS体系结构的局限性:1.命名空间的限制
  1. 性能的瓶颈
  2. 隔离的问题
  3. 集群的可用性

HDFS存储原理

  1. HDFS采用多副本方式进行冗余存储,保证了容错性和可用性

   优点:1.加快数据传输速度

         2.容易检查数据错误

 3.保证数据的可靠性

P53 HDFS数据读取

  1. 启动Hadoop  start-dfs.sh
  2. 关闭Hadoop  stop-dfs.sh

HDFS  HA

  1. Hadoop的局限不足:
  1. 抽象层次低
  2. 表达能力有限
  3. 开发者自己管理作业之间的依赖关系
  4. 难以看到程序整体逻辑
  5. 执行迭代操作能力低
  6. 资源浪费
  7. 实时性差
  1. 单点故障问题   HDFS1.0

SecondaryNameNode无法解决单点故障问题

第二名称节点不是热备份,主要是防止日志文件EditLog过大,导致名称节点失败恢复 时消耗的时间附带起冷备份

解决方法:HA构架  HA设置两个名称节点,”活跃(active)”和“待命(standby)”

          两种名称节点的状态同步,可以借助于一个共享存储系统来实现

      一旦活跃名称节点出现故障,就可以立即切换到待命名称节点

      Zookeeper确保一个名称节点在对外服务(防止两个管家出现)

  名称节点维护映射信息,数据节点同时向两个名称节点汇报信息。

单选

检查HDFS文件系统健康状态:fsck

Hadoop HA 通过同时配置两个处于Active/Passive 模式的Namenode

来解决上述问题,分别叫 ActiveNamenode ; StandbyNamenode

数据保持同步,两个Namenode都与一组Journal Node

启动ZKFC用于完成以下任务:Namenode 健康

   zk session  管理

   基于zk的Namenode选举

新一代资源管理调度框架YARN(Yet Another Resource Negotiator)

  1. MapReduce 1.0的缺陷
  1. 存在单点故障
  2. JobTracker”大包大揽”导致任务过重
  3. 容易出现内存溢出
  4. 资源划分不合理

原JobTracker:资源管理是ResourceManger

任务调度和任务监控是ApplicationMaster

  1. MapReduce 2.0 它是运行在YARN之上的一个纯粹的计算框架。

YARN是提供资源管理调度服务

  1. ResourceManger :处理客户端请求

  启动/监控ApplicationMaster

  监控NodeManger

                  资源分配与调度

   ApplicationMaster :为应用程序申请资源,并分配给内部任务

                   任务调度,监控与容错

   NodeManager: 单个节点上的资源管理

     处理来自ResourceManger的命令

  1. ApplicationMaster的主要功能P162  5点
  2. Nodemanger功能   P162
  3. “容器”作为动态资源分配单位,封装了一定数量CPU、内存、磁盘资源

“容器”进行就近原则,从而实现“计算向数据靠拢”

用户的应用程序是以(作业)的形式提交的。

  1. YARN的目标是实现“一个集群多个框架”

Flume

  1. 由Cloudera公司开源

分布式、可靠、高可用的海量日志采集系统

  1. 事务:Flume使用两个独立的事务负责从Source到channel,从Channel到sink的事件上  (无法记录时,事务回滚,保留在Channel上)
  2. Channel中的File Channel具有持久性,事件写入File Channel后,即使Agent重启

不会丢失

Flume还提供Memmory Channel的方式,但它不具有持久性,不保证数据完整性,具有较高的吞吐量

  1. Flume三层架构:Agent,collector和storage

   Agent是Flume的代理,Agent和colletcor由master管理,很多个zookeeper(管理)避 免单点故障问题

  

  1. Event 将数据进行封装,是Flume传输数据基本单位,如果是文本文件,通常是一行记 录是事务的基本单位

   HDFS Sink写入HDFS,对于正在进行操作处理的文件,后缀为“.tmp”

在启动时运行Unix命令,则a1.sources.r1.type = exec

  

分布式运行框架MapReduce

  1. 由谷歌公司提出
  2. MapReduce 将复杂,运行于大规模集群上的并行计算过程高度抽象两个函数 Map函数, Reduce函数
  3. MapReduce采用“分而治之”,一个存储在分布式文件系统中的大数据集,会被切成许多独立的分片(split),。。。。包含原数据
  4. 设计理念:“计算向数据靠拢”
  5. Master | Slave 架构

  1. MapReduce 2.0 体系结构由
  2. 不同的Map任务之间不会进行通信

不同的Reduce任务之间也不会发生任何信息交换

  1. Reduce任务个数取决于集群中可用的reduce任务槽(slot)数目
  2. Map端的shuffle过程
  1. 输入数据和执行Map任务
  2. 写入缓存:在缓存中积累一定数量的Map输出结果后,再一次性批量写入磁盘, 降低开销
  3. 溢写(分区,排序,合并):当缓存满时,发生溢写,将缓存中的数据进行分区, 进行排序合并,再写入磁盘,磁盘会产生多个溢写文件。
  4. 文件归并:在Map任务全部结束之前,这些溢写文件归并成一个大的磁盘文件
  1. Reduce端的shuffle过程

只需要从 Map端读取Map结果,然后执行归并操作,最后输送给Reduce任务进行处 理

数据仓库Hive

  1. 数据仓库与结构化数据
    1. 结构化数据库中的数据经常变化,数据仓库中的数据信息极少变化
    2. 结构化数据库中的数据保留某一时刻的信息;数据仓库保留历史数据
  2. Hive是一个构建于Hadoop顶层的数据仓库工具,支持大规模数据存储分析,具有良好 的扩展性
  3. Hive具有的特点,非常适用于数据仓库

采用批处理方式处理海量数据,提供适合数据仓库操作的工具

数据仓库存储的是静态数据

  1. Hive是Facebook公司中的应用
  2. **Hive的基本数据类型:TINYINT,smallInt、Int、Bigint、FloatDouble 、boolean

 String,Timestamp.BINARY(字节数组)

Hive的集合数据类型 ARRAY(有序字段) Array(1,2)

Map(一组无序的键/值对) Map(‘a’,’1’,’b’,’2’)

Struct(一组命名字段) struct(‘a’,1,1,0)

  1. Hive有三种模式:单机模式、伪分布模式、分布式模式
  2. load:向表中装载数据

把目录‘usr/local/data’下的数据文件中的数据装载进usr表并覆盖原有数据

hive>local data local in path ‘usrllocaldata’ overwrite into table usr

有一个dos文件,用HiveQL语句实现Wordcount算法

Create table word.count as

Select word.count(1) as count from

(select explode (split(line,’’) | as word from docs)

Group by word,

Order by word,

Hive系统架构:

用户接口包括CLI,HWI,JDBC,ODBC,ThriftServer

Oriver(驱动模块)负责把HiveSQL转化成一系列MapReduce工作

元数据存储模块是一个独立的关系型数据库

分布式数据库HBase

  1. HBase是谷歌公司BigTable的开源实现
  2. HBase是一个高可靠,高性能,面向列,可伸缩的分布式数据库,是谷歌BigTable的开 源实现,主要用来存储非结构和半结构化的松散数据

Bigtable                   HBase

文件存储系统       GFS HDFS

海量数据处理          MapReduce Hadoop MapReduce

协同服务管理   Chubby zookeeper

  1. HBase与传统的关系数据库区别在这几个方面
  1. 数据类型:关......库采用关系模型,具有丰富的数据类型和存储方式

HBase则采用了更加简单的数据模型,把数据存储在未经解释的字符串

  1. 数据操作:...会涉及复杂的多表连接。HBase操作则不存在复杂的表与表关系,只有简 单的插入,查询,删除,清空
  2. 存储模式:关系型数据库是基于行模式,HBase是基于列存储的
  3. 数据索引:关系型数据库有多个索引,提高性能,HBase只有一个索引一行键
  4. 数据维护: ......新的值去替换旧值,旧值不存在,而HBase不会删除旧版本,而是生 成一个新的版本,旧有的版本任然保留
  5. 可伸缩性:.....很难实现横向扩展,纵向也有限,HBase很灵活
  1. 数据模型概述:HBase是一个稀疏多维度排序的映射表,这张表索引是行键,列族,列 限定符和时间戳

访问表中的行只有3种(1)通过单个行键访问

  1. 通过一个行键的区间来访问
  2. 全表扫描

  列族(CF):是基本的访问控制单元

  1. HBase可以视为“四维坐标”[行键,列族,列限定符,时间戳]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值