Apache Spark

###好好好####JanusGraph批量导入数据优化

允我心安 提交于 2020-08-06 04:23:20
JanusGraph批量导入数据优化 批量导入工具: https://github.com/dengziming/janusgraph-util 批量导入配置项 storage.batch-loading =true 导入的数据必须具有一致性并且和已存在的数据必须具有一致性。(比如:name数据是具有唯一索引(a unique composite index),那么导入的数据在name属性上上和已有的数据不能重复) 下面是优化配置,优化的目的,就是减少批量导入时间。 ID 分配优化 ID Block Size ids.block-size 配置项,JanusGraph实例通过id池管理对象从id blocks中获取ids值为新加入的vertex、edge分配唯一id,为了保证库唯一性,所以获取id block(id块)是昂贵的(因为存在多个实例竞争),所以增加block-size可以减少获取block的次数,但是值过大会导致多余的id被浪费掉。 一般情况下事务的负载,ids.block-size的默认值是满足要求的。但是对于批量导入时,需要调节值为每个JanusGraph实例需要添加节点和边数的10倍。 该配置项在集群中所有实例上值必须唯一。 ID Acquisition Process 1) ids.authority.wait-time 配置毫秒:id池管理器允许id

RDD和DataFrame的格式转换

放肆的年华 提交于 2020-08-06 04:00:13
Spark 中最基本的数据抽象是 RDD。 RDD:弹性分布式数据集 (Resilient Distributed DataSet)。 DataFrame:从Spark1.3.0版本开始,DF开始被定义为指定到列的数据集(Dataset)。DFS类似于关系型数据库中的表或者像R/Python 中的data frame 。可以说是一个具有良好优化技术的关系表。DataFrame背后的思想是允许处理大量结构化数据。DataFrame包含带 schema 的行。 schema 是数据结构的说明。 本文主要介绍两种数据格式的互相转换 1.RDD转DataFrame 由于RDD内的数据有可能是非格式化的数据,所以需要先将RDD中的数据格式化后,设置schema,例如: val file = path+"*.log.gz" val rdd=spark.sparkContext.textFile(file) val lines =rdd.map(log=>log.split(ExamConstants.LOG_SPILIT)).filter(logs=>JSON.parseObject(logs(1)).get("actId").equals("3000005")).map( logs => { var log = JSON.parseObject(logs(1)) var data = log

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

萝らか妹 提交于 2020-08-05 21:10:20
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-submit常用任务命令参数和说明

会有一股神秘感。 提交于 2020-08-05 19:39:26
Spark常用任务命令参数和说明 spark-submit \ --name task2018072711591669 \ --master yarn --deploy-mode client \ --jars sparklistener-0.0.3-SNAPSHOT.jar \ --conf spark.extraListeners=com.etf.spark.listener.EtfJavaListener \ --py-files service.json,\ freq.py,\ helpers.py,\ spark_template_module.py,\ status.py,\ user_spark_run.py, \ spark_logger.py \ spark_main.py 参数解释 参数名称 值 作用 --name 任务名称 --master yarn 部署模式 --deploy-mode Client 驱动模式 --jars Jar包名称 执行任务附加的包名称 --conf 配置参数 配置参数,有多个参数可以配置 --py-files Py文件列表 任务执行需要的py文件,可以是.py .zip等 以逗号隔开 xx.py xx.py 任务主执行入口文件。Py或者java等 Spark并行执行参数 命令示例: ./bin/spark-submit \ -

kafka的基本介绍、架构

感情迁移 提交于 2020-08-05 13:57:21
一、kafka的基本介绍 官网:http://kafka.apache.org/ kafka是一个分布式,分区的,多副本的,多订阅者的消息发布订阅系统(分布式MQ系统),可以用于搜索日志,监控日志,访问日志等。 最初由linkedin公司开发,使用scala语言编写, Kafka is a distributed,partitioned,replicated commit logservice。 kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。无论是kafka集群,还是producer和consumer都依赖于zookeeper来保证系统可用性集群保存一些meta信息 二、kafka的好处 可靠性: 分布式的,分区,复制和容错。 可扩展性: kafka消息传递系统轻松缩放,无需停机。 耐用性: kafka使用分布式提交日志,这意味着消息会尽可能快速的保存在磁盘上,因此它是持久的。 性能:kafka对于发布和定于消息都具有高吞吐量。即使存储了许多TB的消息,他也爆出稳定的性能。 kafka非常快: 保证零停机和零数据丢失。 三、分布式的发布与订阅系统 apache kafka是一个分布式发布- 订阅消息系统和一个强大的队列

Spark TempView和GlobalTempView的区别

可紊 提交于 2020-08-05 13:23:01
Spark TempView和GlobalTempView的区别 TempView和GlobalTempView在spark的Dataframe中经常使用,两者的区别和应用场景有什么不同。 我们以下面的例子比较下两者的不同。 from pyspark.sql import SparkSession import numpy as np import pandas as pd spark = SparkSession.builder.getOrCreate() d = np.random.randint(1,100, 5*5).reshape(5,-1) data = pd.DataFrame(d, columns=list('abcde')) df = spark.createDataFrame(data) df.show() +---+---+---+---+---+ | a| b| c| d| e| +---+---+---+---+---+ | 17| 30| 61| 61| 33| | 32| 23| 24| 7| 7| | 47| 6| 4| 95| 34| | 50| 69| 83| 21| 46| | 52| 12| 83| 49| 85| +---+---+---+---+---+ 从tempview中取数据 temp = df.createTempView(

spark-sql createOrReplaceTempView 的使用

纵饮孤独 提交于 2020-08-05 12:02:12
最近项目中使用了spark-sql来进行埋点数据的修复以及转移 通过spark-sql修复埋点中的数据,并且再次写入到kafka中供其他的实时流进行消费 其中使用到了createOrReplaceTempView spark创建tempView分为两种方式: 1.createOrReplaceTempView 2. createGlobalTempView createOrReplaceTempView()的使用 创建或替换本地临时视图。 此视图的生命周期依赖于SparkSession类,如果想drop此视图可采用dropTempView删除 spark.catalog.dropTempView("tempViewName") 或者 stop() 来停掉 session self.ss = SparkSession(sc) ... self.ss.stop() createGlobalTempView使用 createGlobalTempView():创建全局临时视图。 这种视图的生命周期取决于spark application本身。如果想drop此视图可采用dropGlobalTempView删除 spark.catalog.dropGlobalTempView("tempViewName") 或者stop() 将停止 ss = SparkContext(conf= conf,

史上最全的大数据技术栈,有种冲动学习的既视感,你是否感受到了自己的不足?

泄露秘密 提交于 2020-08-05 04:19:44
前言 提起大数据,不得不提由IBM提出的关于大数据的5V特点: Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性) ,而对于大数据领域的从业人员的日常工作也与这5V密切相关。大数据技术在过去的几十年中取得非常迅速的发展,尤以Hadoop和Spark最为突出,已构建起庞大的技术生态体系圈。 下面我们通过一张图来了解一下目前大数据领域常用的一些技术,当然大数据发展至今所涉及技术远不止这些。 下面自底向上介绍各个层的主要项目。 1 采集层和传输层 Sqoop 在hadoop和关系型数据库之间转换数据。 Flume Flume是一个分布式的高可用的数据收集、聚集和移动的工具。通常用于从其他系统搜集数据,如web服务器产生的日志,通过Flume将日志写入到Hadoop的HDFS中。 Canal 数据抽取是 ETL 流程的第一步。我们会将数据从 RDBMS 或日志服务器等外部系统抽取至数据仓库,进行清洗、转换、聚合等操作。在现代网站技术栈中,MySQL 是最常见的数据库管理系统,我们会从多个不同的 MySQL 实例中抽取数据,存入一个中心节点,或直接进入 Hive。市面上已有多种成熟的、基于 SQL 查询的抽取软件,如著名的开源项目 Apache Sqoop,然而这些工具并不支持实时的数据抽取。MySQL Binlog

数据中台实战入门篇:数据中台对内、对外合作机制

大城市里の小女人 提交于 2020-08-04 22:07:11
数据中台人员构成 架构师: 架构师是整个数据中台团队的技术负责人。涉及到大的模块比如标签平台、推荐,要拿到业界比较成熟的架构设计,这样有个参考,能避免我们踩很多坑。另外包括技术选型比如大数据常用的计算框架spark、handoop等用那个比较合适,还有一些需要攻关的技术难题都需要协调他来解决。 项目经理: 项目经理要和架构师一起排团队的开发计划。保证让每个任务在时间节点完成,他要更加了解团队的每个成员的特点,最大的发挥团队成员的优势。另外关于项目的质量、风险都需要项目经理制定合理的流程来保证。 产品经理: 数据中台的产品经理对外要和运营的同事混熟,了解整个产品现在的策略,节奏是什么,这个时期关注的最核心的指标有那些。对内要将产品的方向、功能用偏技术的语言和开发沟通清楚,保证产品价值的最大化。 模型设计师: 模型设计是数据中台比较重要的一环,底层模型的好坏直接决定数据中台数据指标的质量和可扩展性。一个好的模型设计师需要对产品业务流程比较熟悉,对每条产品线的数据存储比较熟悉,需要和产品配合,一起摸清每个指标的开龙去脉,并将模型的思路,计算的方式清晰的告诉数据开发。全方面、多维度的建模是数据中台的基础,数据模型设计师是相对来说数据中台中比较核心的职位。 数据开发工程师: 他们主要和模型设计师打交道,模型设计师把业务口径转化为技术口径,告诉他们每个指标应该从那里提取数据,怎么计算

收藏!一张图帮你快速建立大数据知识体系

谁说胖子不能爱 提交于 2020-08-04 21:13:56
前言 最早提出“大数据”时代到来的是全球知名咨询公司麦肯锡,麦肯锡称:“数据,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。人们对于海量数据的挖掘和运用,预示着新一波生产率增长和消费者盈余浪潮的到来。”数据,让一切有迹可循,让一切有源可溯。我们每天都在产生数据,创造大数据和使用大数据,只是,你,仍然浑然不知。 企业组织利用相关数据和分析可以帮助它们降低成本、提高效率、开发新产品、做出更明智的业务决策等等。大数据的价值,远远不止于此,大数据对各行各业的渗透,大大推动了社会生产和生活,未来必将产生重大而深远的影响。 具体展开图(点击“阅读原文”可下载),详细内容请看下文: 一 大数据基础技术 数据分片路由 在大数据的背景下,数据规模已经由 GP 跨越大屏 PB 的级别,单机明显已经无法存储与处理如此规模的数据量,只能依靠大规模集群来对这些数据进行存储和处理。对于海量的数据,通过数据分片(Shard/Partition)来将数据进行切分到不同机器中去,分片以后,如何能够找到某一条记录。这就是数据的分片和路由。 数据复制 & 一致性 在大数据的存储系统中,为了增加系统的可靠性,往往会将同一份数据存储多个副本。数据是如何复制?以及数据复制后带来的一致性问题如何的解决? 大数据常用算法与数据结构 对于大数据或者大规模的分布式系统来说,如何能够高效快速地进行海量数据的处理非常关键