自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

OH LEI``

这家伙很懒,什么都没有留下

  • 博客(70)
  • 收藏
  • 关注

原创 Kafka RecordAccumulator源码

RecordAccumulator其作用相当于一个缓冲队列,会根据主题和分区(TopicPartition对象)对消息进行分组,每一个TopicPartition对象会对应 一个双端队列Deque<ProducerBatch>,ProducerBatch表示一批消息,在KafkaProducer发送消息时,总是从队列队尾 (Tail)取出ProducerBatch(如果队列不为空)...

2019-09-17 10:42:28 552

原创 Kafka producer源码解析

KafkaProducer从procuder.send 说起 try { val kafkaProducerRecord =new ProducerRecord[String, String]("live_order_id_info_back", sedMsg) procuder.send(kafkaProduc...

2019-09-10 15:40:45 2122

原创 Prometheus三、

1、样本过滤 【按照标签,多个标签用逗号分割】过滤前:rule_platform_sync_success_counter_total过滤后:rule_platform_sync_success_counter_total{service="srch-rule-platform-sync-prod-prom"}注:= 精确地匹配标签给定的值 != 不等于...

2019-08-30 16:05:00 1164

原创 Prometheus 二、

k8s内部监控体系重度依赖Prometheus以及EFK以及Heapster,主要的组件如下:Prometheus 监控+报警 Elasticsearch、Fluentd和Kibana(EFK)技术栈日志收集(pod的stdout) Heapster节点指标监控监控体系主要是基于上述组件定制。技术架构业务指标收集,主要是依赖日志+Fluentd+Prometheus Plug...

2019-08-30 16:04:35 410

原创 Prometheus 一、

Prometheus 入门与实践随着容器技术的迅速发展,Kubernetes 已然成为大家追捧的容器集群管理系统。Prometheus 作为生态圈 Cloud Native Computing Foundation(简称:CNCF)中的重要一员,其活跃度仅次于 Kubernetes, 现已广泛用于 Kubernetes 集群的监控系统中。本文将简要介绍 Prometheus 的组成和相关概念,...

2019-08-30 16:01:23 1035

原创 Spark Streaming2.2.0 + Kafka整合

先从spark checkpointing说起如果启用Spark 检查点,则偏移量将存储在检查点中。这很容易实现,但也有缺点。您的输出操作必须是幂等的,因为您将获得重复输出; 交易不是一种选择。此外,如果应用程序代码已更改,则无法从检查点恢复。对于计划的升级,您可以通过在旧代码的同时运行新代码来缓解这种情况(因为无论如何输出都必须是幂等的,它们不应该发生冲突)。但是对于需要更改代码的计划外故障...

2018-12-28 11:02:18 1136

原创 spark hive2hbase

package com.sheinimport org.apache.hadoop.hbase.TableNameimport org.apache.hadoop.hbase.client.Putimport org.apache.hadoop.hbase.util.Bytesimport org.apache.spark.sql.SparkSessionobject Hive2H...

2018-12-20 20:43:42 322 2

原创 SPARK 重命名DataFrame的列名

val df = Seq((2L, "a", "foo", 3.0)).toDFdf.printSchema// root// |-- _1: long (nullable = false)// |-- _2: string (nullable = true)// |-- _3: string (nullable = true)// |-- _4: double (nulla...

2018-12-03 14:40:32 25583

原创 如何定义DataFrame的分区?

SPARK-22614公开了范围分区Spark&gt; = 2.3.0val partitionedByRange = df.repartitionByRange(42, $"k")partitionedByRange.explain// == Parsed Logical Plan ==// 'RepartitionByExpression ['k ASC NULLS FIRS...

2018-11-17 16:50:22 2509

原创 HBase技术简介

一、HBase简介HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google BigTable的开源实现,类似Google BigTable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行Map...

2018-11-08 10:00:09 368

原创 hbase热点

Hbase热点问题Hbase 热点问题? 当我们没有提前创建分区的时候,只有一个region,默认rowkey是递增的往大的region写数据,无法发挥集群写的优点,那之前的region有的未达到饱和状态,就浪费了。数据分布不均。例如:Keys:[2-4]一直往rs1写数据,没有向其他的rs写,就会出现热点问题 就出现了热点的问题什么是热点 产生原因...

2018-11-05 14:34:52 204

原创 常用linux系统监控命令

一、内存监控监控内存的使用状态是非常重要的,通过监控有助于了解内存的使用状态,比如内存占用是否正常,内存是否紧缺等等,监控内存最常使用的命令有free、vmstat、top等1.1 free 12345 $ free total used free shared buffers ...

2018-10-30 15:31:17 282

原创 连接HBase的正确姿势

连接HBase的正确姿势在云HBase值班的时候,经常会遇见有用户咨询诸如“HBase是否支持连接池?”这样的问题,也有用户因为应用中创建的Connection对象过多,触发Zookeeper的连接数限制,导致客户端连不上的。究其原因,都是因为对HBase客户端的原理不了解造成的。本文介绍HBase客户端的Connection对象与Socket连接的关系并且给出Connection的正确用法。...

2018-10-23 14:41:59 6061

原创 Spark 源码简单跟踪

本文介绍下Spark 到底是如何运行sc.TextFile(...).map(....).count() 这种代码的,从driver端到executor端。另外还有pid,iter都是哪来的呢? 如果你照着源码点进去你会很困惑。为莫名其妙怎么就有了这些iterator呢?Transform 和Action的来源一般刚接触Spark 的同学,都会被告知这两个概念。Transform就是R...

2018-10-19 14:04:58 181

原创 Spark性能优化:shuffle调优

shuffle调优调优概述  大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行调优。但是也必须提醒大家的是,影响一个Spark作业性能的因素,主要还是代码开发、资源参数以及数据倾斜,shuffle调优只能在整个Spark的性能调优中占到一小部分而已。...

2018-10-18 16:57:58 119

原创 Spark性能优化:数据倾斜调优

数据倾斜调优调优概述  有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能。数据倾斜发生时的现象  1、绝大多数task执行得都非常快,但个别task执行极慢。比如,总共有1000个task,997个task都在1分钟之内执行完了,但是剩余...

2018-10-18 16:56:57 122

原创 Spark性能优化:开发调优篇

在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。  然而,通过Spark开发出高性能的大数据计算作业,并不是那么简单的。如果没有对Spark作业进行合理的调优,Spark作业的执行速度可能会很慢,这样就完全体现不出Spark...

2018-10-18 16:53:59 173

原创 Spark性能优化:资源调优篇

在开发完Spark作业之后,就该为作业配置合适的资源了。Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置这些参数,最后就只能胡乱设置,甚至压根儿不设置。资源参数设置的不合理,可能会导致没有充分利用集群资源,作业运行会极其缓慢;或者设置的资源过大,队列没有足够的资源来提供,进而导致各种异常。总之,无论是哪...

2018-10-18 16:42:22 117

原创 SPARK ON YARN

译文:http://blog.cloudera.com/blog/2014/05/apache-spark-resource-management-and-yarn-app-models/为什么要在 YARN 上运行相比于在 Mesos 和 Standalone,在 YARN 运行有以下几个优势:在YARN可以支持同时管理在它上面运行的不同的框架的资源,你可以先把所有的资源运行一个 M...

2018-10-17 17:09:01 173

原创 spark partition、task、core、worker、excutor数量梳理

输入可能以多个文件的形式存储在HDFS上,每个File都包含了很多块,称为Block。当Spark读取这些文件作为输入时,会根据具体数据格式对应的InputFormat进行解析,一般是将若干个Block合并成一个输入分片,称为InputSplit,注意InputSplit不能跨越文件。随后将为这些输入分片生成具体的Task。InputSplit与Task是一一对应的关系。随后这些具体的...

2018-10-16 11:50:55 1148

原创 logstash 数据采集时间差8小时问题及解决

最近采用logstash采集日志按天产生文件使用过程中发现logstash timestamp记录的时间戳为UTC时间。比我们的时区早8个小时。不能确保每天的数据在同一文件。造成发送到es里的数据每天早上8点才创建索引,发送的file的数据每天早上8点自动切割。不符合我们实际的需求。解决此问题。方法如下:方法一、加入filter字段即可解决。filter {...

2018-10-15 10:49:25 12406 3

原创 spark map和mapPartitions区别

主要区别:map是对rdd中的每一个元素进行操作;mapPartitions则是对rdd中的每个分区的迭代器进行操作MapPartitions的优点:如果是普通的map,比如一个partition中有1万条数据。ok,那么你的function要执行和计算1万次。使用MapPartitions操作之后,一个task仅仅会执行一次function,function一次接收所有的p...

2018-09-01 11:51:53 4634

原创 spark map flatMap

使用说明在使用时map会将一个长度为N的RDD转换为另一个长度为N的RDD;而flatMap会将一个长度为N的RDD转换成一个N个元素的集合,然后再把这N个元素合成到一个单个RDD的结果集。比如一个包含三行内容的数据文件“word.md”。a a bc经过以下转换过程val textFile = sc.textFile("word.md")textFile.flatM...

2018-09-01 11:51:07 326

原创 Elasticsearch 高级优化

索引优化(Optimized) Es在运行一段时间后,会出现分片数增多,删除的记录未及时清理,导致占用很多的存储空间,查询性能也下降;但是在优化过程中,其他的请求会被阻止,知道优化完成;如果http请求断开,优化的请求也会继续在后台执行;$ curl -XPOST 'http://localhost:9200/twitter/_optimize'管理索引优化...

2018-08-27 14:50:48 3743

原创 Elasticsearch SearchType详解

SearchType详解es在查询时,可以指定搜索类型为 QUERY_THEN_FETCH,QUERY_AND_FEATCH,DFS_QUERY_THEN_FEATCH和DFS_QUERY_AND_FEATCH(SACN,COUNT都已不建议使用)。那么这4种搜索类型有什么区别?elasticsearch java api中还有个default public static final Se...

2018-08-22 16:32:35 701

原创 Elasticsearch聚合分析(三)

 以一个家电卖场中的手机销售数据为背景,来对各种品牌,各种颜色的手机的销量和销售额,进行各种各样角度的分析,首先建立手机销售的索引,然后添加几条销售记录 PUT /mobile{ "mappings": { "sales": { "properties": { "price": { ...

2018-08-20 14:38:40 414 2

原创 如何跳过Spark中CSV文件的标题?

假设我提供了三个文件路径到Spark上下文来读取,每个文件在第一行中都有一个模式。我们如何从头文件中跳过架构线?val rdd=sc.textFile("file1,file2,file3") 现在,我们如何跳过此rdd的标题行? 从Spark 2.0开始,您可以使用SparkSession将其作为一个内容来完成:val spark = SparkSession.builde...

2018-08-17 17:32:36 3702 2

原创 elasticsearch(二)

处理冲突当我们使用 index API 更新文档 ,可以一次性读取原始文档,做我们的修改,然后重新索引 整个文档 。 最近的索引请求将获胜:无论最后哪一个文档被索引,都将被唯一存储在 Elasticsearch 中。如果其他人同时更改这个文档,他们的更改将丢失。很多时候这是没有问题的。也许我们的主数据存储是一个关系型数据库,我们只是将数据复制到 Elasticsearch 中并使其可被搜索...

2018-08-14 14:25:17 138

原创 elasticsearch(一)

弹性堆栈的核心Elasticsearch是一个分布式RESTful搜索和分析引擎,能够解决越来越多的用例。作为Elastic Stack的核心,它集中存储您的数据,以便您可以发现预期并发现意外情况。速度Elasticsearch很快。真的,真的很快。当您立即得到答案时,您与数据的关系会发生变化。你可以负担得起迭代并覆盖更多的基础。这么快就不容易。我们已经实现了带有限状态传...

2018-08-13 15:37:03 333

原创 elk部署详解( logstash的filter之grok)

 logstash的filter之grokLogstash中的filter可以支持对数据进行解析过滤。grok:支持120多种内置的表达式,有一些简单常用的内容就可以使用内置的表达式进行解析https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns自定义的...

2018-08-10 11:22:06 5730

原创 elk部署详解(filebeat搭建)

Logstash+Elasticsearch+KibanaLogstash:监控,过滤,收集日志 Elasticsearch:存储日志,提供搜索功能 kibana:提供web界面,支持查询,统计,和图表展现。filebeat:轻量级的日志收集工具 很多公司都采用该架构构建分布式日志系统,包括新浪微博,freewheel ...等 效果图 Filebeat用于日志收...

2018-08-07 11:02:08 4092

原创 elk部署详解(logstash搭建)

Logstash是一个管理日志和事件的工具。安装部署 1:首先安装java(建议1.7) 2:下载https://download.elastic.co/logstash/logstash/logstash-2.4.0.tar.gz 3:tar -zxvf logstash-2.4.0.tar.gz 4:bin/logstash -e 'input { stdin { } } o...

2018-08-06 11:04:49 620

原创 hadoop ha原理详解

大致流程图: active会定时的把edits文件同步到journal,借助zk实现分布式协调高可用standby也会实时追加edits文件,简单来说active standby保存两份元数据edits操作文件,同时定时同步JournalNode Hadoop NameNode 高可用 (High Availability) 实现解析在 Hadoop 的整个生态系统...

2018-08-03 11:09:09 2094 2

原创 mapreduce yran执行详情

Yarn应用程序运行流程剖析Yarn(Yet Another Resource Negotiator)是一个Hadoop集群资源管理系统,Hadoop2时被引入,旨在提高MapReduce的性能,但YARN已足够通用,使得它可以支持其它的分布式应用。Yarn本身提供了一系列API用于用户应用程序与集群资源进行交互,这些API复杂且晦涩难懂,用户通常不会直接使用。用户编制应用程序时,通常使用...

2018-08-02 11:35:46 195

原创 free 命令详解

free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。语法free(选项)选项-b:以Byte为单位显示内存使用情况;-k:以KB为单位显示内存使用情况;-m:以MB为单位显示内存使用情况;-o:不显示缓冲区调节列;-s&lt;间隔秒数&gt;:持续观察内存使用状况;-t:显示内存总和列;-V:显示版本信息。实例free...

2018-08-01 17:58:10 1271

原创 sparksql 常用内置函数

聚合函数:approxCountDistinct, avg, count, countDistinct, first, last, max, mean, min, sum, sumDistinct集合函数:array_contains, explode, size, sort_array日期时间转换unix_timestamp, from_unixtime, to_date, ...

2018-08-01 12:44:20 2357

原创 mapreduce combiner的应用

combiner是MR程序中Mapper和Reducer之外的一种组件 combiner组件的父类就是Reducer combiner和reducer的区别在于运行的位置:     Combiner是在每一个maptask所在的节点运行     Reducer是接收全局所有Mapper的输出结果;   4 combiner的意义就是对每一个maptask的输出进行局部汇总,以减小网络...

2018-08-01 10:34:56 265

原创 hadoop 小文件过多优化

大量小文件在mapreduce中的问题  Map tasks通常是每次处理一个block的input(默认使用FileInputFormat)。如果文件非常的小,有大量的这种小文件,那么每一个map task都仅仅处理了非常小的input数据,并且会产生大量的map tasks,hadoop1默认是64M,hadoop2默认是128M,如果过多的小文件,会引起过多的Map tasks  h...

2018-07-28 14:30:53 2201

原创 mapreduce 原理

mapreduce的shuffle机制3.1.1 概述:mapreduce中,map阶段处理的数据如何传递给reduce阶段,是mapreduce框架中最关键的一个流程,这个流程就叫shuffle; shuffle: 洗牌、发牌——(核心机制:数据分区,排序,缓存); 具体来说:就是将maptask输出的处理结果数据,分发给reducetask,并在分发的过程中,对数据按key进行了分...

2018-07-27 15:01:00 279

原创 mapreduce 二次排序 Partitioner/SortComparator/GroupingComparator

翻了以前代码看了下15年时候写的二次排序 哈哈 怀念 实现hadoop自带WritableComparable 序列化排序接口package com.lei.sort;import java.io.DataInput;import java.io.DataOutput;import java.io.IOException;import org.apache.hadoop....

2018-07-26 17:22:48 425

空空如也

空空如也

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

TA关注的人

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