Apache Spark

RDD和DataFrame和DataSet三者间的区别

五迷三道 提交于 2020-08-13 12:23:09
在SparkSQL中Spark为我们提供了两个新的抽象,分别是DataFrame和DataSet。他们和RDD有什么区别呢?首先从版本的产生上来看: RDD (Spark1.0) —> Dataframe(Spark1.3) —> Dataset(Spark1.6) 如果同样的数据都给到这三个数据结构,他们分别计算之后,都会给出相同的结果。不同是的他们的执行效率和执行方式。 在后期的Spark版本中,DataSet会逐步取代RDD和DataFrame成为唯一的API接口。 网址:https://www.cnblogs.com/swordfall/p/9006088.html#auto_id_0 来源: oschina 链接: https://my.oschina.net/u/4369794/blog/4277164

《大型互联网企业安全架构》读书笔记

梦想与她 提交于 2020-08-13 12:03:13
安全理念 IT风险安全 信息安全 标准:ISO27001 云安全ISO27017 隐私安全ISO27018 生产网安全(DevSecOps) 业务开发(Dev) 运维(Ops)阶段 业界理念最佳实践 阿里:安全融入体系设计、自动化监控与响应、红蓝对抗与持续改进 安全架构理论 P2DR模型 策略保护检测响应 IPDRR模型 IATF核心思想是纵深防御战略 CGS框架 强调4大功能:治理,保护,检测,响应与恢复 ASA 自适应安全架构 :组织检测响应与预测。主要体现在预测这一部分,借助如UEBA来分析学习 iACD 集成式自适应网络防御: 基本思想是通过soar来实现集成式的自适应安全架构 网络韧性架构 大型安全体系建设指南 初期实施快速消减策略。 一:清理webshell, 二:部署统一管理的EDR安全产品,生产环境下统一使用堡垒机进行审计管理。 三:通过弱口令扫描器检测公司员工账号和内网所有涉及密码的服务系统。 iso27001规定信息安全管理体系的要求,iso27002提高实践指导 BSiMM由软件安全架构,软件安全小组,软件安全计划组成。 BSIMM之于软件安全,ISO27001之于信息安全 威胁情报 GOSINT威胁情报收集处理框架,借助官方API收集威胁情报 Spiderfoot 自动收集各种威胁情报信息。 查询综合性威胁情报比较好的工具有IBM X-Forcee

Mongo Spark Connector中的分区器(一)

心已入冬 提交于 2020-08-13 08:43:17
  MongoSpark为入口类,调用MongoSpark.load,该方法返回一个MongoRDD类对象,Mongo Spark Connector框架本质上就是一个大号的自定义RDD,加了些自定义配置、适配几种分区器规则、Sql的数据封装等等,个人认为相对核心的也就是分区器的规则实现;弄清楚了其分析器也就搞明白了Mongo Spark Connector 。 当前实现的分区器(Partitioner):    MongoPaginateByCountPartitioner 基于总数的分页分区器    MongoPaginateBySizePartitioner 基于大小的分页分区器    MongoSamplePartitioner 基于采样的分区器    MongoShardedPartitioner 基于分片的分区器    MongoSinglePartitioner 单分区分区器    MongoSplitVectorPartitioner 基于分割向量的分区器   这里根据源码简单介绍MongoSinglePartitioner与MongoSamplePartitioner分区器,这或许就是用得最多的两种分区器,他的默认分区器(DefaultMongoPartitioner)就是MongoSamplePartitioner分区器; 该分区默认的PartitionKey为

spark 内存管理总结

元气小坏坏 提交于 2020-08-13 08:14:37
spark 内存管理总结 spark内存分为 on-heap和off-heap,堆内内存和堆外内存 堆外内存,会把数据序列化之后写入jvm内存之外,但是需要单独编码申请资源和释放资源一般不怎么样用 堆内内存,在jvm内存里,受jvmGC影响,如果创建很多小对象或者小的存储结果会频繁的触发新生代的GC,可以在提交任务的时候添加参数打印GC日志观察 堆内内存详解 spark 1.6之后放弃了原有的静态内存管理器(可以配置参数来分配spark内存),转而使用 统一内存管理, 将内存分为4大块 存储内存:用户缓存RDD,如cache和persist操作(75%*50%) execute内存/计算内存:用户shuffle运算等(75%*50%) 用户内存:用户存放用户代码,相关依赖等等(25%) 预留内存:用于系统存储spark内部对象之类的(默认300MB) 其中 存储内存和计算内存占spark整个内存的75%,然后二者各占75%*50%,他们两个可以互相侵占如果存储内存不足会侵占计算内存,计算内存不足也可以侵占存储内存,如果都不足就会溢出到磁盘,但是运算内存如果侵占了存储内存是不会归还因为shuffle计算的中间结果还在. 来源: oschina 链接: https://my.oschina.net/u/2969788/blog/4289047

轻量化AI服务再添两将!阿里云机器学习PAI DSW 2.0 & Alink商业版重磅发布

白昼怎懂夜的黑 提交于 2020-08-13 08:12:10
DSW 2.0:面向AI研发的集成开发平台 DSW(Data Science Workshop)是阿里巴巴PAI团队根据多年的AI算法和产品研发经验积累,围绕提高AI算法研发效率,降低研发成本而推出的一款适用于各类AI开发者的云端机器学习集成开发环境。DSW2.0是借助阿里云ECS,Docker和Kubernetes等云原生技术,能够在几分钟内帮用户完成环境搭建,相对DSW1.0开放更高的开发权限,满足各个层面客户的使用需求。 云原生架构 DSW借助阿里云ECS,Docker和Kubernetes等云原生技术,能够在几分钟内帮用户完成环境搭建。用户可以根据算法需要和成本考虑,选择阿里云ECS提供的包括CPU和异构计算GPU在内的所有资源规格。 满足不同层次开发习惯 结合交互式编程和命令行输入,DSW提供了三种编程入口: WebIde适用于工程化要求比较高的项目;JupyterLab适用于快速POC试验;Terminal入口可用于快速执行Shell命令,运行程序和简单的编辑等。 预装丰富插件 DSW还开发和预装了各种JupyterLab和WebIDE插件,比如广受深度学习开发者喜爱的可视化工具Tensorboard,用户在DSW内通过Launcher,Commands打开,甚至还可以使用%tensorboard魔法命令直接在Notebook中开启等多种方式使用Tensorboard

spark | 手把手教你用spark进行数据预处理

人走茶凉 提交于 2020-08-13 03:04:16
本文始发于个人公众号: TechFlow ,原创不易,求个关注 今天是 spark专题 的第七篇文章,我们一起看看spark的数据分析和处理。 过滤去重 在机器学习和数据分析当中,对于数据的了解和熟悉都是最基础的。所谓巧妇难为无米之炊,如果说把用数据构建一个模型或者是支撑一个复杂的上层业务比喻成做饭的话。那么数据并不是“米”,充其量最多只能算是未脱壳的稻。要想把它做成好吃的料理,必须要对原生的稻谷进行处理。 但是处理也并不能乱处理,很多人做数据处理就是闷头一套三板斧。 去空值、标准化还有one-hot ,这一套流程非常熟悉。以至于在做的时候都不会想,做这些处理的意义是什么。我们做数据处理也是有的放矢的,针对不同的情况采取不同的策略。所以说到这里,你应该已经明白了,首要任务还是需要先对数据有个基本的了解, 做到心中有数 。 那么怎么做到心中有数呢?我们先来看一个具体的例子,假设现在我们有了这么一批数据: df = spark.createDataFrame([ ( 1 , 144.5 , 5.9 , 33 , 'M' ), ( 2 , 167.2 , 5.4 , 45 , 'M' ), ( 3 , 124.1 , 5.2 , 23 , 'F' ), ( 4 , 144.5 , 5.9 , 33 , 'M' ), ( 5 , 133.2 , 5.7 , 54 , 'F' ), ( 3

终于要跟大家见面了,Flink 面试指南

假如想象 提交于 2020-08-13 02:17:29
面试,一个令人大多数同学头疼的问题,要么成功进入心仪公司,要么沮丧与其失之交臂。但是,如果能在面试前就能知道面试官将会问的问题,然后可以好好提前准备,这种感觉是不是特别棒? 之前社区帮大家汇总了目前 15 家重量级公司的招聘需求更新在社区招聘帖,也收到了很多同学的反馈: “ 投了一堆简历,但是都没面试机会 ” “ 面试官说是想招高阶人才 ” “**哎,感觉像我这种毕业年限短, 公司又是小公司,本科也不太好的,找工作太难了**” 最后只能总结: “ 我不优秀,我连面试机会都没有 ” 也太南南南了! 那么究竟怎么积累技术实力,成为 Flink 高级开发,拿下心仪公司的 offer 呢?小松鼠征集了 Flink 用人主管的核心诉求并提供一份超级清晰、实用的学习路径。虽然我们都不会读心术,但破解面试难题也有思路可寻! Tips: 2020 Flink 最新招聘信息查看请见下方链接,内推或有招聘需求的公司可联系小松鼠(微信ID:Ververica2019)投递 JD~ 2020 最新 Flink 招聘岗位汇总: https://juejin.im/post/5df9e25fe51d4557f5450274 01 了解用人主管的需求 在收集招聘信息时小松鼠了解到用人主管的核心需求以及面试了部分同学之后的感受,总结下来主要分为以下方面: 经验都偏少,缺乏 复杂场景的历练 在用 Flink

谈谈Hadoop MapReduce和Spark MR实现

北战南征 提交于 2020-08-12 20:16:28
谈谈MapReduce的概念、Hadoop MapReduce和Spark基于MR的实现 什么是MapReduce? MapReduce是一种分布式海量数据处理的编程模型,用于大规模数据集的并行运算。 有以下几个特点: 分而治之,并行处理。 抽象了map和reduce的计算流程,对于分布式存储的数据可以并行的进行map处理,之后在reduce端对map结果进行汇总。 移动计算而非移动数据。 数据的计算传输需要大量的磁盘和网络IO。MapReduce会尽量在数据存储的节点执行计算,以减少不必要的开销。 Hadoop MapReduce 我们常说的MapReduce就是Hadoop MapReduce。 Hadoop MapReduce作业被分成 一系列运行在分布式集群中的map任务和reduce任务 ,每个任务都工作在被指定的小的数据自己上,因此负载是遍布集群中各个节点上的。 map任务负责 数据的载入、解析、转换和过滤。MapReduce作业的输入是一系列储存在HDFS中的文件。map任务的输出被称为中间键和中间值,会被发送到reduce端进行后续处理。 每个 reduce任务负责 处理map任务输出结果的一个子集。MapReduce确保每个reduce的输入都是按键排序的。 系统执行排序、将map输出作为输入传递给reduce的过程称为 shuffle

Java字节码的一段旅行经历——提升硬实力1

拈花ヽ惹草 提交于 2020-08-12 18:09:55
字节码指令 1.1 什么是字节码 字节码(Byte-code)是一种包含执行程序,由一序列 op 代码/数据对组成的二进制文件,是一种中间码。 字节 是电脑里的数据量单位。 1.2 javap 工具 自己分析类文件(字节码)太麻烦了,Oracle提供了javap工具来反编译class文件 javap -v HelloWorld.class /Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home/bin/javap -v com.jvm.t07_bytecode.T01_HelloWorld Classfile /Users/lei/IdeaProjects/JvmLearn/target/classes/com/jvm/t07_bytecode/T01_HelloWorld.class Last modified 2020-8-10; size 586 bytes MD5 checksum 916c3ebdbfef6b6fab63cac6a085aaa1 Compiled from "T01_HelloWorld.java" public class com.jvm.t07_bytecode.T01_HelloWorld minor version: 0 major version: 52 flags:

扎心!天天写代码,方向真的对吗?

谁都会走 提交于 2020-08-12 14:05:58
“每个人的时间都是有限的,在有限的时间里选择一项值得投入的技术会变得尤为重要。” 笔者从 2008 年开始工作到现在也有 12 个年头了,一路走来都在和数据打交道,做过很多大数据底层框架内核的开发(Hadoop,Pig,Hive,Tez,Spark),也做过多年上层数据计算框架(Livy, Zeppelin)以及数据应用开发,包括数据处理,数据分析以及机器学习。现在是 Apache Member 以及多个 Apache 项目的 PMC 。2018 年加入阿里巴巴实时计算团队专注在 Flink 的研发。 今天我想结合自己过去的职业经历来聊聊如何评估一项技术是否值得学习。我一直在大数据这个圈子,从最初的 Hadoop 到后来的 Hadoop 生态项目 Pig,Hive,Tez,然后又到新一代的计算引擎 Spark ,再到最近在做的 Flink ,大数据计算引擎贯穿我的整个职业生涯。我个人来说是比较幸运的,在每个阶段都在做比较火的技术,当时更多的是凭着自己的兴趣和直觉在选择技术类型。现在回过头来看我觉得需要从下面 3 个大的纬度来评估一项技术是否值得学习。 1、技术深度 2、生态广度 3、进化能力 01 技术深度 技术深度是指这项技术的根基是否扎实,护城河是否够宽够深,是否很容易被其他技术所替代。通俗的来说就是这项技术是否解决了其他技术所不能解决的有重要价值的问题。这里有两个要点: 1