Apache Spark

大数据项目测试<二>项目的测试工作

北城余情 提交于 2020-05-05 21:36:04
大数据的测试工作: 1、模块的单独测试 2、模块间的联调测试 3、系统的性能测试:内存泄露、磁盘占用、计算效率 4、数据验证(核心) 下面对各个模块的测试工作进行单独讲解。 0. 功能测试 1. 性能测试 2. 自动化测试 3. 文档评审 4. 脚本开发 一、后台数据处理端 后端的测试重点,主要集中在数据的采集处理、标签计算效率、异常数据排查(功能),测试脚本编写(HiveQL)、自动化脚本编写(造数据、数据字段检查等)   1.数据的采集处理(Extract-Transform-Load)     ETL:即将数据从源系统加载到数据仓库的过程。源系统包括:数据文件(excel、log等)、RDD数据库、非RDD数据库等;     extract:从源系统提取需求数据。     transform:清洗数据(数据格式转化、异常数据处理等)。     Load:将清洗的数据加载至数据仓库。          ETL测试:即确保根据需求将源系统的数据经过处理后加载到目标的数据是准确的。即源和目的数据之间转化过程中的数据验证。     测试类型         测试场景          券商等金融机构,其用户每天都会产生大量的交易数据,这部分数据最初都会存储在客户的关系型数据库中(oracle),因此后台每天需要先进行数据采集,将数据采集至Hadoop的hdfs系统;数据采集过后

node+js实现大文件分片上传

*爱你&永不变心* 提交于 2020-05-05 19:50:46
1、什么是分片上传   分片上传就是把一个大的文件分成若干块,一块一块的传输。这样做的好处可以减少重新上传的开销。比如:如果我们上传的文件是一个很大的文件,那么上传的时间应该会比较久,再加上网络不稳定各种因素的影响,很容易导致传输中断,用户除了重新上传文件外没有其他的办法,但是我们可以使用分片上传来解决这个问题。通过分片上传技术,如果网络传输中断,我们重新选择文件只需要传剩余的分片。而不需要重传整个文件,大大减少了重传的开销。   但是我们要如何选择一个合适的分片呢?因此我们要考虑如下几个事情:    1. 分片越小,那么请求肯定越多,开销就越大。因此不能设置太小。   2. 分片越大,灵活度就少了。   3. 服务器端都会有个固定大小的接收Buffer。分片的大小最好是这个值的整数倍。   因此,综合考虑到推荐分片的大小是2M-5M,具体分片的大小需要根据文件的大小来确定,如果文件太大,建议分片的大小是5M,如果文件相对较小,那么建议分片的大小是2M。    实现文件分片上传的步骤如下:   1. 先对文件进行md5加密。使用md5加密的优点是:可以对文件进行唯一标识,同样可以为后台进行文件完整性校验进行比对。   2. 拿到md5值以后,服务器端查询下该文件是否已经上传过,如果已经上传过的话,就不用重新再上传。   3. 对大文件进行分片。比如一个100M的文件

简单明了!OLTP场景下的数据分布式设计原则

天涯浪子 提交于 2020-05-05 18:19:08
作者介绍 温卫斌, 就职于中国民生银行信息科技部,目前负责分布式技术平台设计与研发,主要关注分布式数据相关领域。 前言 最近几年做分布式项目,很多工作是关于OLTP(联机交易系统)场景下数据分布式架构的,疫情期间正好整理下这方面的一些设计与实践。为避免篇幅太长,本文分为设计篇和技术篇,设计篇主要偏向数据拆分的理论与方法,还有一些原则与经验。技术篇则主要会介绍分库分表中间件的设计与使用实践,以及如何构建一个完整的分布式数据服务平台。 一般来说做分布式架构,应用层是好做分布式的,因为往往都是无状态的(或者通过将数据转移到DB、缓存、MQ等方式来实现无状态),只需在流量入口、即在应用前面加一个负载均衡即可(例如Nginx、HAProxy、F5),这在大单体架构也多已具备。所以一般我们说分布式架构,一个重要的部分就是要做数据的分布式化。 传统单体集中式架构 数据的分布式不像应用那么简单,因为各节点的数据可能是不一样的,需要进行路由、解决多副本一致性,甚至多写冲突等问题。虽然实现方案复杂,不过数据的分布式本质上就两种朴素思想:复制和分片。复制技术在传统关系数据库中也很常见,主要用来做主备、双活,例如 MySQL Replication、Oracle DataGuard等。分片在数据库里也有对应产品。例如 MySQL Fabric、Oracle Sharding,但与复制相比

IDEA 搭建 Spark 源码 (Ubuntu)

强颜欢笑 提交于 2020-05-05 13:53:24
版本:Spark 2.4.3/JDK 1.8/Scala 2.11.0 1、选择Spark版本、压缩包下载。 2、IDEA中左下角Terminal下输入: mvn -DskipTests clean package 3、Maven工程导入到IDEA中 问题: 在Lifecycle下点击clean、install后出现: Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.2.2:compile (scala-compile-first) on project spark-sql_2.11: wrap: java.io.IOException: Cannot run program "javac": error=2, 没有那个文件或目录 -> [Help 1] 解决办法:修改pom.xml文件 ... 来源: oschina 链接: https://my.oschina.net/u/4373914/blog/3467035

Spark采坑系列(二)使用Scala编写的工程Maven打包没有Scala文件

夙愿已清 提交于 2020-05-05 13:53:09
添加下面的maven Scala编译支持 <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>3.2.2</version> <configuration> <recompileMode>incremental</recompileMode> </configuration> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> 来源: oschina 链接: https://my.oschina.net/u/3687664/blog/2876014

pyspark对Mysql数据库进行读写

让人想犯罪 __ 提交于 2020-05-04 19:13:44
pyspark是Spark对Python的api接口,可以在Python环境中通过调用pyspark模块来操作spark,完成大数据框架下的数据分析与挖掘。其中,数据的读写是基础操作,pyspark的子模块pyspark.sql 可以完成大部分类型的数据读写。文本介绍在pyspark中读写Mysql数据库。 1 软件版本 在Python中使用Spark,需要安装配置Spark,这里跳过配置的过程,给出运行环境和相关程序版本信息。 win10 64bit java 13.0.1 spark 3.0 python 3.8 pyspark 3.0 pycharm 2019.3.4 2 环境配置 pyspark连接Mysql是通过java实现的,所以需要下载连接Mysql的jar包。 下载地址: https:// dev.mysql.com/downloads / 选择下载 Connector/J ,然后选择操作系统为 Platform Independent ,下载压缩包到本地。 然后解压文件,将其中的jar包 mysql-connector-java-8.0.19.jar 放入spark的安装目录下,例如 D:\spark\spark-3.0.0-preview2-bin-hadoop2.7\jars 。 环境配置完成! 3 读取Mysql 脚本如下: from pyspark.sql

SparkSQL配置和使用初探

本小妞迷上赌 提交于 2020-05-04 17:36:13
1.环境 OS:Red Hat Enterprise Linux Server release 6.4 (Santiago) Hadoop:Hadoop 2.4.1 Hive:0.11.0 JDK:1.7.0_60 Spark:1.1.0(内置SparkSQL) Scala:2.11.2 2.Spark集群规划 账户:ebupt master:eb174 slaves:eb174、eb175、eb176 3.SparkSQL发展历史 2014年9月11日,发布Spark1.1.0。Spark从1.0开始引入SparkSQL。Spark1.1.0变化较大是SparkSQL和MLlib。具体参见 release note 。 SparkSQL的前身是Shark。由于Shark自身的不完善,2014年6月1日Reynold Xin宣布:停止对Shark的开发。SparkSQL抛弃原有Shark的代码,汲取了Shark的一些优点,如内存列存储(In-Memory Columnar Storage)、Hive兼容性等,重新开发SparkSQL。 4.配置 安装配置同Spark-0.9.1(参见博文: Spark、Shark集群安装部署及遇到的问题解决 ) 将$HIVE_HOME/conf/hive-site.xml配置文件拷贝到$SPARK_HOME/conf目录下。 将$HADOOP

一文读懂数据湖及企业中的架构特点

只愿长相守 提交于 2020-05-04 14:01:03
1.数据湖诞生 数据湖概念的诞生,源自企业面临的一些挑战,如数据应该以何种方式处理和存储。最开始的时候,每个应用程序会产生、存储大量数据,而这些数据并不能被其他应用程序使用,这种状况导致数据孤岛的产生。随后数据集市应运而生,应用程序产生的数据存储在一个集中式的数据仓库中,可根据需要导出相关数据传输给企业内需要该数据的部门或个人。然而数据集市只解决了部分问题。剩余问题,包括数据管理、数据所有权与访问控制等都亟须解决,因为企业寻求获得更高的使用有效数据的能力。为了解决前面提及的各种问题,企业有很强烈的诉求搭建自己的数据湖,数据湖不但能存储传统类型数据,也能存储任意其他类型数据,并且能在它们之上做进一步的处理与分析,产生最终输出供各类程序消费。 2.数据湖定义及优势 2.1 数据湖的定义 数据湖是一个存储企业的各种各样原始数据的大型仓库,其中的数据可供存取、处理、分析及传输。 数据湖从企业的多个数据源获取原始数据,并且针对不同的目的,同一份原始数据还可能有多种满足特定内部模型格式的数据副本。因此,数据湖中被处理的数据可能是任意类型的信息,从结构化数据到完全非结构化数据。企业对数据湖寄予厚望,希望它能帮助用户快速获取有用信息,并能将这些信息用于数据分析和机器学习算法,以获得与企业运行相关的洞察力。 2.2 数据湖优势 有上可知数据湖负责捕获数据、处理数据、分析数据

使用Python实现子区域数据分类统计

我的未来我决定 提交于 2020-05-04 13:37:01
目录 前言 geopandas简介 子区域数据分类统计 总结 一、前言 最近碰到一个需求,需要统计某省内的所有市的某数据分布情况信息。现有该省的数据分布情况以及该省的行政区划数据。我通过geopandas库实现了这一需求,在这里简单记录之,供需要的人借鉴。 二、geopandas简介 想必大家对 pandas 都不陌生,它是一个开源的强大的Python数据分析工具。pandas确实做到了灵活、快速、高效的进行数据处理,而 geopandas 是在pandas的基础上添加了对空间数据的支持,实现了读取空间数据以及对空间数据进行处理。关于其介绍和安装等请参考其github主页,本文不再赘述。 三、子区域数据分类统计 直接进入正题,现有某省的分类统计数据shp文件以及此省的行政区划数据shp文件。 3.1 引入geopandas 为了使用geopandas库,首先需要将其引入。代码如下: from geopandas import * 3.2 读取此省分类统计数据及行政区划数据 然后从该省的分类统计数据shp文件中读出此数据。代码如下: provincedata = GeoDataFrame.from_file(provinceshpfile) 代码很简单,只要给GeoDataFrame.from_file函数传入shp文件路径即可,其得到的是一个GeoDataFrame对象

Java大数据秋招面试题

怎甘沉沦 提交于 2020-05-04 08:30:04
以下为整理的自己秋招遇到的面试题; 主要是Java和大数据相关题型; 根据印象整理了下,有些记不起来了。 死锁、乐观锁、悲观锁 synchronized底层原理及膨胀机制 ReetrantLock底层原理,源码是如何实现公平和非公平的 synchronized和lock的区别 volitale理解?volitale保证可见性的意义 什么是指令重排序,为什么要禁止指令重排序 介绍java中的基本数据类型及所占大小 2的8次方是多少,Integer最小值是多少,说数值 scala中Int和Long是怎么实现的,丰富的API是如何实现,scala中String是怎么实现的,这么多丰富的方法是怎么实现的?隐式转换 介绍Java中你知道的所有Map、Set、List的类,比较他们的区别,哪些是线程安全? 怎样使用线程安全的集合,并发安全的容器都有哪些? HashMap和ConcurrentHashMap的原理 HashMap的key如何设计?HashMap死循环问题 HashMap为什么使用红黑树不使用B树、B+树 说一下平衡二叉树的插入删除操作?树的层序遍历说说? 多进程和多线程的区别,进程和线程的区别? Callable和Runnable的区别谈一谈? 线程怎么实现?讲讲Java中的线程池? 自定义线程池,你是如何考量七大参数的,设计思路?如何优化synchronized,CAS的缺点