派拉培训-大数据(一)

大数据介绍

大量,高速,多样,真实,价值

HDFS:分布式文件系统
MAPREDUCE:分布式运算程序开发框架
HIVE:基于大数据技术(文件系统+运算框架)的SQL数据仓库工具
HBASE:基于HADOOP的分布式海量数据库
ZOOKEEPER:分布式协调服务基础组件
Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库
Oozie:工作流调度框架
Sqoop:数据导入导出

Hive数据仓库

数据仓库,简称为DW(Data Warehouse的缩写),是一个很大的数据存储集合,通过对多样的业务数据进行筛选与整合,产出企业的分析性报告和各类报表,为企业的决策提供支持。
数据仓库特点:

1、主题性

不同于传统的数据库是应用于某个项目,数据仓库则是围绕一个主题进行获取数据和分析数据,以此来满足数据分析的需求。

比如p2p平台一个月内发生了多少交易额,分析那个时间段内现金的流入和流出最高,

2、集成性

我们上面说了,数据仓库的数据来源有数据库的数据、操作日志的数据、运营后台导入的数据、一些第三方接口的数据,原始数据来源不同,存储方式也各不相同,如果要整合成最终的数据集合,需要对数据进行抽取、清洗、转换的过程。

3、稳定性

数据仓库不允许对数据进行修改,只能进行查询和分析。

4、及时性

数据仓库一定要获取最新的数据,这样数据分析出来的结果才是有效的。

数据仓库如何集成不同的数据源?

上面说了数据仓库要将不同的数据源集合起来,那如何集合呢?这里就要介绍ETL的概念,ETL的是 Extract-Transform-Load 的缩写,主要描了数据从来源迁移到目标的几个过程:

1、Extract(抽取)

首先是读取数据源。

2、Transform(转换)

把数据转换成需要的纬度和格式,同时包含数据清洗,清洗掉一些噪音数据。

3、Load(加载)

把数据加载到目标仓库以供分析使用。

现在国内最常用的是一款基于Hadoop的开源数据仓库,名叫【Hive】,可以对存储在HDFS上的文件数据集进行查询和分析处理。

Hadoop原理架构

  1. hadoop大数据标准开源软件
  2. HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理
  3. HADOOP的核心组件有
    A.HDFS(分布式文件系统)
    B.YARN(运算资源调度系统)
    C.MAPREDUCE(分布式运算编程框架)

ETL

1、什么是ETL

ETL的全称是抽取(Extract)、清洗(Cleaning)、转换(Transform)、装载(Load)。那么在企业的信息化建设过程中,为什么需要有ETL这一个过程。这是因为在信息化建设的过程中,数据是最能提现一个企业的信息化程度的。这就引出了第二个问题,数据是从何而来的?就笔者的经历而言,一般数据都是来自于不同的生产系统,比如说,银行的数据就来自于多个系统:核心系统、柜面系统、票据系统、第三方数据源等系统的,不同源系统根据其功能的不同,源源不断的产生着新数据,为企业提供了大量的服务。但是这些源系统就像一个个数据孤岛,彼此之间并无关联,这就给业务人员或者管理者提出了第一个难度,我在跟进A业务的时候,需要去访问源系统,在跟进B业务的时候,需要去访问源系统B,如果我要跟进很多条业务线,是不是就要逐一去访问各个不同的源系统呢?第二个难度在于,每个源系统的厂商不尽相同,故其各自的环境也都不太一样,如果要去访问所有的源系统的话,学习的成本和难度会大大增加。那么能不能有这么一套系统,能够将所有的源系统都囊括在这一个系统中呢?答案是:有的!这个地方就称为数据仓库!而ETL要做的事情,就是按照数据仓库的规则和要求,对各个源系统的数据进行加工和整合,并且将各个源系统的数据存储到数据仓库中。

2、ETL的流程

2.1、数据抽取与清洗

这一环节的主要工作是获取源系统的数据,并按照数据仓库的规则,进行数据加工,对不完整的数据、错误的数据、重复的数据进行处理,最终提取出我们想要的数据。

2.2、数据转换

数据转化要解决两个问题。

一是数据不一致。具体包括数据类型不一致、数据格式不一致、编码不一致等。

二是数据粒度的转换。源系统和数据仓库对于业务的抽象粒度不一致。源系统是业务的生产者,故其对业务的抽象程度较低,换言之,源系统存储了很详细的明细数据。而数据仓库则是给业务人员或者数据从业者提供一个平台来分析数据的,故其对业务的抽象程度较高,存储的都是进过一定程度汇总的数据。

2.3、数据加载

当前两个问题都解决完了之后,接下来就进行数据的加载,进行数据加载需要明确以下几个问题。

一是作业加载方式:全量加载还是增加更新。

二是任务触发方式:时间触发还是事件触发。如果是时间触发的话,还需要确定任务的上下游关系和依赖触发关系。

三是调度工具:采用什么调度工具,才能满足上面的需求呢

2.4、数据校验

当任务上线完成后,需要进行数据的一致性比对,从而确保我们的ETL逻辑是正确的,这样才可以放心大胆的使用数据仓库中的数据了。

HDFS

1.HDFS前言

  • 设计思想
    分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析;

  • 在大数据系统中作用:
    为各类分布式运算框架(如:mapreduce,spark,tez,……)提供数据存储服务

  • 重点概念:文件切块,副本存放,元数据

2. HDFS的概念和特性

  1. HDFS的概念?
    首先,它是一个文件系统,用于存储文件,通过统一的命名空间——目录树来定位文件

其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色;

NameNode负责管理整个文件系统的元数据

DataNode 负责管理用户的文件数据块

  1. 默认存储数据块的大小?
    hadoop1.x的HDFS默认块大小为64MB;hadoop2.x的默认块大小为128MB。
  2. 数据复制默认存储多少份? 3 份
  3. 对元数据的理解和作用?元数据在HDFS中有什么作用?为什么元数据这么重要?
    元数据(Meta Date),关于数据的数据或者叫做用来描述数据的数据或者叫做信息的信息。
    元数据可以为数据说明其元素或属性(名称、大小、数据类型、等),或其结构(长度、字段、数据列),或其相关数据(位于何处、如何联系、拥有者)。
    (1)描述作用:根据元数据的定义,它最基本的功能就在于对信息对象的内容和位置进行描述,从而为信息对象的存取与利用奠定必要的基础。
    (2)定位作用:由于网络信息资源没有具体的实体存在,因此,明确它的定位至关重要。元数据包含有关网络信息资源位置方面的信息,因而由此便可确定资源的位置之所在,促进了网络环境中信息对象的发现和检索。此外,在信息对象的元数据确定以后,信息对象在数据库或其他集合体中的位置也就确定了,这是定位的另一层含义。
    (3)搜寻作用:元数据提供搜寻的基础,在著录的过程中,将信息对象中的重要信息抽出并加以组织,赋予语意,并建立关系,使检索结果更加准确,从而有利于用户识别资源的价值,发现其真正需要的资源。
    (4)评估作用:元数据提供有关信息对象的名称、内容、年代、格式、制作者等基本属性,使用户在无需浏览信息对象本身的情况下,就能够对信息对象具备基本了解和认识,参照有关标准即可对其价值进行必要的评估,作为存取利用的参考。
    (5)选择作用:根据元数据所提供的描述信息,参照相应的评估标准,结合使用环境,用户便能够做出对信息对象取舍的决定,选择适合用户使用的资源。

NameNode将整个namespace,包括block 到文件的映射、文件的属性等,都存储在一个称为FsImage 的文件中,它被存放在内存以及本地文件系统中。而任何对于namespace 元数据产生修改的操作,NameNode 都会使用一种称为EditLog的事务日志记录下来。例如在HDFS中创建一个文件, Namelode 就会在EditLog 中插入条记录来表示:同样的, 修改文件的副本系数也将往EditLog插入-条记录。 主NameNode 会在本地文件系统中存储这个 EditLog,并同步到各个Jomalol节点上,面从Srood则通过在JournalNode节点上,而从NameNode则通过在JournalNode节点中读取EditLog来完成同步。

SQOOP技术知识原理

1、sqoop运行原理架构图
在这里插入图片描述
2、sqoop的抽取数据的几个命令
sqoop import --connect “jdbc:sqlserver://10.96.3.112:1433;database=SMES_CQ_2017” --username sa --password SMES@CQ --table F_WORKSTATION --target-dir ‘/data/cdh/hive/hiveExternal/F_WORKSTATION’ --null-string ‘\N’ --null-non-string ‘\N’ --fields-terminated-by ‘\001’ --lines-terminated-by ‘\n’ -m 1

SPARK

1、spark的生态有哪些
Spark 生态系统以Spark Core 为核心,能够读取传统文件(如文本文件)、HDFS、Amazon S3、Alluxio 和NoSQL 等数据源,利用Standalone、YARN 和Mesos 等资源调度管理,完成应用程序分析与处理。这些应用程序来自Spark 的不同组件,如Spark Shell 或Spark Submit 交互式批处理方式、Spark Streaming 的实时流处理应用、Spark SQL 的即席查询、采样近似查询引擎BlinkDB 的权衡查询、MLbase/MLlib 的机器学习、GraphX 的图处理和SparkR 的数学计算等。
在这里插入图片描述
2、讲讲你对spark原理架构的理解
在这里插入图片描述
Spark Core:包含Spark的基本功能;尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的
Spark SQL:提供通过Apache Hive的SQL变体Hive查询语言(HiveQL)与Spark进行交互的API。每个数据库表被当做一个RDD,Spark SQL查询被转换为Spark操作。
Spark Streaming:对实时数据流进行处理和控制。Spark Streaming允许程序能够像普通RDD一样处理实时数据
MLlib:一个常用机器学习算法库,算法被实现为对RDD的Spark操作。这个库包含可扩展的学习算法,比如分类、回归等需要对大量数据集进行迭代的操作。
GraphX:控制图、并行图操作和计算的一组算法和工具的集合。GraphX扩展了RDD API,包含控制图、创建子图、访问路径上所有顶点的操作.
Spark架构的组成图:
在这里插入图片描述
Cluster Manager:在standalone模式中即为Master主节点,控制整个集群,监控worker。在YARN模式中为资源管理器
Worker节点:从节点,负责控制计算节点,启动Executor或者Driver。
Driver: 运行Application 的main()函数
Executor:执行器,是为某个Application运行在worker node上的一个进程
3、spark的运行模式有哪些
Spark 的运行模式有 Local(也称单节点模式),Standalone(集群模式),Spark on Yarn(运行在Yarn上),Mesos以及K8s等常用模式
Local 模式是最简单的一种Spark运行方式,它采用单节点多线程(cpu)方式运行,local模式是一种OOTB(开箱即用)的方式,只需要在spark-env.sh导出JAVA_HOME,无需其他任何配置即可使用,因而常用于开发和学习
Spark可以通过部署与Yarn的架构类似的框架来提供自己的集群模式,该集群模式的架构设计与HDFS和Yarn大相径庭,都是由一个主节点多个从节点组成,在Spark 的Standalone模式中,主,即为master;从,即为worker.
Spark on Yarn 模式就是将Spark应用程序跑在Yarn集群之上,通过Yarn资源调度将executor启动在container中,从而完成driver端分发给executor的各个任务。将Spark作业跑在Yarn上,首先需要启动Yarn集群,然后通过spark-shell或spark-submit的方式将作业提交到Yarn上运行。

数据仓库应用

应用案例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章