Apache Spark

spark streaming 流式计算-----容错(hbase幂等性修改)

柔情痞子 提交于 2020-08-04 19:52:20
在做流式计算过程中,最复杂最难做的莫过于数据幂等性修改操作的设计。先解释一下概念【幂等性操作】,幂等性概念来源于数学专业表示对一个表达式做多次相同的操作,表达式不会改变。例如:逻辑回归中的Sigmod函数,n次求导之后依然坚挺。在流式计算中容错设计也要求工程设计有数据幂等性设计,特别针对流式计算中对第三方存储平台的修改操作。以及更加逆天的场景:在一个业务线有多个点有批量的数值修改操作,只要有一个点没有修改完成,而此时流式计算崩溃,下次重启都要做所有点的数据恢复操作。 说到幂等性,不得不说一下spark中的一个优化操作---推测执行。推测执行设计的初衷是提高作业的执行效率,避免某一个任务因为硬件问题卡死而拖慢整个计算任务。大致设计思想时,在任务完成达到某个百分比,开始检查任务完成情况,如果发现某任务执行时间超过其他任务耗时均值的阈值倍数,就在其他节点重启相同的计算任务,这样可以有效避免因硬件问题造成的卡死现象。但是在流式计算中对于修改数值的操作或者在mappartion/foreachPartition中自定义数据持久化到非主键约束的平台时,就会出现灾难性后果。一旦出现数据倾斜,启动备用线程执行当前任务,就会出现数据加倍等脏数据。所以在以上场景,无法保证操作幂等性的前提下,不要开启推测执行。 今天着重分享对于hbase的幂等性修改的设计

Spark内核解析(一) Spark向Yarn提交应用(源码解析)

我的梦境 提交于 2020-08-04 17:03:19
文章目录 Spark内核解析(一) Spark向Yarn提交应用(源码解析) 执行脚本提交任务 执行提交操作 解析参数 提交 使用提交的参数,运行child class的main方法 准备提交环境 通过类名加载这个类 反射创建类的对象并进行类型转换 运行childMainClass的start方法 运行YarnClusterApplication 封装参数 创建客户端对象 运行 - 提交应用 配置JVM的启动参数 向Yarn提交应用 运行ApplicationMaster 启动用户的应用 线程阻塞,等待对象(SparkContext)的返回 注册AM RPC通信,AM向RM申请资源 获取可用的资源列表 处理可用的资源 CoarseGrainedExecutorBackend 总结 Spark内核解析(一) Spark向Yarn提交应用(源码解析) 执行脚本提交任务 实际是启动一个SparkSubmit的JVM进程 提交应用的脚本如下: bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ // 默认client --deploy-mode cluster \ ./examples/jars/spark-examples_2.12-2.4.5.jar \ 10

大公司都在做的大数据平台,为你精选这一份书单

梦想与她 提交于 2020-08-04 16:58:03
​ 现如今每个公司都有自己的大数据平台和大数据团队,可以看出大数据建设在公司的重要地位,不管是用于做数据分析、BI还是做用于机器学习、人工智能等领域,大数据都是基础,海量数据成为了互联网公司的重要资产。 今天这一份书单,我们将推荐几本综合介绍大数据平台和技术栈的优质书籍,帮各位对大数据技术感兴趣的小伙伴快速入门和学习大数据。 大数据技术栈系列书单 ​ 大数据技术原理与应用 (1) 概念篇:介绍当前紧密关联的*新IT领域技术云计算、大数据和物联网。 (2) 大数据存储与管理篇:介绍分布式数据存储的概念、原理和技术,包括HDFS、HBase、NoSQL数据库、云数据库。 (3) 大数据处理与分析篇:介绍MapReduce分布式编程框架、基于内存的分布式计算框架Spark、图计算、流计算、数据可视化。 (4) 大数据应用篇:介绍基于大数据技术的推荐系统。 作者简介 林子雨,北大博士,厦门大学计算机科学系老师,中国高校**"数字教师"的提出者和建设者。在数据库、数据仓库、数据挖掘、大数据、云计算和物联网等领域有着十多年的知识积累,对各个领域知识都有比较深入的了解,有比较宽泛的视野。 ​ 大数据平台基础架构指南 当前不乏大数据具体技术组件的书籍,但却很少有从大数据平台整体建设和产品形态的宏观角度入手来阐释的。 本书重点介绍大数据开发平台服务构建的整体思路和解决方案

Spark-Hive中出现 access denied org.apache.derby.security.SystemPermission( "engine", "usederbyintern...

跟風遠走 提交于 2020-08-04 16:51:49
参考: http://db.apache.org/derby/releases/release-10.12.1.1.cgi https://blog.csdn.net/hxl122lcq/article/details/7782940 修改 D:\Java\Java8X64\jre1.8.0_181\lib\security\java.policy 与 D:\Java\Java8X64\jdk1.8.0_181\jre\lib\security\java.policy 文件 在其中加入 permission org.apache.derby.security.SystemPermission "engine", "usederbyinternals"; 即可 来源: oschina 链接: https://my.oschina.net/u/4280959/blog/4302059

updateStateByKey和mapWithState比较

牧云@^-^@ 提交于 2020-08-04 16:43:44
什么是状态管理函数   Spark Streaming中状态管理函数包括updateStateByKey和mapWithState,都是用来统计全局key的状态的变化的。它们以DStream中的数据进行按key做reduce操作,然后对各个批次的数据进行累加,在有新的数据信息进入或更新时。能够让用户保持想要的不论什么状。 updateStateByKey   updateStateByKey会统计全局的key的状态,不管又没有数据输入,它会在每一个批次间隔返回之前的key的状态。updateStateByKey会对已存在的key进行state的状态更新,同时还会对每个新出现的key执行相同的更新函数操作。如果通过更新函数对state更新后返回来为none,此时刻key对应的state状态会被删除(state可以是任意类型的数据的结构)。 //[root@bda3 ~]# nc -lk 9999 object StatefulWordCountApp { def main(args: Array[String]) { StreamingExamples.setStreamingLogLevels() val sparkConf = new SparkConf() .setAppName("StatefulWordCountApp") .setMaster("local[2]")

centos7安装kylo0.10.1

会有一股神秘感。 提交于 2020-08-04 16:26:04
安装环境centos7,kylo版本0.10.1 常用的链接地址 kylo官网: https://kylo.io/ kylo文档:https://kylo.readthedocs.io/ 下载地址 官网: https://kylo.readthedocs.io/en/v0.10.0/about/Downloads.html https://s3-us-west-2.amazonaws.com/kylo-io/releases/tar/0.10.1/kylo-0.10.1.tar 百度网盘:https://pan.baidu.com/s/1xBtfSwETebN20iWoakdLeg 提取码:c5ae 自己编译: https://www.cnblogs.com/maobuji/p/10820691.html 系统需要提前安装工具: yum install wget unzip 1.安装mysql或者mysql客户端 https://www.cnblogs.com/maobuji/p/8336702.html 本次使用已安装好的外部mysql,只安装客户端 wget https: // repo.mysql.com // mysql57-community-release-el7-11.noarch.rpm yum install mysql57-community-release

Mac环境下pyCharm的安装,激活及使用

浪尽此生 提交于 2020-08-04 12:35:41
1.pyCharm的安装 安装地址: https: // www.jetbrains.com/pycharm/download/#section=mac 2.激活 获取注册码地址: http: // idea.lanyus.com 输入注册码之后可能会报 this license XXXXXXXX has been cancelled 的错误,解决方法如下: 终端: sudo vi /etc/ hosts 在最后一行加入: 0.0 . 0.0 account.jetbrains.com 保存,退出。重新申请注册码,搞定! 3.常用配置 lz提示一下,pycharm中的设置是可以导入和导出的,file>export settings可以保存当前pycharm中的设置为jar文件,重装时可以直接import settings> jar文件,就不用重复配置了。 file -> Setting -> Editor 1 . 设置Python自动引入包,要先在 >general > autoimport -> python :show popup 快捷键:Alt + Enter: 自动添加包 2 . “代码自动完成”时间延时设置 > Code Completion -> Auto code completion in (ms): 0 -> Autopopup in (ms): 500 3 .

深度剖析大数据平台的数据处理

独自空忆成欢 提交于 2020-08-04 12:19:55
无论是采集数据,还是存储数据,都不是大数据平台的最终目标。失去数据处理环节,即使珍贵如金矿一般的数据也不过是一堆废铁而已。数据处理是大数据产业的核心路径,然后再加上最后一公里的数据可视化,整个链条就算彻底走通了。 如下图所示,我们可以从业务、技术与编程模型三个不同的视角对数据处理进行归类: 业务角度的分类与具体的业务场景有关,但最终会制约技术的选型,尤其是数据存储的选型。例如,针对查询检索中的全文本搜索,ElasticSearch会是最佳的选择,而针对统计分析,则因为统计分析涉及到的运算,可能都是针对一列数据,例如针对销量进行求和运算,就是针对销量这一整列的数据,此时,选择列式存储结构可能更加适宜。 在技术角度的分类中,严格地讲,SQL方式并不能分为单独的一类,它其实可以看做是对API的封装,通过SQL这种DSL来包装具体的处理技术,从而降低数据处理脚本的迁移成本。毕竟,多数企业内部的数据处理系统,在进入大数据时代之前,大多以SQL形式来访问存储的数据。大体上,SQL是针对MapReduce的包装,例如Hive、Impala或者Spark SQL。 Streaming流处理可以实时地接收由上游源源不断传来的数据,然后以某个细小的时间窗口为单位对这个过程中的数据进行处理。消费的上游数据可以是通过网络传递过来的字节流、从HDFS读取的数据流,又或者是消息队列传来的消息流。通常

centos7安装kylo0.10.1

可紊 提交于 2020-08-04 11:10:40
安装环境centos7,kylo版本0.10.1 常用的链接地址 kylo官网: https://kylo.io/ kylo文档:https://kylo.readthedocs.io/ 下载地址 官网: https://kylo.readthedocs.io/en/v0.10.0/about/Downloads.html https://s3-us-west-2.amazonaws.com/kylo-io/releases/tar/0.10.1/kylo-0.10.1.tar 百度网盘:https://pan.baidu.com/s/1xBtfSwETebN20iWoakdLeg 提取码:c5ae 自己编译: https://www.cnblogs.com/maobuji/p/10820691.html 系统需要提前安装工具: yum install wget unzip 1.安装mysql或者mysql客户端 https://www.cnblogs.com/maobuji/p/8336702.html 本次使用已安装好的外部mysql,只安装客户端 wget https: // repo.mysql.com // mysql57-community-release-el7-11.noarch.rpm yum install mysql57-community-release

centos7安装kylo0.10.1

你。 提交于 2020-08-04 11:06:00
安装环境centos7,kylo版本0.10.1 常用的链接地址 kylo官网: https://kylo.io/ kylo文档:https://kylo.readthedocs.io/ 下载地址 官网: https://kylo.readthedocs.io/en/v0.10.0/about/Downloads.html https://s3-us-west-2.amazonaws.com/kylo-io/releases/tar/0.10.1/kylo-0.10.1.tar 百度网盘:https://pan.baidu.com/s/1xBtfSwETebN20iWoakdLeg 提取码:c5ae 自己编译: https://www.cnblogs.com/maobuji/p/10820691.html 系统需要提前安装工具: yum install wget unzip 1.安装mysql或者mysql客户端 https://www.cnblogs.com/maobuji/p/8336702.html 本次使用已安装好的外部mysql,只安装客户端 wget https: // repo.mysql.com // mysql57-community-release-el7-11.noarch.rpm yum install mysql57-community-release