- 博客(46)
- 收藏
- 关注
原创 记一次数仓Spark任务报错Caused by: java.lang.OutOfMemoryError: unable to create new native thread
发现每次报错都是在cdh116,检查116机器资源问题,发现内存cpu磁盘IO均正常。后查询该机器上的句柄打开数量,发现是某个组件打开了太多的句柄未关闭。发现kafka-eagle占用1300万个句柄,重启之,解决。检查机器配置的句柄数,正常,网上很多。咨询运维同事物理机状况,结果正常。
2024-03-06 10:40:15 178 1
转载 HIVE常见五种时间交叉及连续登录类问题
连续问题:如下数据为蚂蚁森林中用户领取的减少碳排放量,找出连续3天及以上减少碳排放量在100以上的用户。id dt lowcarbon1001 2021-12-12 1231002 2021-12-12 451001 2021-12-13 431001 2021-12-13 451001 2021-12-13 231002 2021-12-14 451001 2021-12-14 2301002 2021-12-15 451001 2021-12-15
2022-04-29 10:42:58 1210
原创 sparkstreaming多任务监控脚本
spark_main.sh #! /bin/bash#这个脚本是用来循环读取一个文件,这个文件就是发布的实时程序,以后再新添实时程序,放到spark_app_name.txt文件里就可以了 while read appName do sh /home/mes/report/script/spark/spark_crontab/spark_monitor.sh ${appName} echo ${appName} done < /home/mes/report...
2022-03-28 11:26:45 259
原创 CDM、LDM、PDM模型
CDM模型概念数据库模型,建立在传统的ER图模型的理论上,主要的三大元素有实体型,属性和联系。实体对应CMD中的Entity。属性对应CDM中的Entity的Attribute。除了保持E-R图原有的RelationShip以外,还增加了Association,Inheritance两种实体关系。在CDM中,除了1对1,1对多,多对多,联系还能设置mandatory(强制性联系),dependent(依赖性联系/标定关联)和dominant(统治联系)。mandatory:两个实体必须是
2022-02-11 13:43:59 1145
原创 E-R模型中实体、属性、联系各指什么
实体:表示一个离散对象,其代表软件系统中客观存在的生活中的实物,如人、动物,物体、列表、部门、项目等。而同一类实体就构成了一个实体集,实体集用矩形框表示,矩形框内写上实体名。属性:是实体中的所有特性。如用户有姓名、性别、住址、电话等。"实体标识符"是在一个实体中,能够唯一标识实体的属性和属性集的标示符。实体的属性用椭圆框表示,框内写上属性名,并用无向边与其实体集相连。联系:实体不会是单独存在的,实体和其他的实体之间有着联系。实体间的...
2022-02-11 10:12:08 4371
原创 sparkstreaming 中动态广播变量的使用
package test import java.sql.{Connection, DriverManager, ResultSet, Statement}import java.text.SimpleDateFormatimport java.util.{Date, Properties}import kafka._import org.apache.kafka.clients.consumer.ConsumerRecordimport org.apache.kafka.common.se.
2022-02-09 14:04:32 376
转载 数据库设计三大范式
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。在实际开发中最为常见的设计范式有三个:1.第一范式(确保每列保持原子性)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性...
2022-01-29 16:00:59 116
转载 Spark SQL 底层实现原理
1. Spark SQL架构设计直接使用SQL的方式实现大数据的开发,它同时支持DSL以及SQL的语法风格,目前在spark的整个架构设计当中,所有的spark模块,例如SQL,SparkML,sparkGrahpx以及Structed Streaming等都是基于 Catalyst Optimization & Tungsten Execution模块之上运行,如下图所示就显示了spark的整体架构模块设计2. SparkSQL执行过程Parser: 将sql语句利...
2022-01-29 15:58:57 719
原创 Hive中insert into和insert overwrite
insert into:将数据追加到表的末尾insert overwrite:覆盖之前的数据语句:insert into:hive>insert into [table] student select * from stu;(将select * from stu的查询结果追加到student表的后面,这时table可以省略)insert overwrite:hive>insert overwrite table student select * from stu;(将select *
2021-05-21 10:28:13 3316
转载 Shell脚本中调用另外一个脚本的方法
在Linux平台上开发,经常会在console(控制台)上执行另外一个脚本文件,经常用的方法有:./my.sh或source my.sh或. my.sh;这三种方法有什么不同呢?我们先来了解一下在一个shell脚本中如何调用另外一个shell脚本,其方法有fork exec source。1、fork ( /directory/script.sh) : 如果shell中包含执行命令,那么子命令并不影响父级的命令,在子命令执行完后再执行父级命令。子级的环境变量不会影响到...
2021-05-20 11:19:18 2107
原创 spark xml 明确的指定schema
package com.vivo.study.xmlimport org.apache.spark.sql.SparkSessionimport org.apache.spark.sql.catalyst.expressions.GenericRowWithSchemaimport org.apache.spark.sql.types._object ReadBooksXMLWithNestedArrayStruct { def main(args: Array[String]): Unit .
2020-06-01 11:30:37 540
转载 Spark mapPartitions、map、foreachPartition、foreach算子的区别、误区和正确用法
mapPartitions、map、foreachPartition、foreach的区别mapPartitions和map是transform算子,分别返回一个iterator迭代器和RDD。foreachPartition、foreach是action算子,无返回值。用于结果的输出操作mapPartitions、foreachPartition中定义的是一个RDD的每一个分区的统一处理逻辑...
2020-03-17 16:27:44 778 1
转载 【转】Spark Streaming消费Kafka Direct保存offset到Redis,实现数据零丢失和exactly once
转自:https://www.cnblogs.com/ChouYarn/p/9512102.html一、概述 上次写这篇文章文章的时候,Spark还是1.x,kafka还是0.8x版本,转眼间spark到了2.x,kafka也到了2.x,存储offset的方式也发生了改变,笔者根据上篇文章和网上文章,将offset存储到Redis,既保证了并发也保证了数据不丢失,经过测试,有效。二...
2019-08-21 14:56:27 405 1
原创 Rdd转换成SparkSQL的DataSet如何指定schema
与RDD进行相互操作SparkSQL支持两种不同方法将现有RDD转换成DataSets。第一种方法使用反射来推断包含特定类型对象的RDD的schema。这种基于反射的方法会导致更简洁的代码,并且在编写Spark应用程序时已经知道schema的情况下可以良好工作第二种创建Datasets的方法是通过编程接口,允许构建schema,然后将其应用于现在的RDD。此方法更加详细,但是它...
2018-10-09 22:12:15 600 1
转载 scala 中 下划线与星号(_*)
1.变长参数 例如定义一个变长参数的方法sum,然后计算1-5的和,可以写为scala> def sum(args: Int*) = { | var result = 0 | for (arg <- args) result += arg | result | }sum: (args: Int*)Intscala> val s...
2018-09-13 14:56:11 3001
转载 linux中文乱码
在RedHat/CentOS系统下,记录系统默认使用语言的文件是/etc/sysconfig/i18n,如果默认安装的是中文的系统,i18n的内容如下:LANG="zh_CN.UTF-8" SYSFONT="latarcyrheb-sun16" SUPPORTED="zh_CN.UTF-8:zh_CN:zh"其中LANG变量是language的简称,稍微有英语基础的用户一看就看出来这个变量是决定系...
2018-04-12 18:45:09 3387
转载 Linux更换scala版本,scala -version还是原来的版本问题
rm -rf /usr/bin/scalarm -rf /usr/bin/scalacln -s $SCALA_HOME/bin/scala /usr/bin/scalaln -s $SCALA_HOME/bin/scalac /usr/bin/scalac这样执行以后,然后 scala -version 、 scalac -version
2018-04-09 14:59:20 3362
原创 spark 读取redis
package com.test.log.makefriendsimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}import org.joda.time.{DateTime, DateTimeZone}import org.joda.time.format.DateTimeFo
2018-03-28 20:08:55 3479
原创 spark读取redis,连接池配置
package com.test.log.makefriendsimport redis.clients.jedis.{JedisPool, JedisPoolConfig}import scala.collection.mutable.ArrayBuffer/** * @Author: jxx * @Date: 2018/3/27 16:28 */object RedisU
2018-03-28 20:05:01 3184 1
转载 SparkTask未序列化(Tasknotserializable)问题分析
问题描述及原因分析在编写Spark程序中,由于在map等算子内部使用了外部定义的变量和函数,从而引发Task未序列化问题。然而,Spark算子在计算过程中使用外部变量在许多情形下确实在所难免,比如在filter算子根据外部指定的条件进行过滤,map根据相应的配置进行变换等。为了解决上述Task未序列化问题,这里对其进行了研究和总结。 出现“org.apache.spark.SparkExcept...
2018-03-28 09:20:39 302
转载 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51538611配置完hadoop启动的时候出现如下警告信息:[html] view plain copyWARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... usin...
2018-03-08 09:22:59 215
转载 There are 0 datanode(s) running and no node(s) are excluded in this operation.
出现上述问题可能是格式化两次hadoop,导致没有datanode解决办法是:找到hadoop安装目录下 hadoop-2.4.1/data/dfs/data里面的current文件夹删除然后从新执行一下 hadoop namenode -format再使用start-dfs.sh和start-yarn.sh 重启一下hadoop用jps命令看一下就可以看见datanode已经启动了...
2018-03-08 09:21:53 649
原创 安装基于hadoop集群的高可用完全分布式的spark高可用集群
高可用集群规划:hadoop.xiaoxun.com.cn01 JournalNode QuorumPeerMain NameNode DFSZKFailoverController DataNode NodeManager Master Workerhadoop.xiaoxun.com.cn02 JournalNode Quor...
2018-03-07 14:30:45 580 1
转载 spark-submit命令
spark-submit命令//(集群模式)限制资源,资源不足时候会卡在分配资源(--total-executor-cores 和 --executor-cores为总数和单点cores数量)spark-submit --class test.Streamings --master spark://10.102.34.248:7077 --deploy-mode cluster -
2018-03-06 18:05:35 1688
转载 【转】使用Docker搭建hadoop集群
这是转载的,原文章问题不少,先提前列出来,master的slave文件没改,hdfs-site.xml文件的dfs.datanode.data.dir和core-site.xml文件的hadoop.tmp.dir指向的文件夹必须相同且存在,不存在要手动创建,否则报错There are 0 datanode(s) running and no node(s) are excluded in this...
2018-02-26 17:25:06 197
原创 ssh-keygen 的 详解
为了让两个linux机器之间使用ssh不需要用户名和密码。所以采用了数字签名RSA或者DSA来完成这个操作。模型分析假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机;要达到的目的:A机器ssh登录B机器无需输入密码;加密方式选 rsa|dsa均可以,默认dsassh-keygen -t rsa #使用rsa加密二、具体操作流程单向登陆的操作过程(能满足...
2018-02-26 17:21:14 347
原创 spark序列化异常和Executor的僵死问题
在Spark上执行hive语句的时候,出现类似于如下的异常:org.apache.spark.SparkDriverExecutionException: Execution error at org.apache.spark.scheduler.DAGScheduler.handleTaskCompletion(DAGScheduler.scala:849)
2018-01-29 18:57:16 1754
原创 spark 使用中Driver Executor 的默认jvm参数在yarn-client和yarn-cluster的区别
内存溢出问题 在Spark中使用hql方法执行hive语句时,由于其在查询过程中调用的是Hive的获取元数据信息、SQL解析,并且使用Cglib等进行序列化反序列化,中间可能产生较多的class文件,导致JVM中的持久代使用较多,如果配置不当,可能引起类似于如下的OOM问题:Exception in thread "Thread-2" java.lang.Ou
2018-01-29 18:55:20 1328
转载 Spark性能优化总结
近期优化了一个spark流量统计的程序,此程序跑5分钟小数据量日志不到5分钟,但相同的程序跑一天大数据量日志各种失败。经优化,使用160 vcores + 480G memory,一天的日志可在2.5小时内跑完,下面对一些优化的思路方法进行梳理。优化的目标保证大数据量下任务运行成功降低资源消耗提高计算性能三个目标优先级依次递减,首要解决的是程序能够跑通大数据量,
2018-01-29 17:56:46 243
原创 spark堆外内存的设置
MemoryOverhead是JVM进程中除Java堆以外占用的空间大小,包括方法区(永久代)、Java虚拟机栈、本地方法栈、JVM进程本身所用的内存、直接内存(Direct Memory)等。通过spark.yarn.executor.memoryOverhead设置,单位MB。相关源码:[java] view plain copy
2018-01-29 17:04:04 4519
转载 Kafka:分布式发布-订阅消息系统
1. 介绍Kafka is a distributed,partitioned,replicated commit log service. It provides the functionality of a messaging system, but with a unique design.Kafka是一种分布式发布-订阅消息系统,它提供了一种独特的消息系统功能。
2018-01-29 14:29:25 623
原创 sbt-assembly自我认识
在Spark项目中经常涉及到外部依赖包的部署问题,比较简便的方式是将项目编译的class和依赖包打到一个jar包中,方便上传部署,scala项目使用sbt-assembly来将工程class和依赖打到一个jar包中,类似maven的assembly。参考sbt-assembly项目地址:https://github.com/sbt/sbt-assembly安装sbt-assem
2018-01-29 11:08:24 4884
转载 sbt-assembly解决jar包冲突 deduplicate: different file contents found in the following
sbt assembly 近期使用sbt战斗assembly发生故障时,包,在package什么时候,发生jar包冲突/文件冲突,两个相同class来自不同jar包classpath内心冲突。有关详细信息:我有一个self4j的jar, hadoop-common-hdfs的jar包。当中hadoop-common-hdfs.jar内包括了self4j这个jar包,导致冲突。
2018-01-26 14:23:10 656
原创 本地SBT assembly打包spark
SBT assembly打包spark程序:1.下载SBT ,下载地址:http://www.scala-sbt.org/download.html2.配置环境变量PATH, ;C:\Program Files (x86)\sbt\bin3.在C:\Users\当前用户\.sbt\0.13\目录下新建plugins文件夹,在其中创建plugins.sbt,加入以下代码
2018-01-25 16:29:56 1161
原创 以row_number为例解读spark sql的窗口函数
参考spark官网王家林DT大数据梦工厂场景将本地文件toNGroup.txt中的内容:hadoop@master:~/resource$ cat toNGroup.txt hadoop 29hadoop 87hadoop 39hadoop 27hadoop 88spark 29spark 90spark 27spark 84spark 92hadoop@master:~/
2018-01-19 15:27:56 3372
原创 Spark任务执行流程随笔
当使用spark-submit提交一个作业之后,这个作业就会启动一个对应的driver进程。 根据你使用的部署模式(deploy-mode)不同,driver进程可能在本地启动,也可能在集群中某个工作节点上启动。 driver进程本身会根据我们设置的参数,占有一定数量的内存和CPU core。而driver进程要做的第一件事,就是向集群管理器(可以是Spar
2018-01-11 11:26:19 653 1
转载 idea 2017.3 安装破解
最新的IDEA激活方式使用网上传统的那种输入网址的方式激活不了,使用http://idea.lanyus.com/这个网站提供的工具进行1、进入hosts文件中:C:\Windows\System32\drivers\etc\hosts2、将“0.0.0.0 account.jetbrains.com”添加到hosts文件中注意:添加只有重新打开hosts文件进行确
2018-01-09 14:32:33 1620
转载 Spark核心RDD:Sort排序详解
1.sortByKey无可非议sortByKey是Spark的最常用的排序,简单的案例暂且跳过,下面给一个非简单的案例,进入排序之旅对下面简单元祖,要求先按元素1升序,若元素1相同,则再按元素3升序(1, 6, 3), (2, 3, 3), (1, 1, 2), (1, 3, 5), (2, 1, 2)提示:sortByKey对于key是单个元素排序很简单,
2018-01-09 11:27:04 5738
原创 datastax集群cassnadra数据扩容
大数据集群使用centos7.0下基于docker的DatastaxEnterprise系统,datastax版本5.0.4,spark1.6.2,cassandra3.0.10。随着任务的进行,数据量不断增多,当集群容量不满足数据增长的情况下,为节省成本,选择磁盘扩容。以下为具体操作:1.购买磁盘空间装到服务器上 2.在服务器上找到该磁盘对应的名称 3.格式化磁盘 4
2018-01-06 23:10:30 615
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人