大数据

作者: dataTONG | 来源:发表于2020-05-16 22:42 被阅读0次

    尚硅谷的hadoop视频

    【mapreduce缺点】不擅长实时计算(如双11的实时大屏)、不擅长流式计算(mapreduce输入的是静态数据,如日、月、年数据,可替代使用sparkstreaming)、不擅长有向图DAG计算(因为mapreduce作业的输出结果会写入磁盘,造成大量的磁盘IO,导致性能低下)。



    mapper阶段3件事
    reducer阶段2件事
    driver阶段的3210操作

    序列化】把内存中的对象(数组、集合),转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。hadoop自己开发了一套序列化机制(writable)。
    【数据块(物理上) VS 数据切片(逻辑上)】block是HDFS物理上把数据分成一块一块。
    数据切片只是在逻辑上对输入进行分片,并不会在磁盘上将其切分成片进行存储。
    【数据切片与maptask并行度决定机制:切片大小决定了开多少个maptask】一个job的map阶段并行度由客户端在提交job时的切片数决定。



    【提交job,到底提交哪些信息?】切片、xml、jar。上述3样说清楚,说明看过源码。
    yarn集群模式128M;local本地模式32M;128M切成1片????

    之前

    总结:GFS解决数据存储问题、mapreduce(map是映射、reduce是规约)和spark解决并行计算(门槛高,HIVE封装成友好简单的mapreduce程序,即自动翻译)、
    分3类:数据框架(hadoop、spark)、数据存储、执行引擎。
    【计算向数据靠拢】在执行mapreduce任务时,因为移动计算的成本往往比移动数据的成本低,故尽量减少数据在网络传输上的消耗。
    【HBase】一个建立在HDFS,面向列的可伸缩、高可用、高性能的分布式数据库。

    文件系统:
    数据库:存储数据(结构化数据)的仓库。

    • 关系型数据库
    • ??

    Sqoop(SQL-to-Hadoop)抽取mysql数据到hive

    【hadoop:YARN 协调HDFS(存储)和MapReduce(计算)的资源调度

    • hadoop主要组件有三个(狭义上的hadoop):HDFS 分布式文件存储系统(存储读取数据:适合存储少量大文件、而非大量小文件),MapReduce 分布式计算框架(对数据进行计算:map是映射、reduce是规约),YARN 另一种资源调度器【对资源(cpu,内存等)进行分配】,简单来说HDFS主要功能就是存储读取数据,MapReduce【 MapReduce 是一个计算框架,客户端发布一个任务叫Job ,会拆分成Map 和Reduce 两种任务,形成任务队列,叫集群去执行】主要功能就是对数据进行计算,得出我们想要的新数据,YARN就是在前两个干活的时候,对资源(cpu,内存等)进行分配。
    • HDFS提供了高可靠性(通过自身的副本机制实现)、高扩展性(通过往集群中添加机器来实现线性扩展)、高吞吐率(读文件时,HDFS会将离提交任务节点最近位置的目标数据反馈给应用)的数据存储与访问服务。
    • Hadoop生态圈(广义上的Hadoop):还有ZooKeeper,Pig,Chukwa,Hive,Hbase,Mahout,flume等。

    hadoop、spark这两个框架之间的关系并非互斥,既有合作又有竞争:Spark提供的实时内存计算(Spark是MapReduce的替代方案,而且兼容HDFS、Hive等分布式存储层,可融入Hadoop的生态系统,以弥补缺失MapReduce的不足)比Hadoop中的Mapreduce速度更快,但由于Hadoop更广泛地应用于存储,Spark也会依赖HDFS存储数据。

    橘红色圈组成了Spark生态圈,其余部分组成了Hadoop生态圈

    【计算1000TB的数字大文件的平均数】HDFS可以存1000TB的文件,他会把文件切分成一个个的小文件块,然后存在多个服务器的硬盘上,这样就解决了存储这1000TB文件的问题,整个大文件分布在HDFS的存储集群上,MapReduce 会对算出所有数的平均数这个任务进行分割,也会有个集群,集群中每个计算机都拿一小块数据,进行对一小块数据的计算,然后每个小块的计算结果再汇总,最后得出最后的结果,例如把每个小块的数据全部累加,最后合并的时候除以总数,这样计算能力就能通过加机器的方法扩展,YARN 协调HDFS(存储)和MapReduce(计算)的资源调度

    大数据----“数据倾斜”的问题
    数据倾斜解决方法:
    1.单个值有大量记录

    • 增加reduce 的jvm内存(效果可能不好);
    • map 阶段将造成倾斜的key 先分成多组,例如 aaa 这个 key,map 时随机在 aaa 后面加上 >1,2,3,4 这四个数字之一,把 key 先分成四组,先进行一次运算,之后再恢复 key 进行最终运算;
      2.唯一值较多
    • 增加reduce 个数

    map是拆解(汽车拆成零件):每个厨子切分交到(split分配?)手里的食物;
    shuffle归类(相同的单词聚集到相同的盒子,不同的单词聚集到不同的盒子);
    reduce是拼装(零件变成变形金刚):shuffle分组,reduce求和??
    finalize高度并行的过程。
    【mapreduce六大过程】得到数据、切分、归类、组装、交付。map拿数据就是split,reduce拿数据就是shuffle

    GFS、MapReduce、BigTable是Google大数据的三大理论
    在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。
    HDFS,是Hadoop Distributed File System的简称,是Hadoop抽象文件系统的一种实现。HDFS的文件分布在集群机器上,同时提供副本进行容错及可靠性保证。例如客户端写入读取文件的直接操作都是分布在集群各个机器上的,没有单点性能压力。
    HDFS(Hadoop Distributed File System),作为Google File System(GFS)【解决数据存储问题】的实现 mapreduce六大过程2

    hivesql与sparksql

    【Hive是什么?】一个建立在分布式存储系统(这里指HDFS)上的SQL引擎。本质上来说,它还是一个面向读的、面向分析的SQL工具。
    Hive不支持更改数据的操作,Hive基于数据仓库,提供静态数据的动态查询。其使用类SQL语言,底层经过编译转为MapReduce程序,在Hadoop上运行,数据存储在HDFS上。
    【Hive适合的是什么场景呢?】数据仓库。基于Hadoop做一些数据清洗啊(ETL)、报表啊、数据分析啊什么的。
    【Hive有什么缺点?】天天插入、更新、删除数据,还要求强一致性和毫秒级相应,这个不仅不是Hive的长处,当前的Hadoop框架就不适合这玩意儿。
    【Spark是啥?】Spark就是以RDD为核心的计算框架(内存计算),它产生的背景就是MR难用!慢!(因此难以满足实时性要求较高的场景),而Spark集合了MapReduce的所有优点,并将中间结果输出到内存,减少了读写磁盘和HDFS的次数,从而提高了性能。
    【RDD】弹性分布式数据集Resilient Distributed Dataset,是数据在分布式环境中的一个抽象,可理解为编写Spark程序就是编写如何操作RDD。
    【Spark有什么缺点?】发展时间短,且大数据领域Hive、HBase等等都已经快形成了事实标准,但吹嘘自己的一栈式数据处理平台,试图从易用性上争取用户。
    【SparkSQL究竟重点在做什么呢?】性能、稳定性、标准兼容性
    Spark SQL和Hive使用场景?

    百度网盘扩容

    传智播客大数据就业班完整版 密码:6bct(包括离线hadoop hive 、实时storm、基于内存spark三个部分均有相应的项目)

    尚硅谷大数据线下班全套视频(2019年6月毕业班) 提取码:0o0i

    110G大数据算法机器语言学习视频课程(超级有价值) 密码: atj2

    相关文章

      网友评论

          本文标题:大数据

          本文链接:https://www.haomeiwen.com/subject/kvsdohtx.html