自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

没有合适的昵称

求知若饥,虚心若愚

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

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

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

2020-05-05 14:38:53 1393

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

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

2020-03-01 09:25:09 1388

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

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

2020-02-29 17:37:55 1194

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

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

2020-02-29 15:46:16 1172

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

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

2020-11-24 20:57:57 8

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

原创 hive长尾优化

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

2020-10-28 22:21:09 40 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 72

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

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

原创 ClickHouse表引擎(ClickHouse核心)

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

2020-08-22 22:14:46 136

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

原创 ClickHouse安装(基于rpm包)

安装前的准备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 229

原创 ClickHouse简介

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

2020-08-22 21:21:56 101

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

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

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

原创 impala indexoutofboundsexception Error loading columns.

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

2020-07-10 19:10:30 158

原创 spark shuffle解析

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

2020-07-02 22:04:23 1140

原创 Spark 内存管理

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

2020-07-02 22:03:53 1173

原创 Spark 核心组件解析

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

2020-07-02 22:03:11 1175

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

1

2020-07-02 22:00:06 1395

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

原创 磁盘阵列(RAID)

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

2020-05-04 16:05:56 1265

原创 Centos 7 磁盘分区和挂载

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

2020-05-04 15:52:42 1193 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 1175

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

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

2020-05-01 19:34:39 1342

原创 collect_set 踩坑点

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

2020-04-28 09:00:53 1393

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

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

原创 flink流处理API

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

2020-02-18 10:54:39 1333

原创 flink运行架构

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

2020-02-17 09:55:15 1268

原创 数仓即席查询--Druid

Druid简介Druid是一个快速的列式分布式的支持实时分析的数据存储系统;它在处理PB级数据,毫秒级查询,数据实时处理方面,比传统的OLAP系统有了显著的性能改进官网:http://druid.io/ps:阿里巴巴也有一个项目叫Druid,但是它是一个数据库连接池项目Druid特点1.列式存储格式Druid使用面向列的存储,它只需要加载特定查询所需的列,查询速度快2.可扩展的分布式...

2020-02-14 18:39:20 1468

原创 数仓即席查询---Presto

Presto简介presto是一个开源的分布式SQL查询引擎,数据量支持GB到PB级,主要用来处理秒级查询场景ps:虽然presto可以解析SQL,但它不是一个标准的数据库,不是MySQL,oracle的代替品,也不能用来处理在线事务(OLTP);官网:https://prestodb.io/Presto架构Presto由一个coordinator和多个worker组成Presto优缺...

2020-02-14 11:01:46 1547

原创 Mysql+Keepalived实现HA---备份元数据

前言CDH集群的一些组件的元数据信息都是放在了MySQL中,如果MySQL挂掉,那么整个集群都将无法运行,因此,MySQL的元数据备份还是很重要的环境说明1、系统版本:Centos7.02、mysql版本:5.6.353、安装用户:master(需配置无密码的sudo权限)4、mysql master:192.168.240.167 mysql slave:192.168.240.1...

2020-02-12 10:21:45 1187

原创 Kafka压力测试

Kafka压测用Kafka官方自带的脚本,对Kafka进行压测。Kafka压测时,可以查看到哪个地方出现了瓶颈(CPU,内存,网络IO)。一般都是网络IO达到瓶颈。kafka-consumer-perf-test.shkafka-producer-perf-test.shKafka Producer压力测试1.在kafka的bin目录下面有这两个文件bin/kafka-producer...

2020-02-11 10:21:55 1226

原创 hadoop--基压测试

在安装完集群后,我们都需要先对集群做一些测试,下面讲解测试读写的性能写性能包名:Apache:hadoop-mapreduce-client-jobclient-2.7.5-tests.jarCDH:hadoop-mapreduce-client-jobclient-3.0.0-cdh6.2.0-tests.jar包路径:/home/hadoop-jrq/bigdata/hadoo...

2020-02-09 14:42:47 1283

原创 hadoop---LZO压缩配置

下载https://github.com/twitter/hadoop-lzo/archive/master.zip编译下载后的文件名是hadoop-lzo-master,它是一个zip格式的压缩包,先进行解压,然后用maven编译。生成hadoop-lzo-0.4.20.jar上传HAOOP_HOME/share/hadoop/common/如果是CDH那么上传到:/opt/clou...

2020-02-08 20:37:50 1235

原创 CDH集群日志数据清理--val/lib

rm /var/lib/cloudera-host-monitor/ts/*/partition*/* -rfrm /var/lib/cloudera-service-monitor/ts/*/partition*/* -rf参考:https://www.cnblogs.com/qinglanmei/p/11455010.html我主要清理cloudera-host-monitor和clo...

2020-02-03 12:41:39 1484 2

原创 Sqoop数据导出一致性问题

场景如Sqoop在导出到Mysql时,使用4个Map任务,过程中有2个任务失败,那此时MySQL中存储了另外两个Map任务导入的数据,此时老板正好看到了这个报表数据。而开发工程师发现任务失败后,会调试问题并最终将全部数据正确的导入MySQL,那后面老板再次看报表数据,发现本次看到的数据与之前的不一致,这在生产环境是不允许的。解决官网描述及参数介绍:Since Sqoop breaks do...

2020-02-02 19:35:01 1652

CDH6.2安装文档.doc

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

2019-10-07

空空如也

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

TA关注的人 TA的粉丝

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