数据处理

Spark RDD与MapReduce

旧城冷巷雨未停 提交于 2020-03-07 13:16:47
什么是Map、什么是Reduce MapReduce是一个分布式编程计算模型,用于大规模数据集的分布式系统计算。 我个人理解,Map(映射、过滤)就是对一个分布式文件系统(HDFS)中的每一行(每一块文件)执行相同的函数进行处理; Reduce(规约、化简)就是对Map处理好的数据进行两两运算,因此reduce函数必须要有两个参数。 Map/Reduce的执行原理其实可以参考python的map/reduce函数: https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00141861202544241651579c69d4399a9aa135afef28c44000 Spark中的MapReduce RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。 RDD也支持常见的MapReduce操作。 RDD操作: 转换操作: 每一次转换操作都会产生不同的RDD,供给下一个“转换

Spark学习笔记-GraphX-1

China☆狼群 提交于 2020-03-07 11:58:16
Spark学习笔记-GraphX-1 标签: Spark Graph GraphX 图计算 2014-09-29 13:04 2339人阅读 评论 (0) 收藏 举报 分类: Spark (8) 版权声明:本文为博主原创文章,未经博主允许不得转载。 Spark GraphX是一个分布式图处理框架,Spark GraphX基于Spark平台提供对图计算和图挖掘简洁易用的而丰富多彩的接口,极大的方便了大家对分布式图处理的需求。 Spark GraphX由于底层是基于Spark来处理的,所以天然就是一个分布式的图处理系统。 图的分布式或者并行处理其实是把这张图拆分成很多的子图,然后我们分别对这些子图进行计算,计算的时候可以分别迭代进行分阶段的计算,即对图进行并行计算。 Spark GraphX基本操作: [plain] view plain copy import org.apache.spark.SparkContext import org.apache.spark._ import org.apache.spark.graphx._ import org.apache.spark.graphx.Graph import org.apache.spark.graphx.Edge import org.apache.spark.graphx.VertexRDD import org

Spark源码系列(二)RDD详解

十年热恋 提交于 2020-03-07 11:57:40
1、什么是RDD? 上一章讲了Spark提交作业的过程,这一章我们要讲RDD。简单的讲,RDD就是Spark的input,知道input是啥吧,就是输入的数据。 RDD的全名是Resilient Distributed Dataset,意思是容错的分布式数据集,每一个RDD都会有5个特征: 1、有一个分片列表。就是能被切分,和hadoop一样的,能够切分的数据才能并行计算。 2、有一个函数计算每一个分片,这里指的是下面会提到的compute函数。 3、对其他的RDD的依赖列表,依赖还具体分为宽依赖和窄依赖,但并不是所有的RDD都有依赖。 4、可选:key-value型的RDD是根据哈希来分区的,类似于mapreduce当中的Paritioner接口,控制key分到哪个reduce。 5、可选:每一个分片的优先计算位置(preferred locations),比如HDFS的block的所在位置应该是优先计算的位置。 对应着上面这几点,我们在RDD里面能找到这4个方法和1个属性,别着急,下面我们会慢慢展开说这5个东东。 //只计算一次 protected def getPartitions: Array[Partition] //对一个分片进行计算,得出一个可遍历的结果 def compute(split: Partition, context: TaskContext):

Json数据处理协议与办法

此生再无相见时 提交于 2020-03-07 10:51:46
【JSON 学习】 一.概述 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文 本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。 在JSON中,有两种结构:对象和数组。 1.对象 一个对象以“{”开始,“}”结束。每个“key”后跟一“:”,“‘key/value’ 对”之间运用 “,”分隔。 packJson = {"name":"nikita", "password":"1111"} 2.数组 packJson = [{"name":"nikita", "password":"1111"}, {"name":"tony", "password":"2222"}]; 数组是值的有序集合。一个数组以“[”开始,“]”结束。值之间运用 “,”分隔。 二、JSON对象和JSON字符串的转换 在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。我在项目中就需要做这样的处理。例如: JSON字符串: var jsonStr = '{"name":"nikita", "password":"1111"}';

spark学习

回眸只為那壹抹淺笑 提交于 2020-03-06 22:32:54
spark 简介 减低了维护成本 spark 生态 应用于机器学习 spark与hadoop 比较 hadoop场景:离线处理,对时效性要求不高 spark应用场景:时效性要求高的场景,机器学习等领域 spark 安装 scala-shell 例子 lines.count() 获取总数, first() 返回第一行 可以减少信息的输出显示 scala 安装 使用idea 编写 scala sbt 是打包的一个工具 sbt 的安装 https://www.cnblogs.com/lenmom/p/10376391.html 还有就是 使用idea 初次构建工程的时候,初始化要下载一下资源包, 可能因为网络的问题不能下载下来,不防多重试几次说不定就全部下载下来了。 安装参考 http://www.pianshen.com/article/2857147020/ https://blog.csdn.net/sgyuanshi/article/details/93314355 https://my.oschina.net/jamesju/blog/83659 开发spark demo 如果提交作业失败,可能是是spart的对应的scala 版本问题 参考 : https://blog.csdn.net/qq_36835255/article/details/89960637 RDDs

hadoop之yarn

╄→гoц情女王★ 提交于 2020-03-04 23:02:31
在Hadoop1.x中MapReduce是Master/Slave结构,在集群中的表现形式为:1个JobTracker带多个TaskTracker; JobTracker:负责资源管理和作业调度; TaskTracker:定期向JobTracker汇报本节点的健康状况、资源使用情况以及任务的执行情况;接收来自JobTracker的命令(启动/杀死任务等)并执行接收到的命令; MR V1存在的问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 单点故障:JobTracker只有一个,JobTracker挂了整个集群就没办法使用了; JobTracker负责接收来自各个TaskTracker节点的RPC请求,压力会很大,限制了集群的扩展;随着节点规模增大之后,JobTracker就成为一个瓶颈; 仅支持MapReduce计算框架;无法支持多种计算平台 --- MapReduce计算框架是一个基于Map和Reduce两阶段、适合批处理的、基于磁盘的计算框架; --- MapReduce计算框架优点:容错性好; --- MapReduce计算框架缺点:性能差; MR V2与MR V1的区别?!!!!!!!!!!!!!!!!!!!!!!!!!!! MR V2是MR V1的升级版本,与MR V1不同的时运行的环境不一样。MR V2是运行于YARN之上的MapReduce计算框架。

实时计算与SparkSteaming的对比

谁说我不能喝 提交于 2020-03-04 15:14:22
实时计算概述 实时计算 阿里云实时计算(Alibaba Cloud Realtime Compute)是一套基于Apache Flink构建的一站式、高性能实时大数据处理平台,广泛适应于流式数据处理、离线数据处理等场景,最重要的一点是免运维,可以为企业节省了大量的成本。 产品模式 阿里云的实时计算产品模式有Flink云原生版和独享模式。目前Flink云原生版支持部署于容器服务ACK提供的Kubernetes。独享模式是指在阿里云ECS上单独为用户创建的独立计算集群。单个用户独享计算集群的物理资源(网络、磁盘、CPU或内存等),与其它用户的资源完全独立。独享模式分为包年包月和按量付费两种方式。 Flink简介 Flink是开源的流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。它的特点是支持高吞吐、低延迟、高性能的流处理,支持带有事件时间的窗口(Window)操作,支持有状态计算的Exactly-once语义,支持基于轻量级分布式快照(Snapshot)实现的容错,同时支持Batch on Streaming处理和Streaming处理,Flink在JVM内部实现了自己的内存管理,支持迭代计算,支持程序自动优化,避免特定情况下Shuffle、排序等昂贵操作,中间结果有必要进行缓存。 Flink架构图 阿里云的程序提交主要从客户端进行提交。其中

Numpy_05 数据处理

别等时光非礼了梦想. 提交于 2020-03-04 08:25:22
github博客传送门 csdn博客传送门 Numpy系列 Numpy_01 创建 指定数据类型 查看维度和数据类型 简单的数学运算 Numpy_02 索引和切片 Numpy_03 转置和轴对换 Numpy_04 通用函数 Numpy_05 数据处理 Numpy_06 数组的文件输入输出 线性代数 利用数组进行数据处理 import numpy as np points = np.arange(-5, 5, 1) # 100个等间距点 xs, ys = np.meshgrid(points, points) # 接收两个一维数组 返回两个二维数组 print('xs:\n', xs) # 返回一个 数组元素个数这么多行的二维数组 内容和一维的数组一样 print('ys:\n', ys) # 返回一个 数组元素个数这么多汗的二维数组 内容为原数组的一个元素为一行 print('-------------------------------') # 两点间距离公式 z = np.sqrt(xs ** 2 + ys ** 2) # 对 xs 的每个元素平方加上 ys 的每个元素平方 再开方并返回 print(z) 将条件逻辑表述为数组运算 xarr = np.array([1.1, 1.2, 1.3, 1.4, 1.5]) yarr = np.array([2.1, 2.2, 2.3,

python数据处理(二)

放肆的年华 提交于 2020-03-04 07:46:11
一、csv 文件格式 二、excel数据处理 2.1读取单表文件: 2.2 读取单表文件复杂例子: 2.3、写入excel文件 2.5、Python进行修改excel文件: 三、Python处理pdf文件 3.1、Python读出pdf文件 3.2、抓取每个的网页,然后生成pdf文件 3.3、Html转pdf文件 四、Python处理图片 4.1 Image的三个属性: 4.2、抠图 4.3、图片拼合 4.4、缩放: 4.5、验证码 一、csv 文件格式 看下.csv文件的定义: 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。 如一下格式: 27,20,14,15,14,12,94,64,37,1015,1013,1009,7,5,2,21,8,35,0.00,,,152 .csv 文件可以直接用excel或者类似软件打开,样子都是我们常见的表格形式。 示例一: import csvfileName = 'weather

hadoop job

廉价感情. 提交于 2020-03-02 23:01:56
转自http://hadoop.apache.org/common/docs/r0.17.2/cn/mapred_tutorial.html 有了这个中文描述,hadoop job 的编写变得一如反掌,如果想看更具体的信息,可以去找找雅虎的资料,雅虎的更详细,但是是英文,看起来比较费劲。 核心功能描述 应用程序通常会通过提供 map 和 reduce 来实现 Mapper 和 Reducer 接口,它们组成作业的核心。 Mapper Mapper 将输入键值对(key/value pair)映射到一组中间格式的键值对集合。 Map是一类将输入记录集转换为中间格式记录集的独立任务。 这种转换的中间格式记录集不需要与输入记录集的类型一致。一个给定的输入键值对可以映射成0个或多个输出键值对。 Hadoop Map/Reduce框架为每一个 InputSplit 产生一个map任务,而每个 InputSplit 是由该作业的 InputFormat 产生的。 概括地说,对 Mapper 的实现者需要重写 JobConfigurable.configure(JobConf) 方法,这个方法需要传递一个 JobConf 参数,目的是完成Mapper的初始化工作。然后,框架为这个任务的 InputSplit 中每个键值对调用一次 map(WritableComparable, Writable,