首先我们要知道什么是大数据
大数据顾名思义:就是短时间内快速产生大量多种多样的有价值的信息 (个人理解)
大家都知道双十一,双十二淘宝产生的交易数量,数据不仅多而且还很杂,有可能在某一秒就可以产生上G或者上T的数据。而怎么把这些数据快速并且有效的存储起来,并把其中有价值的提取出来?

有两种可以解决数据量过大的问题

1、垂直扩展:就是指改变你电脑内存的硬盘量,由于电脑硬盘装载有限制,所以配合横向扩展使用
2、横向扩展:多台电脑或者服务器连接到一起使用,简单廉价的服务器或者pc端都可以

什么是Hadoop?

Hadoop的安装模式

1、本地模式 1台
2、伪分布模式 1台
3、全分布模式:最少3台

根据谷歌的三大论文衍生出

MapReduce 中文版
Google File System 中文版
BigTale 中文版

GFS ------ HDFS分布式文件系统 ---------- 分布式的存储
MapReduce ----------- 分布式的处理
BigDate ---------- HBase

HDFS主从架构
      主节点 (Namenode)
      从节点(Datenode)
以及一个可有可无的 client
HDFS的读写机制:
                        存文件
                        读文件
为了解决安全问题:
                        备份
初步掌握HDFS的架构及原理

yarn — 资源和任务调度

为了让MapReduce (批处理)处理更快,产生了spark
spark 有很多种
          Spark Core
          SparkSql — 可以使用sql处理
          SparkStreaming — 流式处理
          Mllib — 机器学习库
          graphx—Spark已经停止维护

批处理:就比如说我们坐那种直上直下的电梯,假如你想坐的话你在一楼,可是电梯在五楼,那么你就需要等一会,在你等的期间别人也想坐电梯也在等,等电梯来了再一起把你们带上去
流式处理:比如商城或者地铁站的电梯,他是不管你有没有人他都在跑,并且只要你要坐你不需要等你上去他就走

HDFS 分布式的存储
yarn 资源和任务的调度
MapReduce 计算引擎 分布式计算框架(计算向数据移动–>移动计算而非移动数据)
mapreduce 批处理:将任务分批次处理,类似升降电梯,有等待时间
spark:
spark core spark的核心
sparkSQL 可以执行SQL语句
sparkStreaming 流式处理:没有等待时间,时时任务时时处理得到结果,类似电梯
mllib 机器学习库
hive 是Hadoop的一个数据仓库工具 ,可以执行SQL语句
zookeeper 分布式应用程序协调服务
kafka 一种高吞吐量的分布式发布订阅消息系统
flume 一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统
flink 一种流处理框架 Flink以数据并行和流水线方式执行任意流数据程序
storm 分布式实时计算系统
hbase 一个分布式的、面向列的开源数据库

大数据的5v特性:

一、Volume:数据量大,包括采集、存储和计算的量都非常大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。

二、Variety:种类和来源多样化。包括结构化、半结构化和非结构化数据,具体表现为网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求。

三、Value:数据价值密度相对较低,或者说是浪里淘沙却又弥足珍贵。随着互联网以及物联网的广泛应用,信息感知无处不在,信息海量,但价值密度较低,如何结合业务逻辑并通过强大的机器算法来挖掘数据价值,是大数据时代最需要解决的问题。

四、Velocity:数据增长速度快,处理速度也快,时效性要求高。比如搜索引擎要求几分钟前的新闻能够被用户查询到,个性化推荐算法尽可能要求实时完成推荐。这是大数据区别于传统数据挖掘的显著特征。

五、Veracity:数据的准确性和可信赖度,即数据的质量。

Volume(大量)        Velocity(高速)        Variety(多样)
Value(低价值密度)        Veracity(质量)

不管是数据上传还是下载都是按照 block块 的形式将大文件进行相应的存储
   1.x中数据块的大小是64M
   2.x中数据块的大小是128M

备份是为了解决数据安全问题

1、文件线性切割成块(block):偏移量 offset(byte)

文件平均切成N块,向上取整,比如你装水,有13.1的水,每瓶只能装1,装完13了后还剩下0.1,那么还要取一个完整的瓶子来装,就是装了14个瓶,
偏移量:就是指 数据存到块中,做个标记id,然后可以根据id找到这个数据

2、block 分散存储在集群结点中

集群里有机架N个,每个机架里还有N个服务器,每个服务器就相当于一个节点,每个机架里面只能有一个NameNode,多个DateName,每个服务器里可以都有DateName,其中有一个服务器可以包括一个NameNode和一个DateName
这里假如有两个机架,每个机架里有四个服务器,备份在机架1里的NameNode节点上一个,剩下的备份在机架2上,并且要备份的节点不能一样

3、单一文件block大小一致,文件与文件可以不一致

一个文件切成block块,切的大小要一模一样
文件和文件的大小就随意了

4、block可以设置副本数,副本分散在不同的节点中

在切块的同时可以设置你要备份的数量,副本最好分散在不同的节点中,以防数据丢失或者损坏,
为什么不放在一个节点呢? 因为万一这个节点的机器损坏了或者出现问题而你现在刚好需要这个数据,那么你就可以从备份获取,不会因为你出现问题的节点而读取不了你所需要的数据

5、副本数不要超过节点数量

备份的数量不要超过你节点的数量,假如你有3个节点,可你想备份4份甚至更多,那么肯定在有一个节点里面你要备份2份甚至更多,如果这个节点损坏那么还是读取不了,所以不要做多于节点的备份

6、文件上传可以设置block大小和副本数

在文件切割成block块的时候可以设置block 块的大小,以及你要备份的数量

7、已上传的文件block副本数可以调整,大小不变

面对已经切割好的block块,他的block的大小以及你要备份的数量不可以改变,只有在你切割block块的时候可以设置block块的大小以及你要备份的数量

8、只支持一次写入多次读取,同一时刻只有一个写入者

同一时间只支持一次写入多次读取,可以有很多人读,但只能有一个人写,不然就乱套了

写操作
1、有一个大文件
2、client会将大文件进行切块              大文件的大小/128M=block块数
3、向NameNode汇报
                                    1.块数
                                    2.文件的大小
                                    3.文件的权限
                                    4.文件的属主
                                    5.文件的上传时间
4、client切下一块128M
5、client会向NameNode去申请资源 ---- DateNode的信息
6、NameNode会返回一批负载不高的DateNode给client
7、client会向DateNode里面发送block并且做好 备份
8、DateNode存放block块之后会向NameNode汇报情况

读请求
1、NameNode会向client发送一个请求,client接收到请求之后,会向NameNode去申请节点信息(blockid)
2、NameNode会向client发送一些节点信息
3、client获取到节点信息之后去DateNode上拿取数据 – 就近原则

备份机制

1、集群内提交      在提交的节点上放置block
      集群外提交      选择一个负载不高的节点进行存放
2、放置在与第一个备份不同机架的任意节点上
3、放置在第二个机架的不同节点上

pipeline 管道
1、NameNode在返回给client一些DateNode的信息之后
2、client会和这些DateNode形成一个管道并且将block块切割成一个个ackPackAge(64K) 大小的块传输
3、DataNode会从管道中拿取相应的数据进行存储
4、当存储完成之后,DataNode会向NameNode进行汇报

比如client给3个DateNode一份文件让他们存储起来,平常就是一个文件发三次,这样造成浪费以及不必要的意外,但是如果用pipeline管道,把文件切成ackPackAge再在client和DateNode之间连接一个管道这样数据传输就会快而且还很安全

大数据概览以及当下实用的主流开发相关推荐

  1. 基于Neo4j中医方剂药材知识图谱大数据可视化分析系统的设计与开发

    基于Neo4j中医方剂药材知识图谱大数据可视化分析系统的设计与开发 设计背景 这个系统的开发初衷是笔者希望通过这个系统来学习一下Neo4j的相关技术,包括与python.java的对接.可视化等方面, ...

  2. 深入掌握大数据Kafka的使用(基于Python开发)-张明阳-专题视频课程

    深入掌握大数据Kafka的使用(基于Python开发)-3人已学习 课程介绍         深入掌握大数据Kafka实战视频教程,本课程为实战教学,主要介绍了Kafka的生产者.消费者,其中重点内容 ...

  3. 大数据没有降温,已融入主流科技领域

    大数据不是降温了,而是已融入主流 大数据已经融入主流科技领域,被视为传统数据分析的外延,而且,人们了解大数据概念的意愿并不十分强烈,更愿意得到实际运用. 几年前,人们还在竭力消化大数据的概念,如今这个 ...

  4. 极光大数据:2017年10月主流共享单车app运营报告(附下载)

    报告下载:添加199IT官方微信[i199it],回复关键词[2017年10月主流共享单车app运营报告] 共享单车行业经历了一轮爆发式增长后,出现了马太效应,第一梯队的ofo摩拜越战越勇,而落后者则 ...

  5. 数据科学与大数据技术专业领域的实用工具

    数据科学与大数据技术是一门偏向应用的学科领域,因此工具就成为重要的组成部分.在工作中,数据科学家如果选择有效的工具会带来事半功倍的效果.一般来说,数据科学家应该具有操作数据库.数据处理和数据可视化等相 ...

  6. 专访CMU邢波教授:机器学习与医疗大数据,及大规模机器学习系统的开发

    随着大数据的深入应用,机器学习已经进入医疗领域.卡耐基梅隆大学(Carnegie Mellon University,CMU)计算机科学学院教授邢波(Eric Xing)正在主持CMU的一个机器学习和 ...

  7. hadoop jar包_【大数据学习】Hadoop的MR分布式开发小实战

    前提:hadoop集群应部署完毕. 一.实战科目 做一个Map Reduce分布式开发,开发内容为统计文件中的单词出现次数. 二.战前准备 1.本人在本地创建了一个用于执行MR的的文件,文件中有209 ...

  8. 2021年大数据Spark(十一):应用开发基于IDEA集成环境

    目录 Spark应用开发-基于IDEA 创建工程 WordCount本地运行 WordCount集群运行 注意 修改代码如下 打成jar包 改名 上传jar包 提交到Yarn WordCount-Ja ...

  9. 大数据上传-GB/T 32960测试开发实践

    文章目录 前言 GB/T 32960介绍 GB/T 32960测试开发 总结 参考文献 前言 数据时代,数据为王.车辆网联化为汽车数据时代提供技术支撑,更多的数据可被收集,但是哪些数据需要被收集,又如 ...

  10. M3DGIS三维电子沙盘数字沙盘大数据人工智能模拟对抗推演系统开发教程视频第一课

    M3DGIS开发培训视频第一课https://live.csdn.net/v/168403 该数据库中只提供 成都市火车南站附近的数据请注意,104.0648,30.61658 而且该公用服务器带宽不 ...

最新文章

  1. 字符常量和仅包含一个字符的字符串之间的区别
  2. vivado编译出错 [Synth 8-729] [Synth 8-787]
  3. 制作openstack Centos镜像 -- Example: CentOS image
  4. system的相关用法
  5. EF使用CodeFirst创建数据库和表
  6. upc组队赛15 Supreme Number【打表】
  7. 当电信诈骗犯遇上程序员,技术决定成败!
  8. there is no permission with id `12`
  9. ASP获取数据库表名,字段名以及对字段的一些操作
  10. vfp报表纸张设置_谈VFP9的自定义纸张的设计!
  11. macOS中LaTeX报错Package fontspec Error: The font “SimHei“ cannot be found
  12. 谷歌出品!机器学习中英文术语对照表
  13. OBS 录制没有声音怎么办?
  14. 导入matplotlib.pyplot as plt画图问题Matplotlib created a temporary config/cache directory at /tmp/matplotl
  15. 交换机与路由器登录密码破解
  16. 一行搞定List<T>中的成员数量统计
  17. 几款笔记软件的优缺点
  18. Shinobi视频监控平台
  19. Unity 回合制战斗系统(中级篇)-血条和伤害数值
  20. 2.12美团点评技术

热门文章

  1. mysql用户角色权限表的关系_用户、角色、权限表的关系(mysql)
  2. Ubuntu下Git安装图形化代码合并工具kdiff3
  3. 分区副本重分配、数据迁移、副本扩缩容
  4. 关于Exception出现application exception overridden by commit exception
  5. 在word文档中添加上角标和下角标
  6. 华泰证券python算法工程师_华泰证券高薪诚聘 技术大牛/运维平台架构师
  7. 联想微型计算机怎么光盘启动,联想笔记本电脑win10怎么设置光盘启动
  8. STM32毕业设计项目
  9. android剪贴板历史,可能是史上最便捷的剪贴板应用 -- Native Clipboard #Android
  10. c语言单片机外部中断程序,单片机外中断汇编语言和C语言程序