随笔分类 - Spark
介绍Spark组件
摘要:一、Spark版本不一致报错现象 当使用client模式连接Spark的standalone集群时,报错所有的spark master的节点都没有回应。 二、问题排查思路 通过client端的日志产看没有什么有价值的信息,需要看下spark端的master的日志,docker logs spark-
阅读全文
摘要:一、Spark读取DM数据库问题描述 当达梦的表格设计使用number数据类型时,如果没有指定精确,使用默认值,如下图所示 则在读取该表格数据时,报错如下: 24/01/12 10:43:48 ERROR Node: [47db01a8b6ff47e7840cb0a777033721]:compon
阅读全文
摘要:1、概述 相对于CDH使用yarn进行资源调度,TDH从6.x版本之后,就没有在使用yarn,而是默认使用K8S做资源调度了;假如在TDH上面安装了yarn组件,也可以使用yarn进行资源调度; 2、自己开发的spark的jar提交到TDH上执行报错 自己开发的spark的jar包提交到tdh上面执
阅读全文
摘要:一、概述 通过Hive注册的永久类型的UDF函数在SparkSQL也可以使用,hive和sparksql通过类型映射对hive的udf函数与sparksql的udf转换进行了映射。 二、sparkSQL使用hive中UDF函数报错类找不到解决 2.1 Sparksql使用hive的UDF函数报错类找
阅读全文
摘要:一、概述 在实际应用中经常会碰到CSV文件带有表头的情况,Spark对CSV文件有响应的跳过表头的方法,Txt格式的文件没有响应的方法,需要加一个过滤器。 二、实现方法 如果第一条记录中只有一个标题行,那么过滤它的最有效方法是: rdd.mapPartitionsWithIndex { (idx,
阅读全文
摘要:一、概述 当CDH平台开启kerberos后,需要kdc服务验证通过和kerberos协议验证通过才可以。如果将spark程序部署在CDH 机器上,直接在生成keytab并使用principal登录kerberos即可。 如果当spark应用程序部署在第三方机器上时,还需要处理krb5.conf注册
阅读全文
摘要:一、概述 当集群开启了Kerberos后,Spark向hive中写入数据时,代码中会去读取yarn的配置文件,如果读不到yarn的配置文件,就会报这样的错误。如果用IDEA开发的ETL程序直接在CDH上面运行是没有这个问题的;但是当程序在第三方机器上运行时就会包这个错误。因为Spark客户端需要将y
阅读全文
摘要:一、概述 spark使用hive中有比较多的坑,尤其是版本问题引起的jar包冲突,比较好的方式是使用与CDH匹配的hive和hadoop版本,这样可以减少很多的jar冲突问题,但是在IDEA调试过程中还是难免会碰到jar包冲突问题。 二、CDH6.3.2中碰到问题解决方法 1、java.lang.N
阅读全文
摘要:一、概述 spark对离线数据进行ETL处理时,经常会碰到各式各样的分隔符,如果碰到的分隔符恰好有需要转义,就会引发一些错误,并且比较难以排查。比如我在项目中就碰到了客户的~|~作为分隔符的数据。因为需要在界面上输入,可把我坑惨了,花费了比较多的时间,在此记录一下。 二、问题解决 如果需要在在jso
阅读全文
摘要:一、概述 出现该问题的原因是因为 如果用命令行创建的hive表,会根据hive的hive.default.fileformat,这个配置来规定hive文件的格式,其中fileformat一般有4中,分别是TextFile、SequenceFile、RCFile、ORC。默认情况下,不指定的话,是Te
阅读全文
摘要:一 、概述 在spark访问CDH平台时,如果同时访问两个CDH平台,如果登录的CDH平台中没有kerberos信息,而插入信息的CDH平台开启了Kerberos信息,就会报错误 Server asks us to fall back to SIMPLE auth, but this client
阅读全文
摘要:一、概述 使用IDEA调试spark程序时,spark通过thriftserver访问hive的元数据信息,如果不设置spark的warehouse目录会报nameservice1异常;这是因为本地目录访问不到nameservice信息,需要将nameservices配置到spark中。 二、问题解
阅读全文
摘要:一、概述 Spark处理关系型数据库时需要加载关系型数据库的驱动,不然会报找不到驱动包的错误。一般根据Spark的使用不是不同有以下几种加载驱动包的方法。 二、加载驱动包的方法 1、使用--jars的命令 ./spark-submit --classs com.rdc.bdata.compute.j
阅读全文
摘要:一、Sparksql隐式转换时异常描述 Cannot create encoder for Option of Product type, because Product type is represented as a row, and the entire row can not be null
阅读全文
摘要:一、概述 在调试Spark项目的时候报了一个包冲突异常,找了好长时间,最后发现是包冲突了;特此记录一下,原始报错找不到了。一般包冲突有个明显的特征就是报类找不到异常,可以根据提示把Spark冲突的包排除掉,然后再把其他的把单独加上去,就可以解决了。 Caused by: java.lang.Numb
阅读全文
摘要:一、概述 由于我们在使用spark编写时,使用文件一般都是从C://file//demo.txt,都是以文件盘符开始的,而Linux中没有盘符号,只有文件目录,例如:file:///home//demo//test//txt.json; 我们在进行本地测试时往往都是用的window,因此,直接把js
阅读全文
摘要:Spark的jar包比较多,如果直接修改spark的jars目录中的jar可能对用户造成jar包冲突,也不利于管理,因为可以利用HDFS存储功能解决jar问题 1、在本地创建zip文件,压缩jar包 # 进入到spark的jars目录,在spark的jars目录下压缩包zip spark.zip .
阅读全文
摘要:1、概述 为了更好地理解调度,我们先看一下集群模式的Spark程序运行架构图,如上所示: 2、Spark中的基本概念 1、Application:表示你的程序 2、Driver:表示main函数,创建SparkContext。并由SC负责与ClusterMananger通信,进行资源的申请,任务的监
阅读全文