2 没有合适的昵称

尚未进行身份认证

我要认证

个人工作学习笔记

等级
TA的排名 3w+

java.io.IOException: org.apache.parquet.io.ParquetDecodingException: Can not read value at 0 in bloc

java.io.IOException: org.apache.parquet.io.ParquetDecodingException: Can not read value at 0 in block -1 in file hdfs://test:9999/user…000.snappy.parquet由于 Hive 和 SparkSQL 在 Decimal 类型上使用了不同的转换方式写入 Parquet,导致 Hive 无法正确读取 SparkSQL 所导入的数据。对于已有的使用 SparkSQL 导

2020-07-17 18:18:54

Attribute(s) with the same name appear in the operation: 字段... Please check if the right attribute(s

参考:https://blog.csdn.net/x950913/article/details/106810376/

2020-07-17 18:18:37

自定义函数UDF1之坑

public class SumStringUdf implements UDF1<String, Double> {@Overridepublic Double call(String sumStr) throws Exception {// 处理规则}}写法上不会报错,但是一旦执行,就会报错: of the type (java.lang.Double) cannot be converted to the string type 不管是...

2020-07-17 18:17:57

impala indexoutofboundsexception Error loading columns.

原因:impala不支持orc文件格式,同步元数据过去的时候,就会报这个错误解决:将orc表的元数据信息删除即可,或者将表的数据格式改一下,再同步即可

2020-07-10 19:10:30

spark shuffle解析

ShuffleMapStage与ResultStage在划分stage时,最后一个stage称为finalStage,它本质上是一个ResultStage对象,前面的所有stage被称为ShuffleMapStage。ShuffleMapStage的结束伴随着shuffle文件的写磁盘。ResultStage基本上对应代码中的action算子,即将一个函数应用在RDD的各个partitio...

2020-03-01 09:48:14

Spark 内存管理

在执行Spark 的应用程序时,Spark 集群会启动 Driver 和 Executor 两种 JVM 进程,前者为主控进程,负责创建 Spark 上下文,提交 Spark 作业(Job),并将作业转化为计算任务(Task),在各个 Executor 进程间协调任务的调度,后者负责在工作节点上执行具体的计算任务,并将结果返回给 Driver,同时为需要持久化的 RDD 提供存储功能。由于 Dri...

2020-03-01 15:25:06

Spark 核心组件解析

BlockManager数据存储与管理机制BlockManager是整个Spark底层负责数据存储与管理的一个组件,Driver和Executor的所有数据都由对应的BlockManager进行管理。Driver上有BlockManagerMaster,负责对各个节点上的BlockManager内部管理的数据的元数据进行维护,比如block的增删改等操作,都会在这里维护好元数据的变更。每个节...

2020-03-01 15:30:02

hive往指定位置添加字段

1

2020-07-02 22:00:06

大数据各组件理论性总结---spark和hadoop(将持续更新)

Hadoop和spark的起源Hadoop起源1998年9月4日,Google公司在美国硅谷成立。正如大家所知,它是一家做搜索引擎起家的公司无独有偶,一位名叫Doug Cutting的美国工程师,也迷上了搜索引擎。他做了一个用于文本搜索的函数库(姑且理解为软件的功能组件),命名为LuceneLucene是用JAVA写成的,目标是为各种中小型应用软件加入全文检索功能。因为好用而且开源(代码公...

2020-05-05 14:38:53

spark RDD相关总结(一)

Value类型map(func)案例作用:返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成需求:创建一个1-10数组的RDD,将所有元素2形成新的RDD(1)创建scala> var source = sc.parallelize(1 to 10)source: org.apache.spark.rdd.RDD[Int] = ParallelCollec...

2020-02-24 15:45:38

磁盘阵列(RAID)

前言到目前为止在同一个文件中读写数据的时候都是访问一块磁盘,那么如果这个磁盘坏了的话,那么数据将丢失了,这时候就可以使用 RAID 的技术来解决这个问题。RAID 翻译成中文就叫做磁盘阵列,我们通过把多块硬盘做一个组合使用,从而提高磁盘的读写性能或者提高数据的高可用性等,常见的 RAID 级别包括:1.RAID 02.RAID 13.RAID 54.RAID 10下面分别来讲解每一个...

2020-05-04 16:05:56

Centos 7 磁盘分区和挂载

查看磁盘管理我们来看下 Centos 7 的磁盘管理,说到磁盘管理,我们第一件感兴趣的是我的服务器现在有多少块磁盘呢?我们可以通过 vmware 中虚拟机的设置来查看:从上可以看出,目前这个虚拟机只有一块磁盘,磁盘的大小是 20G 。我们也可以通过下面的命令来查看磁盘的信息:fdisk -l输出如下的信息:我们看到上面的信息肯定很懵,感觉存在好几块磁盘似的,这到底是怎么回事呢?...

2020-05-04 15:52:42

hive join提升性能的点(将持续更新)

left semi join 代替 IN 字句的select m.* from 大表1 m where m.ID in (select l.ID from 小表2 l); -- 性能非常差,使用left semi join代替select m.* from 大表1 m left semi join 小表2 l on m.ID = l.ID limit 10;--但是 小表2 中的字段不...

2020-05-04 11:30:24

生产上的NameNode堆内存估算

NameNode堆内存估算在HDFS中,数据和元数据是分开存储的,数据文件被分割成若干个数据块,每一个数据块默认备份3份,然后分布式的存储在所有的DataNode上,元数据会常驻在NameNode的内存中,而且随着数据量的增加,在NameNode中内存的元数据的大小也会随着增加,那么这个时候对NameNode的内存的估算就变的非常的重要了。这里说的内存就是指NameNode所在JVM的堆内存...

2020-05-01 19:34:39

collect_set 踩坑点

collect_set之后再collect_set是不能将里面的字段给展开的

2020-04-28 09:00:53

Column type: DECIMAL(10,4), Parquet schema:\noptional int64 vender_num_of_faces_on_shelf [i:12 d:1

参考了一些博客:https://blog.csdn.net/harli_xxy/article/details/51820731最后我把decimal类型改成double就可以了

2020-03-30 19:52:09

spark源码----Spark任务划分、调度、执行

从RDD的创建开始讲起把它当做入口,然后点进去主要关注hadoopFile,进去会发现new了一个HadoopRDD以上其实就是一个RDD的构建过程又比如我们看flatMap,它一样会去构建一个新的RDD,把之前的RDD给传进去了又比如我们看map,它一样会去构建一个新的RDD,把之前的RDD给传进去了在换一个算子reduceByKey,点进去,包含一个默认的分区器然后再...

2020-03-01 09:25:09

spark源码----Spark 通讯架构

Spark通信架构概述Spark2.x版本使用Netty通讯框架作为内部通讯组件。spark 基于netty新的rpc框架借鉴了Akka的中的设计,它是基于Actor模型,如下图所示:Spark通讯框架中各个组件(Client/Master/Worker)可以认为是一个个独立的实体,各个实体之间通过消息来进行通信。具体各个组件之间的关系图如下:Endpoint(Client/Master...

2020-02-29 17:37:55

spark源码---部署的流程

spark的参数与提交的流程前言:个人读源码的一次记录首先,SparkSubmit的入口在:org.apache.spark.deploy.SparkSubmit,下面会有一个main方法点进SparkSubmitArguments(封装命令行参数):是否很熟悉?接着往下看,解析,参数是先将scala的数组转成java的数组,然后往下传点进parse,会有一个handle方法,在S...

2020-02-29 15:46:16

sparkSQL用JDBC连接Oracle写数据

主要是需要用Oracle的序列,而sparkSQL的jdbc是没有函数去实现的,所以只有用Oracle本身的表名.nextval来实现核心代码部分:object Grade { Class.forName("oracle.jdbc.driver.OracleDriver") val connection: Connection = DriverManager.getConnection...

2020-02-21 10:02:24

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。