什么是大数据

  • 电商推荐系统

    • 大量订单如何存储(十年)
    • 大量的订单如何计算(不关心算法)
  • 天气预报
    • 大量的天气数据如何存储
    • 大量天气数据如何计算
  • 核心问题
    • 数据的存储:分布式文件系统(HDFS)
    • 数据的计算:分布式计算(MapReduce、Spark RDD)

数据仓库

  • 传统方式:搭建数据仓库(Data Warehouse)解决大数据问题
  • 数据仓库就是一个数据库(Oracle、MySQL、MS)
    • Oracle DBCA
    • 一般只做查询(select)
    • 大数据也是一般只做查询(分析,不修改数据)
    • Hadoop和Spark都可看做数据仓库的一种实现方式
    • Oracle、MySQL是单机版数据库,无法实现分布式集群
    • 搭建过程
      • 数据源

        • RDBMS(结构化数据)
        • 文本、日志等(非结构化数据)
        • 其他数据
      • 数据清洗:抽取、转换、加载数据(ETL)
      • 原始数据保存到数据库(Oracle、MySQL)
      • 处理数据(SQL、JDBC)
      • 处理后的数据保存到数据集市(Oracle、MySQL)
      • 提供给最终用户(系统)

OLTP和OLAP

  • OLTP

    • Online Transaction Processing 联机事务处理
    • insert、update、delete
    • 传统关系型数据库解决的问题
  • OLAP
    • Online Analytic Processing 联机分析处理,一般只做查询select(分析,不支持事务)
    • 数据仓库是一种OLAP
    • Hadoop、Spark可看做一种数据仓库解决方案

Google三篇论文

  • GFS(Google File System)
    • 分布式文件系统

      • 硬盘不够大->加硬盘
      • 硬盘不够安全->冗余
    • Oracle费用:50万/年/CPU
    • 大量使用pc服务器(去掉机箱、外设、硬盘)
    • 数据存在内存,速度快,用冗余保证安全
    • HDFS:通过数据块传输(128M),水平复制,默认冗余度3
    • 机架感知:兼顾安全与效率(HDFS封装)
    • 倒排索引(Reverted Index)
      • 数据保存在了哪个硬盘上?
      • 记录数据保存的位置信息(元信息)
      • 索引:目录(索引表,保存行地址,类似书后名词索引按字母顺序排序),提高查询效率(没有索引时需要遍历)
      • 单词保存在哪句话中?分词,建立目录(单词表),记录单词位置信息
      • 可使用MapReduce建立倒排索引

  • MapReduce

    • 分布计算模型
    • 问题来源:PageRank(网页排名)
      • 搜索结果中,Rank越高的Page排名越靠前
      • 被指向越多的网页Rank越高
      • 用矩阵记录Rank
      • 用MapReduce计算大矩阵
    • 思想:先拆分、再合并
    • 编程模型
      • MR任务:job=map+reduce
      • Map的输出是Reduce的输入
      • 一个MR任务,一共存在4对输入和输出
        • 所有输入输出都是<key value>形式
        • Map阶段:<k1 v1>输入,<k2 v2>输出
        • Reduce阶段:<k3 v3>输入,<k4 v4>输出
      • k2=k3,v2和v3数据类型一致,v3是一个集合,该集合中的每个值就是v2
        • 如下图v3=(10,18,27)
      • 所有<key value>数据类型必须是Hadoop自己的数据类型
        • IntWritable LongWritable Text NullWritable
        • Hadoop类型实现了Hadoop的序列化机制(Writable接口)
      • 从2.x开始,MR运行在Yarn容器中(类似JSP部署在Tomcat)
        • Yarn=ResourceManager(主节点)+NodeManager(从节点)
      • MR任务处理的数据是HDFS的数据
    • mapreduce实例:/share/hadoop/mapreduce/example
    • web console:localhost:8088/cluster

  • BigTable(大表)

    • 关系型数据库

      • 基于关系模型(用二维表保存数据)
      • 行式数据库
      • MySQL、Oracle
      • insert update delete 性能高
    • 常见NoSQL数据库
      • Redis:内存数据库
      • HBase:面向列
      • MongoDB:面向文档(BSON文档:JSON的二进制)
      • select 性能高
    • 核心思想
      • 把所有数据存入一张表
      • 数据冗余
      • 提高性能(空间换时间)
      • 把同样的数据存入Oracle和大表
      • HBase = ZooKeeper + HMaster(主节点) + RegionServer(从节点)

参考

大数据学习路线

https://blog.csdn.net/juan11115/article/details/102834913

https://www.zhihu.com/question/351790709/answer/865237610

http://www.imooc.com/article/270280

[DB] 大数据概述的更多相关文章

  1. 【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)

    1 大数据概述 大数据特性:4v volume velocity variety value 即大量化.快速化.多样化.价值密度低 数据量大:大数据摩尔定律 快速化:从数据的生成到消耗,时间窗口小,可 ...

  2. 大数据为什么要选择Spark

    大数据为什么要选择Spark Spark是一个基于内存计算的开源集群计算系统,目的是更快速的进行数据分析. Spark由加州伯克利大学AMP实验室Matei为主的小团队使用Scala开发开发,其核心部 ...

  3. 【机器学习实战】第15章 大数据与MapReduce

    第15章 大数据与MapReduce 大数据 概述 大数据: 收集到的数据已经远远超出了我们的处理能力. 大数据 场景 假如你为一家网络购物商店工作,很多用户访问该网站,其中有些人会购买商品,有些人则 ...

  4. 大数据相关概念和hdfs

    大数据 概述 大数据是新处理模式才能具备更多的决策力,洞察力,流程优化能力,来适应海量高增长率,多样化的数据资产. 大数据面临的问题 怎么存储海量数据(kb,mb,gb,tb,pb,eb,zb) 怎么 ...

  5. 大数据运维尖刀班 | 集群_监控_CDH_Docker_K8S_两项目_腾讯云服务器

    说明:大数据时代,传统运维向大数据运维升级换代很常见,也是个不错的机会.如果想系统学习大数据运维,个人比较推荐通信巨头运维大咖的分享课:https://url.cn/5HIqOOr,主要是实战强.含金 ...

  6. 有必要了解的大数据知识(一) Hadoop

    前言 之前工作中,有接触到大数据的需求,虽然当时我们体系有专门的大数据部门,但是由于当时我们中台重构,整个体系的开发量巨大,共用一个大数据部门,人手已经忙不过来,没法办,为了赶时间,我自己负责的系统的 ...

  7. Laxcus大数据管理系统2.0(2)- 第一章 基础概述 1.1 基于现状的一些思考

    第一章 基础概述 1.1 基于现状的一些思考 在过去十几年里,随着互联网产业的普及和高速发展,各种格式的互联网数据也呈现爆炸性增长之势.与此同时,在数据应用的另一个重要领域:商业和科学计算,在各种新兴 ...

  8. 大数据技术之_19_Spark学习_01_Spark 基础解析 + Spark 概述 + Spark 集群安装 + 执行 Spark 程序

    第1章 Spark 概述1.1 什么是 Spark1.2 Spark 特点1.3 Spark 的用户和用途第2章 Spark 集群安装2.1 集群角色2.2 机器准备2.3 下载 Spark 安装包2 ...

  9. 大数据及Hadoop的概述

    一.大数据存储和计算的各种框架即工具 1.存储:HDFS:分布式文件系统   Hbase:分布式数据库系统   Kafka:分布式消息缓存系统 2.计算:Mapreduce:离线计算框架   stor ...

随机推荐

  1. [Fundamental of Power Electronics]-PART II-9. 控制器设计-9.4 稳定性

    9.4 稳定性 众所周知的是,增加反馈回路可能会导致原本稳定的系统变得不稳定.尽管原变换器传递函数(式(9.1))以及环路增益\(T(s)\)不包含右半平面极点,但式(9.4)的闭环传递函数仍然可能存 ...

  2. python进阶(一)变量与数据类型、python之禅

    一.变量: 1.变量组成:由数据.字母与下划线组合 2.不能以数字开头 3.python关键字与函数名不能作为变量名 4.当字符串变量中包含引号时,可使用单引号与双引号进行区分,或转义 print(& ...

  3. 大学四年,总结一套适合小白的Java自学路线和方法

    前言篇 大家好,我是bigsai 好久不见,甚是想念,文章同时收录在回车课堂(文底阅读原文可达). 无论你是大学生还是在职人员,想学Java时,都会面临两个选择,自学或者报班.报班通常太费钱,时间又不 ...

  4. day16.网络编程1

    1 osi七层,tcp/ip 5层 1 cs架构和bs架构 2 互联网 3 osi七层.5层(5层名字记住:重点) -物理层 -网线,光纤 -数据链路层 -网卡 -网络层 -路由器 -传输层(运输层) ...

  5. IDEA常用个性化设置

    自己对于IDEA一些个性化设置,这里简单记录一下,省的之后四处百度 常用插件安装 CodeGlance:代码编写区域右侧小地图 GenerateAllSetter:针对new出来的实体类对象快速调用G ...

  6. Fiddler高级用法

    Fiddler高级用法 1. 简单用法 Fiddler作为一个基于http协议的抓包工具,一直在业界有广泛使用.很多测试或者前端在使用Fiddler时,仅仅用于查看前端和服务端之间的请求信息.包括我作 ...

  7. CSS新特性contain,控制页面的重绘与重排

    在介绍新的 CSS 属性 contain 之前,读者首先需要了解什么是页面的重绘与重排. 之前已经描述过很多次了,还不太了解的可以先看看这个提高 CSS 动画性能的正确姿势. OK,下面进入本文正题, ...

  8. 12- Jmeter逻辑控制器

    正则表达式 -1代表所有 1代表第一个 0表示随机 逻辑控制器 仅一次控制器 转换控制器(广义并发,构造混合场景) 引入函数助手 并发: 广义并发的并发: 还可以添加两个线程组: 一个线程组访问 首页 ...

  9. yapi简介,安装及使用

    简介 ​ YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互体验, ...

  10. SSDT表概念详解

    SSDT 的全称是 System Services Descriptor Table,系统服务描述符表. 这个表就是一个把 Ring3 的 Win32 API 和 Ring0 的内核 API 联系起来 ...