自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)

原创 mysql导数据到hive后换行符冲突的解决

在采用常用的数据迁移工具时,常会采用sqoop和dataX工具,在数据迁移时难免会遇到一些特殊字符的处理,比如hive里的换行符\n无法更改,而原数据源难免的会存在一些数据格式会存储\n,如mysql里的mediumtext格式就会存储有\n,这是后数据存储进hive后就不可比遍的与hive的换行符冲突,造成数据的切分错乱。解决方案:方案一:把换行符替换成空字符串,sqoop中有替换的参数,但是datax中没有。如下 将下将换行符换成 ‘\n’,在sqoop的配置李添加下列参数–hive-deli

2020-09-03 20:41:06 74

原创 SparkSql 读mysql数据写入到Es

话不多说直接上代码1.Scala版本 (将mysql的两个表join然后将结果插入到ES中) <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.27&lt

2020-07-30 16:06:59 83

原创 大数据spark、hadoop、hive、hbase面试题及解析

(1)spark运行流程、源码架构(2)Hbase主键设计、hbase为何这么快?主键设计:1.生成随机数、hash、散列值2.字符串反转3.字符串拼接hbase为何快:https://blog.csdn.net/sghuu/article/details/102955969(3)Hbase读写流程,数据compact流程hbase读写流程:https://blog.csdn.n...

2019-12-26 11:37:06 605

原创 spark的任务划分和任务调度详解

以spark-cluster模式为例spark的任务提交流程介绍:https://blog.csdn.net/sghuu/article/details/103710145提交一个Spark应用程序,首先通过Client向ResourceManager请求启动一个Application,同时检查是否有足够的资源满足Application的需求,如果资源条件满足,则准备ApplicationMa...

2019-12-26 11:35:39 405

原创 spark的数据倾斜的6种解决方案

1 解决方案一:聚合原数据避免shuffle过程·绝大多数情况下,Spark作业的数据来源都是Hive表,这些Hive表基本都是经过ETL之后的昨天的数据。为了避免数据倾斜,我们可以考虑避免shuffle过程,如果避免了shuffle过程,那么从根本上就消除了发生数据倾斜问题的可能。如果Spark作业的数据来源于Hive表,那么可以先在Hive表中对数据进行聚合,例如按照key进行分组,...

2019-12-26 10:12:21 98

原创 Flink的端到端的一致性保证以及二阶段提交

Flink的端到端的一致性保证状态一致性:有状态的流处理,内部每个算子都可以有自己的状态对于处理器内部而言,所谓的状态一致性,其实就是我们所说的计算的结果要保证准确一条数据都不应该丢失,也不应该重复计算同一个数据在遇到故障时可以恢复,恢复之后重新计算,计算的结果也应该正确不受影响故障恢复时的三种一致性要求:AT-MOST-ONCE(最多一次)当任务故障时,最简单的做法是什么都不干,...

2019-12-25 21:01:51 999

原创 kafka-flink-kafka端到端状态一致性的保证

内部 —— 利用 checkpoint 机制,把状态存盘,发生故障的时候可以恢复,保证内部的状态一致性source —— kafka consumer 作为 source,可以将偏移量保存下来,如果后续任务出现了故障,恢复的时候可以由连接器重置偏移量,重新消费数据,保证一致性flink在消费kafka的数据时,在恢复状态时并不会使用kafka自己维护的offset,假设:使用kafka自己维护...

2019-12-25 21:01:04 423

原创 Flink对迟到数据的处理的三种方式

**Flink对迟到数据的处理**水位线可以用来平衡计算的完整性和延迟两方面。除非我们选择一种非常保守的水位线策略(最大延时设置的非常大,以至于包含了所有的元素,但结果是非常大的延迟),否则我们总需要处理迟到的元素。迟到的元素是指当这个元素来到时,这个元素所对应的窗口已经计算完毕了(也就是说水位线已经没过窗口结束时间了)。这说明迟到这个特性只针对事件时间。DataStream API提供...

2019-12-25 19:48:00 1543

原创 Flink的触发器Trigger介绍和使用

触发器定义了window何时会被求值以及何时发送求值结果。触发器可以到了特定的时间触发也可以碰到特定的事件触发。例如:观察到事件数量符合一定条件或者观察到了特定的事件。默认的触发器将会在两种情况下触发处理时间:机器时间到达处理时间事件时间:水位线超过了窗口的结束时间触发器可以访问流的时间属性以及定时器,还可以对state状态编程。所以触发器和process function一样强大。例如我...

2019-12-25 19:13:48 1017

原创 Flink的时间和窗口的使用、水位线的设置

Event Time:是事件创建的时间。它通常由事件中的时间戳描述,例如采集的日志数据中,每一条日志都会记录自己的生成时间,Flink通过时间戳分配器访问事件时间戳。Ingestion Time:是数据进入Flink的时间。Processing Time:是每一个执行基于时间操作的算子的本地系统时间,与机器相关,默认的时间属性就是Processing Time。window分为两大类:Co...

2019-12-25 14:03:05 1226 1

原创 Flink的状态介绍和有状态的计算

**Flink的状态介绍**Flink的状态指的是1.维护的状态变量,键控状态值状态(Value state)为每个键存储一个任意类型的单个值。复杂数据结构也可以存储为值状态。列表状态(List state)为每个键存储一个值的列表。列表里的每个数据可以是任意类型。映射状态(Map state)为每个键存储一个键值映射(map)。map的key和value可以是任意类型。2....

2019-12-25 13:13:43 766

原创 flink的一致性检查点三种算法

**flink的一致性检查点算法**Flink的恢复机制的核心就是应用状态的一致性检查点,有状态流的一致性检查点,其实就是所以状态在某个时间点的一份快照拷贝,而这个时间点应该是所有任务都恰好处理完同一个输入数据。一般常见的检查点算法:方法一:常用的某个时间点的快照1)暂停所有输入流的摄取有,也就是不接受性的数据输入2)等待所有摘出来的数据计算完毕,这就意味者结束时,所有任务都已经处理...

2019-12-25 09:38:24 442

原创 Flink的架构

**Flink的架构**组件Flink运行时架构主要包括四个不同的组件,它们会在运行流处理应用程序时协同工作:作业管理器(JobManager)、资源管理器(ResourceManager)、任务管理器(TaskManager),以及分发器(Dispatcher)。因为Flink是用Java和Scala实现的,所以所有组件都会运行在Java虚拟机(JVMs)上。每个组件的职责如下:作业...

2019-12-23 21:30:49 47

原创 Flink的任务失败以及结果的保证介绍

在执行之前,流程序将会被翻译成物理层数据流图,物理层数据流图由连接的并行任务组成,而一个并行任务运行一些运算符逻辑,消费输入流数据,并为其他任务产生输出流数据。真实场景下,可能有数百个这样的任务并行运行在很多的物理机器上。在长时间的运行中,流任务中的任意一个任务在任意时间点都有可能失败。我们如何保证任务的失败能被正确的处理,以使任务能继续的运行下去呢?事实上,我们可能希望我们的流处理器不仅能在任务...

2019-12-23 21:19:44 261

原创 Flink的简介

Flink的简介Apache Flink是第三代分布式流处理器,它拥有极富竞争力的功能。它提供准确的大规模流处理,具有高吞吐量和低延迟。特别的是,以下功能使Flink脱颖而出:事件时间(event-time)和处理时间(processing-tme)语义。即使对于无序事件流,事件时间(event-time)语义仍然能提供一致且准确的结果。而处理时间(processing-time)语义可用于具...

2019-12-23 21:06:46 32

原创 spark容错的四种保证机制

spark容错的四种保证机制转载自:https://www.cnblogs.com/xiaoyh/p/11070549.html一、Spark RDD容错原理  RDD不同的依赖关系导致Spark对不同的依赖关系有不同的处理方式。对于宽依赖而言,由于宽依赖实质是指父RDD的一个分区会对应一个子RDD的多个分区,在此情况下出现部分计算结果丢失,单一计算丢失的数据无法达到效果,便采用重新计算该...

2019-12-17 23:34:52 96

原创 SparkStreaming并行度的计算方式和设置(spark官方文档介绍)

这是官网上的截图:通过网络(例如Kafka,Flume,套接字等)接收数据需要对数据进行反序列化并将其存储在Spark中。如果数据接收成为系统的瓶颈,请考虑并行化数据接收。请注意,每个输入DStream都会创建一个接收器(在工作计算机上运行),该接收器接收单个数据流。因此,可以通过创建多个输入DStream并将其配置为从源接收数据流的不同分区来实现接收多个数据流。例如,可以将接收两个主题数据...

2019-12-17 21:18:42 358

原创 kafka自定义消费者控制精确一次消费问题

自定义消费者,为保证消费数据的安全性,自定义offset的存储于带事务的存储容器Consumer消费数据时的可靠性是很容易保证的,因为数据在Kafka中是持久化的,故不用担心数据丢失问题。由于consumer在消费过程中可能会出现断电宕机等故障,consumer恢复后,需要从故障前的位置的继续消费,所以consumer需要实时记录自己消费到了哪个offset,以便故障恢复后继续消费。所以of...

2019-12-17 20:56:48 350

原创 基于redis的控制sparkStreaming 对接kafka 精确一次消费数据的解决方案

demo程序使用"KafkaUtils.createDirectStream"创建Kafka输入流,此API内部使用了Kafka客户端低阶API,不支持offset自动提交(提交到zookeeper)。"KafkaUtils.createDirectStream"官方文档:http://spark.apache.org/docs/2.2.0/streaming-kafka-0-8-integr...

2019-12-17 20:54:36 942

原创 flink任务提交的流程

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

2019-12-16 21:14:10 199

原创 spark on yarn 上的两种模式 client 和 cluster

比较详细比较全面:https://www.jianshu.com/p/0ee5e941a7cb

2019-12-16 18:34:33 65

原创 spark on yarn的提交流程

spark on yarn cline 模式在YARN Client模式下,Driver在任务提交的本地机器上运行,Driver启动后会和ResourceManager通讯申请启动ApplicationMaster,随后ResourceManager分配container,在合适的NodeManager上启动ApplicationMaster,此时的ApplicationMaster的功能相当...

2019-12-15 13:58:47 201

原创 RDD、DataFrame、和DataSet三者的区别

在 SparkSQL 中 Spark 为我们提供了两个新的抽象,分别是DataFrame和DataSet。他们和RDD有什么区别呢?首先从版本的产生上来看:RDD (Spark1.0) —> Dataframe(Spark1.3) —> Dataset(Spark1.6)如果同样的数据都给到这三个数据结构,他们分别计算之后,都会给出相同的结果。不同是的他们的执行效率和执行方式。在...

2019-12-15 11:06:54 46

原创 spark从四个方面调优

一、常规性能调优1.最佳的资源配置 Executor个数 Executor核数 Executor内存大小2. rdd优化 对于需要多次用到的数据进行持久化 , 尽量将filter的操作提前3.并行度的优化 并行度的调节,一般设置task数量为核数的2-3倍,与数据量的大小无关4.采取 广播大变量5.采用kryo压缩格式6.调节本地化等待的时长...

2019-12-15 09:44:43 56

原创 spark的四种shuffle机制

1.未经优化的HashShuffleManager 下一个stage有n个task,则该stage的有m个task都生成n文件,在落盘时会生成nm个文件,大量小文件性能效率差2.优化的HashShuffleManager 一个Excutor里面的同stage的task共用一个buffler内存,在shuffle过程中,task就不用为下游stage的每个task创建一个磁盘文件了,而是...

2019-12-14 22:17:18 64

原创 spark为什么比mapreduce快

**spark为什么比mapreduce快**当问到这个问题时总是回答:“spark是基于内存 hadoop是基于磁盘” ,我感觉这个说法不是很严谨 ,所有运算都是基于内存的spark和mr都是基于内存的运算,不通的是数据源的的来源,比如mr每次的数据源都是来源磁盘文件,而spark是可以基于之前运算的的缓存所以速度会快。<正题>spark 比mr快的原因:spark的官...

2019-12-14 22:05:40 72

转载 kafka面试题一篇就够(超详细)

转载自:https://www.cnblogs.com/jingangtx/p/11330343.html

2019-11-21 11:53:31 221

原创 hsql例题

关于字符串转换成日期格式的函数:select from_unixtime(unix_timestamp('2015/01/01' ,'yyyy/MM/dd'), 'yyyy-MM-dd') ;2019-01-01建表语句:drop table action if exists ;create table action( id string , vd string, vc int...

2019-11-14 15:55:21 84

原创 hadoop的yarn结果及作业提交流程

工作机制详解(1)MR程序提交到客户端所在的节点。(2)YarnRunner向ResourceManager申请一个Application。(3)RM将该应用程序的资源路径返回给YarnRunner。(4)该程序将运行所需资源提交到HDFS上。(5)程序资源提交完毕后,申请运行mrAppMaster。(6)RM将用户的请求初始化成一个Task。(7)其中一个NodeManager...

2019-11-07 17:18:45 103

原创 hbase的hfile compaction 以及region的split

hfile compaction由于memstore每次刷写都会生成一个新的HFile,且同一个字段的不同版本(timestamp)和不同类型(Put/Delete)有可能会分布在不同的HFile中,因此查询时需要遍历所有的HFile。为了减少HFile的个数,以及清理掉过期和删除的数据,会进行StoreFile Compaction。Compaction分为两种,分别是Minor Compa...

2019-11-07 15:57:19 78

原创 hbase优化

一、 高可用在HBase中Hmaster负责监控RegionServer的生命周期,均衡RegionServer的负载,如果Hmaster挂掉了,那么整个HBase集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以HBase支持对Hmaster的高可用配置。1.关闭HBase集群(如果没有开启则跳过此步)[atguigu@hadoop102 hbase]$ bin/stop-hb...

2019-11-07 15:45:05 43

原创 hbase查询为何快(超详细)摘抄

A:如果快速查询(从磁盘读数据),hbase是根据rowkey查询的,只要能快速的定位rowkey, 就能实现快速的查询,主要是以下因素:1、hbase是可划分成多个region,你可以简单的理解为关系型数据库的多个分区。2、键是排好序了的3、按列存储的首先,能快速找到行所在的region(分区),假设表有10亿条记录,占空间1TB, 分列成了500个region, 1个regio...

2019-11-07 15:29:56 226

原创 hive动态分区调整

关系型数据库中,对分区表Insert数据时候,数据库自动会根据分区字段的值,将数据插入到相应的分区中,Hive中也提供了类似的机制,即动态分区(Dynamic Partition),只不过,使用Hive的动态分区,需要进行相应的配置。1.开启动态分区参数设置(1)开启动态分区功能(默认true,开启)hive.exec.dynamic.partition=true(2)设置为非严格模式(动...

2019-11-05 20:02:24 230

原创 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

aaa

2019-11-04 22:47:06 272

原创 Diagnostics: Container is running beyond virtual memory limits 运行Tez时检查到用过多内存而被NodeManager杀死进程问题:

1)运行Tez时检查到用过多内存而被NodeManager杀死进程问题:Caused by: org.apache.tez.dag.api.SessionNotRunning: TezSession has already shutdown. Application application_1546781144082_0005 failed 2 times due to AM Container...

2019-11-04 21:05:20 214

原创 hadoop支持Lzo压缩配置及案例

hadoop支持Lzo压缩配置1)hadoop本身并不支持lzo压缩,故需要使用twitter提供的hadoop-lzo开源组件。hadoop-lzo需依赖hadoop和lzo进行编译,编译步骤如下。2)将编译好后的hadoop-lzo-0.4.20.jar 放入hadoop-2.7.2/share/hadoop/common/[atguigu@hadoop102 common]$ pwd...

2019-11-01 20:59:41 310 2

原创 Hbase的API操作

理解好Put、Cell,Result等的概念package com.atguigu.hbase;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.*;import org.apache.hadoop.hbase.client.*;import org.apache.hadoop.hba...

2019-10-26 09:17:00 57

原创 Hbase架构详解

1)StoreFile保存实际数据的物理文件,StoreFile以Hfile的形式存储在HDFS上。每个Store会有一个或多个StoreFile(HFile),数据在每个StoreFile中都是有序的。2)MemStore写缓存,由于HFile中的数据要求是有序的,所以数据是先存储在MemStore中,排好序后,等到达刷写时机才会刷写到HFile,每次刷写都会形成一个新的HFile。3...

2019-10-23 18:57:44 103

原创 kafka高速读写数据

1)顺序写磁盘Kafka的producer生产数据,要写入到log文件中,写的过程是一直追加到文件末端,为顺序写。官网有数据表明,同样的磁盘,顺序写能达到600M/s,而随机写只有100k/s。这与磁盘的机械机构有关,顺序写之所以快,是因为其省去了大量磁头寻址的时间。2)零拷贝技术传统的读取文件数据并发送到网络的步骤如下:(1)操作系统将数据从磁盘文件中读取到内核空间的页面缓存;(2)应...

2019-10-22 20:47:00 128

原创 kafka详细自定义生产者(Producer)、消费者(Consumer)、拦截器

自定义生产者package com.atguigu.kafka;import org.apache.kafka.clients.producer.*;import org.apache.kafka.common.serialization.StringSerializer;import java.util.Properties;import java.util.concurrent.E...

2019-10-22 20:37:26 407

空空如也

空空如也

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