大数据学习

来源:互联网 发布:张海山锐线体简mac 编辑:程序博客网 时间:2024/06/05 22:44

作业:

1.数据单位:t P E Z
2.数据类型:结构化,非结构化
3.4个V
4.工作流程:采集-ETL-分析-显示
5.计算模式:迭代,流,批处理,交互式

6.数据库类型:文档数据库,基于键值对的数据库
7.CDH
8.CAP原理
9.Hadoop技术栈(hdfs,mapreduce,hive,hbase,sqoop)



分析型,事务型
OLAP ,OLTP

作业:
1.数据单位:t P E Z
答:
1TB=1024GB
1PB=1024TB
1EB=1024PB
1ZB=1024EB

2.数据类型:结构化 非结构化
答:
在实际应用中,我们会遇到各式各样的数据库如nosql非关系数据库(memcached,redis,mangodb),RDBMS关系数据库(oracle,mysql等),还有一些其它的数据库如hbase,在这些数据库中,又会出现结构化数据,非结构化数据,半结构化数据,下面列出各种数据类型:

结构化数据:
能够用数据或统一的结构加以表示,我们称之为结构化数据,如数字、符号。传统的关系数据模型、行数据,存储于数据库,可用二维表结构表示。

非结构化数据:
非结构化数据库是指其字段长度可变,并且每个字段的记录又可以由可重复或不可重复的子字段构成的数据库,用它不仅可以处理结构化数据(如数字、符号等信息)而且更适合处理非结构化数据(全文文本、图象、声音、影视、超媒体等信息)。
非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。

如常用的Excel软件所处理的数据,称之为结构化数据。但是现在更多互联网多媒体应用的出现,使诸如图片、声音和视频等非结构化数据占到了很大比重。

3.4个V
答:
“大数据”的经典定义是可以归纳为4个V:
海量的数据规模(volume):
截至目前,人类生产的所有印刷材料的数据量是200PB(1PB=210TB),而历史上全人类说过的所有的话的数据量大约是5EB(1EB=210PB)。当前,典型个人计算机硬盘的容量为TB量级,而一些大企业的数据量已经接近EB量级。
处理速度快(velocity):
这是大数据区分于传统数据挖掘的最显著特征。根据IDC的“数字宇宙”的报告,预计到2020年,全球数据使用量将达到35.2ZB。在如此海量的数据面前,处理数据的效率就是企业的生命。
多样的数据类型(variety):
这种类型的多样性也让数据被分为结构化数据和非结构化数据。相对于以往便于存储的以文本为主的结构化数据,非结构化数据越来越多,包括网络日志、音频、视频、图片、地理位置信息等,这些多类型的数据对数据的处理能力提出了更高要求。 
巨大的数据价值或说价值密度低(value):
价值密度的高低与数据总量的大小成反比。以视频为例,一部1小时的视频,在连续不间断的监控中,有用数据可能仅有一二秒。如何通过强大的机器算法更迅速地完成数据的价值“提纯”成为目前大数据背景下亟待解决的难题。

4.工作流程:采集-ETL-分析-显示
答:
数据源——>Flume、Kafka数据采集——>HDFS存储——>数据清洗——>ETL流程作业——>导入Hive数据仓库存储——>Hadoop/Spark大数据平台进行数据分析——>应用平台——>用户

5.计算模式:迭代,流,批处理,交互式
答:
我们将大数据处理按处理时间的跨度要求分为以下几类
基于实时数据流的处理,通常的时间跨度在数百毫秒到数秒之间
基于历史数据的交互式查询,通常时间跨度在数十秒到数分钟之间
复杂的批量数据处理,通常的时间跨度在几分钟到数小时之间

1.流处理
流是一种数据传送技术,它把客户端数据变成一个稳定的流。正是由于数据传送呈现连续不停的形态,所以流引擎需要连续不断处理数据
流处理的主要应用场景:金融领域和电信领域
1.1 Stom
Storm是一个免费开源、分布式、高容错的实时计算系统。
Storm主要分为两种组件Nimbus和Supervisor。这两种组件都是快速失败的,没有状态。任务状态和心跳信息等都保存在Zookeeper上的,提交的代码资源都在本地机器的硬盘上。
1.2 Spark Streaming
Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力。
Spark Streaming的基本原理是将输入数据流以时间片(秒级)为单位进行拆分,然后以类似批处理的方式处理每个时间片数据

迭代计算模式:
一个具有快速和灵活的迭代计算能力的典型系统是Spark,其采用了基于内存的RDD数据集模型实现快速的迭代计算

交互式分析可以作为基于map-reduce技术的批处理分析的良好补充。在SIEM/安全管理平台系统中,这种交互式分析的use case还是很多的。一般的做法本质上其实跟Drill等也都差不多,就是去构建执行引擎,或者说去建构一些数据切片,并能够快速地串起来。当然,好的算法能够提升执行引擎的效率,这个就看各家的水平了

3.批处理技术
3.1 MapReduce(Hadoop)
MapReduce模式的主要思想是自动将一个大的计算拆解成Map和Reduce
3.2 Spark
Spark的中间数据放到内存中,对于迭代运算效率更高。
Spark更适合于迭代运算比较多的ML和DM运算。因为在Spark里面,有RDD的抽象概念。
Spark比Hadoop更通用
Spark提供的数据集操作类型有很多种,不像hadoop只提供了Map和Reduce两种操作。比如map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues, sort,partionBy等多种操作类型,Spark把这些操作称为Transformations。同时还提供Count, collect, reduce, lookup, save等多种actions操作。




键值数据库适用于那些频繁读写,拥有简单数据模型的应用。键值数据库中存储的值可以是简单的标量值,如整数或布尔值,也可以是结构化数据类型,比如列表和JSON结构。
键值数据库通常具有简单的查询功能,允许你通过键来查找一个值。一般键值数据库都支持搜索功能,这提供了更高的灵活性。开发人员可以选择使用一些技巧,比如用枚举键来实现范围查询,但这些数据库通常缺乏对于文档、列族、图形数据库的查询功能

6.数据库类型:文档数据库,基于键值对的数据库

面向文档的数据库
   MongoDB、CouchDB属于这种类型,它们属于NoSQL数据库,但与键值存储相异。
   (1)不定义表结构
     即使不定义表结构,也可以像定义了表结构一样使用,还省去了变更表结构的麻烦。
   (2)可以使用复杂的查询条件 
     跟键值存储不同的是,面向文档的数据库可以通过复杂的查询条件来获取数据,虽然不具备事务处理和Join这些关系型数据库所具有的处理能力,但初次以外的其他处理基本上都能实现。
文档型数据库按照灵活性的标准设计。如果一个应用程序需要存储不同的属性以及大量的数据,那么文档数据库将会是一个很好的选择

文档数据库提供嵌入式文档,这对于非规范化非常有用。文档数据库将经常查询的数据存储在同一个文档中,而不是存储在不同的表中。
此外,文档数据库改善了键值数据库的查询功能和文档中基于属性的过滤功能。
由于其灵活性、高性能和易用性,文档数据库可能是目前最受欢迎的NoSQL数据库

7.CDH
Apache Hadoop 不足之处
  • 版本管理混乱
  • 部署过程繁琐、升级过程复杂
  • 兼容性差
  • 安全性低
所以
Cloudera’s Distribution Including Apache Hadoop,简称 CDH
CDH简介 
  • Cloudera's Distribution, including Apache Hadoop
  • 是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建
  • 提供了Hadoop的核心
    – 可扩展存储
    – 分布式计算
  • 基于Web的用户界面

CDH的优点  
  • 版本划分清晰
  • 版本更新速度快
  • 支持Kerberos安全认证
  • 文档清晰
  • 支持多种安装方式(Cloudera Manager方式)


8.CAP原理
在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点:
一致性(Consistency):同一个数据在集群中的所有节点,同一时刻是否都是同样的值。
可用性(Availability):集群中一部分节点故障后,集群整体是否还能处理客户端的更新请求。
分区容忍性(Partition tolerance):是否允许数据的分区,分区的意思是指是否允许集群中的节点之间无法通信。

CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。


9.Hadoop技术栈(hdfs,mapreduce,hive,hbase,sqoop)
HDFS原理分析:基本概念
HDFS是Hadoop Distribute File System 的简称,也就是Hadoop的一个分布式文件系统。HDFS设计理念之一就是让它能运行在普通的硬件之上,即便硬件出现故障,也可以通过容错策略来保证数据的高可用
HDFS的主要设计理念
1、存储超大文件
  这里的“超大文件”是指几百MB、GB甚至TB级别的文件。
2、最高效的访问模式是 一次写入、多次读取(流式数据访问)
  HDFS存储的数据集作为hadoop的分析对象。在数据集生成后,长时间在此数据集上进行各种分析。每次分析都将设计该数据集的大部分数据甚至全部数据,因此读取整个数据集的时间延迟比读取第一条记录的时间延迟更重要。
3、运行在普通廉价的服务器上
HDFS设计理念之一就是让它能运行在普通的硬件之上,即便硬件出现故障,也可以通过容错策略来保证数据的高可用


MapReduce
Hadoop MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。这个定义里面有着这些关键词,一是软件框架,二是并行处理,三是可靠且容错,四是大规模集群,五是海量数据集。

 简单地讲,MapReduce可以做大数据处理。所谓大数据处理,即以价值为导向,对大数据加工、挖掘和优化等各种处理。
  MapReduce擅长处理大数据,它为什么具有这种能力呢?这可由MapReduce的设计思想发觉。MapReduce的思想就是“分而治之”。
  (1)Mapper负责“分”,即把复杂的任务分解为若干个“简单的任务”来处理。“简单的任务”包含三层含义:一是数据或计算的规模相对原任务要大大缩小;二是就近计算原则,即任务会分配到存放着所需数据的节点上进行计算;三是这些小任务可以并行计算,彼此间几乎没有依赖关系。



第一部分:Hive简介
什么是Hive
•Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
•本质是将SQL转换为MapReduce程序

第二部分:为什么使用Hive
面临的问题
  人员学习成本太高
  项目周期要求太短
  我只是需要一个简单的环境
  MapReduce  如何搞定
  复杂查询好难
  Join如何实现
为什么要使用Hive
•操作接口采用类SQL语法,提供快速开发的能力
•避免了去写MapReduce,减少开发人员的学习成本
•扩展功能很方便
 
Hive的特点
•可扩展
Hive可以自由的扩展集群的规模,一般情况下不需要重启服务
•延展性
Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数
•容错
良好的容错性,节点出现问题SQL仍可完成执行
 

Hbase是什么
HBase是一种构建在HDFS之上的分布式、面向列的存储系统。在需要实时读写、随机访问超大规模数据集时,可以使用HBase。

HBase的特点
大:一个表可以有上亿行,上百万列。
面向列:面向列表(簇)的存储和权限控制,列(簇)独立检索。
稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
无模式:每一行都有一个可以排序的主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有截然不同的列。
数据多版本:每个单元中的数据可以有多个版本,默认情况下,版本号自动分配,版本号就是单元格插入时的时间戳。
数据类型单一:HBase中的数据都是字符串,没有类型。


sqoop是Apache顶级项目,主要用来在Hadoop和关系数据库中传递数据。通过sqoop,我们可以方便的将数据从关系数据库导入到HDFS,或者将数据从HDFS导出到关系数据库。

sqoop架构非常简单,其整合了Hive、Hbase和Oozie,通过map-reduce任务来传输数据,从而提供并发特性和容错。
原创粉丝点击