自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

没有合适的昵称

求知若饥,虚心若愚

  • 博客(123)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

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

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

2020-05-05 14:38:53 2543

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

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

2020-03-01 09:25:09 1625

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

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

2020-02-29 17:37:55 1383

原创 spark源码---部署的流程

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

2020-02-29 15:46:16 1373

原创 论一次flink checkpoint失败的排查过程

Container id: container_e910_1637406318221_42547_01_000003Exit code: 1Shell output: main : command provided 1main : run as user ismain : requested yarn user isGetting exit code file…Creating script paths…Writing pid file…Writing to tmp file 10_1637

2021-12-24 13:58:08 2919 1

原创 spark kudu Kerberos 认证不通过

Job aborted due to stage failure: Task 0 in stage 0.0 failed 4 times, most recent failure: Lost task 0.3 in stage 0.0 (TID 3, node12.test-tpl-hadoop-wh.com, executor 76): org.apache.kudu.client.NonRecoverableException: Couldn’t find a valid master in (node

2021-12-22 10:37:07 1618

原创 如何监听flinksql查询mysql的频率

1.在mysql的目录下, 找到my.ini文件, 然后在其中加入:[mysqld]log = "D:/Mysql5.5.61/mysql_log.sql"2.重启mysql服务3.这时候在mysql中执行任意语句, 均能在D:/Mysql5.5.61/mysql_log.sql中查看到flink sql mysql source lookup.cache.ttl据测试, 本单位是ms, 并非s以下实验均在本地中, 断点 JdbcRowDataLookupFunctionFOR SYS

2021-12-14 21:49:32 1914

原创 flink 常见问题汇总

代码如下:import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;import org.apache.flink.table.api.DataTypes;import org.apache.flink.table.api.Table;import org.apache.flink.table.api.bridge.java.StreamTableEnvironment;import org.apach

2021-10-05 21:51:34 4556

原创 clickhouse页面查询-tabix搭建

Embedded这种方式使用的clickhouse内置的服务,直接打开config.xml中http_server_default_response标签的注释就行<http_server_default_response><![CDATA[<html ng-app="SMI2"><head><base href="http://ui.tabix.io/"></head><body><div ui-view="" clas

2021-03-18 11:02:05 648

原创 clickhouse重复导数问题

背景因为使用alter table … drop (del)等情况都是在异步执行的,所以我们在导数的时候一定会考虑重复导数,补数等情况分区表1.先把导数的分区下掉alter table [table] detach partition ‘xxx’;2.把数据导入表中2.1 alter table [table] move partition ‘xxx’ to table [table]2.2 直接写两种方式任选一种3.删除下掉的数据alter table [xxx] drop deta

2021-03-18 11:01:54 703

原创 clickhouse实战--常见异常汇总

Code: 117, e.displayText() = DB::Exception: Unexpected NULL value of not Nullable type String (version 20.8.3.18)从上面报错信息来看,是因为null值导致的,hive底层存储null值是用\N表示,而clickhouse处理null值的方式不一致,因为需要在建表时特殊说明,问题解决思路:https://blog.csdn.net/jarry_cm/article/details/10598801

2021-01-25 08:41:16 12153 3

原创 hive 列转行or行转列

多列转多行给定一个表temp,字段是 user_id,clo1,col2…col12 12各字段代表12个月电费,求最终结果展现:user_id,month,moneywith temp as ( select 1 as user_id,2 as col1,3 as col2,4 as col3,5 as col4)select a.user_id,b.month,b.money from temp a lateral view explode(map('1',col1,'2',col2,

2020-12-29 09:07:14 280 2

原创 Property ‘name‘ has no setter method in class

用BeanUtils.setProperty设置的类必须是public,否则会报此错误

2020-11-24 20:57:57 2018 1

原创 hive order by/sort by /distribute by /cluster by

官网说明https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortByorder by全局排序,但是只有一个reduce,因此在数据量很大的情况下,效率很低sort by单个reduce内有效,但是全局无序,要想实现和order by 一样的效果,必须要进行一次归并排序(下面讲),控制个数:set mapred.reduce.tasks=xxx 如果是spark则是控制partitionsdistribute by

2020-11-22 10:44:15 119

原创 hive长尾优化

背景在刚使用hive的过程中,碰到过很多问题,任务经常需要运行7,8个小时甚至更久,在此记录一下这个过程中,我的一些收获join长尾背景SQL在Join执行阶段会将Join Key相同的数据分发到同一个执行Instance上处理。如果某个Key上的数据量比较多,会导致该Instance执行时间比其他Instance执行时间长。其表现为:执行日志中该Join Task的大部分Instance都已执行完成,但少数几个Instance一直处于执行中,这种现象称之为长尾长尾类别&优化方法小表长尾

2020-10-28 22:21:09 984 2

原创 The auxService:spark_shuffle does not exist

ERROR YarnAllocator: Failed to launch executor 8 on container container_e16_1596454596856_117925_01_000009org.apache.spark.SparkException: Exception while starting container container_e16_1596454596856_117925_01_000009 on host bj-yz-2fm1-d15-148-6-bigd.in

2020-09-10 20:33:05 1867 1

原创 ClickHouse内置函数

日期类函数时间或日期截取函数(to)—— 返回非日期toYear()取日期或时间日期的年份toYear(toDateTime(‘2018-12-11 11:12:13’)) toYear(toDate(‘2018-12-11’))返回 2018 返回 2018toMonth()取日期或时间日期的月份toMonth(toDateTime(‘2018-12-11 11:12:13’)) toMonth(toDate(‘2018-12-11’))返回 12返回 12toDayOfMonth()

2020-08-28 08:40:48 2238

原创 ClickHouse SQL语法

CREATECREATE DATABASE用于创建指定名称的数据库,语法如下:CREATE DATABASE [IF NOT EXISTS] db_name如果查询中存在IF NOT EXISTS,则当数据库已经存在时,该查询不会返回任何错误。:) create database test;Ok.0 rows in set. Elapsed: 0.018 sec.CREATE TABLE对于创建表,语法如下:CREATE TABLE [IF NOT EXISTS] [db.]ta

2020-08-22 22:19:40 1332

原创 ClickHouse表引擎(ClickHouse核心)

表引擎(即表的类型)决定了:1)数据的存储方式和位置,写到哪里以及从哪里读取数据2)支持哪些查询以及如何支持。3)并发数据访问。4)索引的使用(如果存在)。5)是否可以执行多线程请求。6)数据复制参数。ClickHouse的表引擎有很多,下面只介绍其中几种,对其他引擎有兴趣的可以去查阅官方文档:https://clickhouse.yandex/docs/zh/operations/table_engines/TinyLog最简单的表引擎,用于将数据存储在磁盘上。每列都存储在单独的压缩文件

2020-08-22 22:14:46 370

原创 ClickHouse数据类型

整型固定长度的整型,包括有符号整型或无符号整型。整型范围(-2n-1~2n-1-1):Int8 - [-128 : 127]Int16 - [-32768 : 32767]Int32 - [-2147483648 : 2147483647]Int64 - [-9223372036854775808 : 9223372036854775807]无符号整型范围(0~2n-1):UInt8 - [0 : 255]UInt16 - [0 : 65535]UInt32 - [0 : 4294967

2020-08-22 22:00:29 600 2

原创 ClickHouse安装

安装前的准备CentOS取消打开文件数限制在/etc/security/limits.conf、/etc/security/limits.d/90-nproc.conf这2个文件的末尾加入一下内容:[root@software]# vim /etc/security/limits.conf在文件末尾添加:* soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072[root@software

2020-08-22 21:51:39 452

原创 ClickHouse简介

什么是ClickHouseClickHouse 是俄罗斯的Yandex(类似于百度等在我们国家的地位)于2016年开源的列式存储数据库(DBMS),主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告(优势:快))。什么是列式存储以下面的表为例:Id Name Age1 张三 182 李四 223 王五 34采用行式存储时,数据在磁盘上的组织结构为:(相同颜色代表一行)好处是想查某个人所有的属性时,可以通过一次磁盘查找加顺序读取就可以。但是当想查所有人的年龄时,需

2020-08-22 21:21:56 1228

原创 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 2264

原创 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 2758

原创 自定义函数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 363

原创 impala indexoutofboundsexception Error loading columns.

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

2020-07-10 19:10:30 402

原创 spark shuffle解析

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

2020-07-02 22:04:23 1234

原创 Spark 内存管理

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

2020-07-02 22:03:53 1348

原创 Spark 核心组件解析

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

2020-07-02 22:03:11 1268

原创 hive往指定位置添加字段

1

2020-07-02 22:00:06 2936

原创 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-05-04 19:25:02 1562

原创 磁盘阵列(RAID)

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

2020-05-04 16:05:56 1908

原创 Centos 7 磁盘分区和挂载

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

2020-05-04 15:52:42 1552 3

原创 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 1538

原创 生产上的NameNode堆内存估算

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

2020-05-01 19:34:39 1662

原创 collect_set 踩坑点

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

2020-04-28 09:00:53 2367

原创 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 1833

原创 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 2353

原创 flink流处理API

EnvironmentgetExecutionEnvironment创建一个执行环境,表示当前执行程序的上下文。 如果程序是独立调用的,则此方法返回本地执行环境;如果从命令行客户端调用程序以提交到集群,则此方法返回此集群的执行环境,也就是说,getExecutionEnvironment会根据查询运行的方式决定返回什么样的运行环境,是最常用的一种创建执行环境的方式。val env: Exec...

2020-02-18 10:54:39 1606

原创 flink运行架构

任务提交流程(yarn模式)Flink任务提交后,Client向HDFS上传Flink的Jar包和配置,之后向Yarn ResourceManager提交任务,ResourceManager分配Container资源并通知对应的NodeManager启动ApplicationMaster,ApplicationMaster启动后加载Flink的Jar包和配置构建环境,然后启动JobManage...

2020-02-17 09:55:15 1357

CDH5.14安装文档(包含spark2和kafka的安装)

CDH5.14安装文档(包含spark2和kafka的安装)

2021-03-30

CDH6.2安装文档.doc

CDH6.2.0安装详细文档,博主一步步实验过的,不足之处还望各位前辈同行指正,谢谢

2019-10-07

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除