数据处理

Spark RDD 概念以及核心原理

倖福魔咒の 提交于 2019-12-26 07:15:56
2、依赖关系下的数据流视图         在spark中,会根据RDD之间的依赖关系将DAG图划分为不同的阶段,对于窄依赖,由于partition依赖关系的确定性,partition的转换处理就可以在同一个线程里完成,窄依赖就被spark划分到同一个stage中,而对于宽依赖,只能等父RDD shuffle处理完成后,下一个stage才能开始接下来的计算。   因此spark划分stage的整体思路是:从后往前推,遇到宽依赖就断开,划分为一个stage;遇到窄依赖就将这个RDD加入该stage中。因此在图2中RDD C,RDD D,RDD E,RDDF被构建在一个stage中,RDD A被构建在一个单独的Stage中,而RDD B和RDD G又被构建在同一个stage中。   在spark中,Task的类型分为2种:ShuffleMapTask和ResultTask;   简单来说,DAG的最后一个阶段会为每个结果的partition生成一个ResultTask,即每个Stage里面的Task的数量是由该Stage中最后一个RDD的Partition的数量所决定的!而其余所有阶段都会生成ShuffleMapTask; 已经为大家精心准备了大数据的系统学习资料,从Linux-Hadoop-spark-......,需要的小伙伴可以点击

Hadoop阅读笔记(一)——强大的MapReduce

天大地大妈咪最大 提交于 2019-12-26 02:42:27
前言: 来园子已经有8个月了,当初入园凭着满腔热血和一脑门子冲动,给自己起了个响亮的旗号“大数据 小世界”,顿时有了种世界都是我的,世界都在我手中的赶脚。可是......时光飞逝,岁月如梭~~~随手一翻自己的博客,可视化已经快占据了半壁江山,思来想去,还是觉得把一直挂在嘴头,放在心头的大数据拿出来说说,哦不,是拿过来学学。入园前期写了有关 Nutch 和 Solr 的自己的一些阅读体会和一些尝试,挂着大数据的旗号做着爬虫的买卖。可是,时间在流失,对于大数据的憧憬从未改变,尤其是Hadoop一直让我魂牵梦绕,打今儿起,开始着手自己的大数据系列,把别人挤牙膏的时间用在学习上,收拾好时间,收拾好资料,收拾好自己,重返Hadoop。 以下是对于大数据学习的一种预期规划: 主要理论指导材料:Hadoop实战2 主要手段:敲代码、结合API理解 预期目标:深入了解Hadoop,能为我所用 正文: 记得去年还在学校写小论文的时候,我花了一天的时间,懵懵懂懂的把Hadoop的环境给打起来了,今年出来接触社会,由于各种原因,自己又搭了几次伪分布式的环境,每次想学习Hadoop的心态好比每次背单词,只要一背单词,总是又从“abandon”开始背起。所以环境这块就不多说了,网上这样的帖子早已烂大街(因为Hadoop版本更新很快,目前应该是到2.6版本了,所以博文肯定一直在推陈出新)。用的Ubuntu12

Hadoop简介

假如想象 提交于 2019-12-25 19:58:27
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Hadoop是什么? Hadoop 是一个由Apache基金会所开发的 分布式系统 基础架构。主要解决海量数据 存储 和海量数据的 分析计算 问题。广义上来说,Hadoop通常是指一个更广泛的概念———Hadoop生态圈。 Hadoop的优势 高可靠性 :Hadoop底层维护多个数据副本,所以即使Hadoop的某个计算元素或存储出现故障,也不会丢失数据。 高扩展性 :在集群间分配任务数据,可方便扩展数以千计的节点。 高效性 :在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。 高容错性 :能够自动将任务重新分配。 低成本 :Hadoop项目是开源的,项目软件的成本因此会大大降低。 Hadoop的组成 Common :为 Hadoop 其他模块提供支持的基础模块。 HDFS (Hadoop Distributed File System)是可扩展、容错、高性能的分布式文件系统,异步复制,一次写入多次读取,主要负责存储。 MapReduce 为分布式计算框架,包含map(映射)和 reduce(归约)过程,负责在 HDFS 上进行计算。 YARN :任务分配和集群资源管理框架。 Hadoop的生态圈 HBase :HBase(Hadoop Database)是一个高可靠性、高性能、面向列

Spark记录-Scala数组

老子叫甜甜 提交于 2019-12-25 17:52:29
Scala提供了一种数据结构叫作数组,数组是一种存储了相同类型元素的固定大小顺序集合。数组用于存储数据集合,但将数组视为相同类型变量的集合通常更为有用。 可以声明一个数组变量,例如: numbers ,使用 numbers[0] , numbers[1] 和 ... , numbers[99] 来表示单个变量,而不是分别地声明每个变量,例如 number0 , number1 , ... 等变量。 本教程介绍如何使用索引变量声明数组变量,创建数组和使用数组。数组的第一个元素的索引是数字 0 ,最后一个元素的索引是元素的总数减去 1 。 声明数组变量 要在程序中使用数组,必须先声明一个变量来引用数组,并且必须指定变量可引用的数组类型。 以下是声明数组变量的语法。 语法 var z:Array[String] = new Array[String](3) // 或者 var z = new Array[String](3) Scala 这里,变量 z 被声明为可以容纳三个元素的字符串数组。可以将值分配给单个元素或访问每个元素,访问元素通过使用如下命令来完成: z(0) = "Zara"; z(1) = "Nuha"; z(4/2) = "Ayan" Scala 一般来说,索引可以是产生整数的任何表达式。还有一种定义数组的方法 - var z = Array("Maxsu",

Hadoop使用(一)

旧城冷巷雨未停 提交于 2019-12-25 16:51:14
hadoop框架 Hadoop使用主/从(Master/Slave)架构,主要角色有NameNode,DataNode,secondary NameNode,JobTracker,TaskTracker组成。 其中NameNode,secondary NameNode,JobTracker运行在Master节点上,DataNode和TaskTracker运行在Slave节点上。 1,NameNode NameNode是HDFS的守护程序,负责记录文件是如何分割成数据块的,以及这些数据块被存储到哪些数据节点上。它的功能是对内存及I/O进行集中管理。 2,DataNode 集群中每个从服务器都运行一个DataNode后台程序,后台程序负责把HDFS数据块读写到本地文件系统。需要读写数据时,由NameNode告诉客户端去哪个DataNode进行具体的读写操作。 3,Secondary NameNode Secondary NameNode是一个用来监控HDFS状态的辅助后台程序,如果NameNode发生问题,可以使用Secondary NameNode作为备用的NameNode。 4,JobTracker JobTracker后台程序用来连接应用程序与Hadoop,用户应用提交到集群后,由JobTracker决定哪个文件处理哪个task执行,一旦某个task失败

spark

本小妞迷上赌 提交于 2019-12-25 12:09:29
Spark 什么是Spark Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行计算框架,Spark拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。 Spark是Scala编写,方便快速编程。 总体技术栈讲解 回顾hadoop spark 和 MapReduce 的区别 都是分布式计算框架,spark 基于内存,mapreduce基于hdfs, Spark 处理数据的能力一般是mr的十倍以上,Spark中除了基于内存计算外,还有DAG有向无环图来切分任务的执行先后顺序 MapReduce Spark: 快除了内存计算外,还有DAG Spark的运行模式 local 多用于本地测试。如在 eclipse,,idea中写程序测试 standalone: 是Spark自带的一个资源调度框架,它支持完全分布式 Yarn: Hadoop 生态圈里的一个资源调度框架,Spark也是可以基于Yarn 要基于Yarn来进行资源调度,必须实现

大数据中Hadoop是什么?

瘦欲@ 提交于 2019-12-25 11:57:35
提到大数据怎么可以不提Hadoop呢,Hadoop 是一个能够对大量数据进行分布式处理的软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。 Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对Hadoop失败的节点重新分布处理。 Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。 Hadoop 还是可伸缩的,能够处理 PB 级数据。此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用。 Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点: (1)高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。 (2)高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。 (3)高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。 (4)高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。 Hadoop带有用 Java 语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。 来源

大数据运维初探之Hadoop搭建(入门)

微笑、不失礼 提交于 2019-12-25 00:02:55
0.大数据技术分类 1.批处理框架:Mapreduce 批处理历史数据 2.流处理框架:storm 一直处理源源不断的数据 3.混合处理框架:spark 1.生态圈核心项目 1.HDFS分布式文件系统 2.yarn调度与管理 3.mapreduce数据并行处理 2.生态圈相关项目 1.hive数据仓库基础架构 2.hbase分布式数据库 3.ambari监控与管理 4.spark快速计算 5.zookeeper协调服务 等等 3.HDFS定义与特点 定义:hadoop分布式文件系统 特点:高容错,廉价机,高吞吐,大文件,分块存 关键词 1.block:128m/块 2.集群架构: Namenode:接受请求,纂写目录,管理文件》块》Datanode的关系 Datanode:分块存储,多副本 5.HDFS写数据过程 1.请求上船 2.Namenode检查路径 3.返回可以上船 4.上传一个block,指明副本数量 5.查询Datanode信息 6.返回写入Dn地址和策略 7.请求Dn传数据和副本数量 8.Dn之间建立副本通道 9.通道建立应答 10.Dn回应客户准备就绪 11.传输block 12.副本生成 13.通知Nn接受到了新数据,建立影射 14.返回客户成功 6.HDFS写过程 1.请求读取 2.Nn获取文件块信息 3.信息传回客户端 4.分别请求Dn 5.分别从Dn读取 7

大数据(hadoop)

人盡茶涼 提交于 2019-12-24 23:48:45
大数据基础平台 大数据:通俗就是收集、分析、处理大量的数据,然后从中获得结果的技术总称 大数据应用领域 广告、金融、能源生物、安全、电商等等 大数据的技术 批处理框架 历史性数据,有源有结束点 离线型数据 能处理全部的历史性数据 Apache MapReduce 流处理框架 处理实时性数据 源源不断的处理数据 Apache samza Apache storm 混合处理框架 既有批处理也有流处理 Apache flink Apache spark 项目定义 可靠的,可扩展的开源软件 是一个大数据处理框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集。 可以从单个服务器扩展到数千台计算机 集群中的媚态计算机都提供本地计算和存储 集群不是依靠硬件来提供高可用性,而是设计了用于检测和处理应用程序层的故障,从而在计算机集群上提供高可用性服务。 hadoop的核心项目 hadoop分布式文件系统(HDFS):一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。 hadoop YARN:作业调度和集群资源管理的框架。 hadoop MapReduce: 基于YARN的系统,用于并行处理大型数据集。 相关项目 Apache的其他Hadoop相关项目: Hadoop Common:支持其他Hadoop模块的常用实用程序 Ambari: 基于web的工具,用于配置

(一)Spark简介-Java&Python版Spark

旧街凉风 提交于 2019-12-24 15:33:21
Spark简介 视频教程: 1、 优酷 2、 YouTube 简介:   Spark是加州大学伯克利分校AMP实验室,开发的通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目Spark以其先进的设计理念,迅速成为社区的热门项目,围绕着Spark推出了Spark SQL、Spark Streaming、MLLib和GraphX等组件,也就是BDAS(伯克利数据分析栈),这些组件逐渐形成大数据处理一站式解决平台。   Spark使用Scala语言实现,它是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松的操作分布式数据集。 Spark特点: 1、运行速度快   Spark拥有DAG执行引擎,支持在内存中对数据进行迭代计算。官方提供的数据表明,如果数据由磁盘读取,速度是Hadoop MapReduce的10倍以上,如果数据从内存中读取,速度可以高达100多倍。 2、易用性好   Spark不仅支持Scala编写应用程序,而且支持Java和Python等语言进行编写,特别是Scala是一种高效、可拓展的语言,能够用简洁的代码处理较为复杂的处理工作。 3、通用性强   Spark生态圈即BDAS(伯克利数据分析栈)包含了Spark Core、Spark SQL、SparkStreaming、MLLib和GraphX等组件