自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Widsom的博客

人的原动力来自对未来的美好憧憬

  • 博客(349)
  • 资源 (10)
  • 收藏
  • 关注

原创 Hive表命名规范

Hive表命名规范一、命名规则业务产品_层名_计算周期&&统计周期_表类型_存储类型_表的业务含义举个例子:1.浏览器业务产品的 每天计算的 hive 搜索事件的 事实表 明细数据 browser_dwd_dd_face_hive_search2.浏览器业务产品 每天全量 城市 hive维表 browser_dim_da_dic_hive_city3.浏览器业务产品 每天 搜索网站 次数统计 排名 browser_al_dd_rpt_hive_search_web_ran

2020-09-30 17:47:38 4743

原创 Hive之MapReduce性能优化

Hive优化一、Hive任务创建文件数优化1.1 Map端文件合并减少Map任务数量一般来说,HDFS的默认文件块大小是128M,如果在Hive执行任务时,发现Map端的任务过多,且执行时间多数不超过一分钟,建议通过参数,划分(split)文件的大小,合并小文件。如:set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;set mapreduce.input.fileinputformat.split.m

2020-09-20 22:05:02 3423

原创 Hive添加列、修改列(调整位置)、删除列操作等

1.添加1列或多列# 添加1列alter table table_name add columns( user_id bigint comment '用户ID');# 添加多列alter table table_name add columns( name string comment '用户名称', city string comment '城市', sex string comment '用户性别', age s

2020-09-11 18:35:51 22757 2

原创 Hive Archive合并文件归档,减少小文件数量(推荐)

我们在使用Hive存储时,有时会遇到Hive表的文件大小不大,但是文件数量众多;这是可能会遇到HDFS的储存空间没到阈值,但文件数量超过阈值。如果小文件太多,容易影响整个集群的性能。那么对于小文件多的问题,有以下处理方法:1.输出时减少reduce的数量;但可能会导致job运行变慢2.使用Spark重新读取小文件,修改分区并写入,这里不建议使用repartition(),推荐使用coalesce()repartition()会增加文件的大小,因为要历经shuffle阶段,但coalesce()不会经

2020-09-10 18:46:24 1349 1

原创 ElasticSearch Java High RESTful Api Basic认证的问题

ElasticSearch Java High RESTful Api Basic认证的问题因公司Elasticsearch集群升级到7.1.1,需要使用用户名密码登入。并且设置的user、role等权限。那么之前直接访问的方式是不行的。需要使用认证的方式进行访问。Elasticsearch的api非常的丰富。如:curl、python、java(多种)。下面展示curl、Python、Jav...

2019-10-31 12:42:00 6500 2

原创 Flink Table 将Stream追加写入Elasticsearch

Flink Table 将Stream追加写入ElasticsearchFlink Table提供了多种方式,写入ElasticSearch。一种是Connector的方式连接ElasticSearch,另一种是通过Sink的方式。下面分别介绍2种方式。一、Connector的方式写入Elasticsearchpublic class SqlSinkElasticSearchStream {...

2019-10-31 12:41:52 2322

原创 Flink Table 将Stream直接写入MySQL数据库

Flink Table 将Stream直接写入MySQL数据库Flink Table提供了一个JDBCAppendTableSink,可以直接往可靠地数据库中Sink数据,下面以MySQL为例:添加Maven的pom.xml依赖<dependency> <groupId>org.apache.flink</groupId> <arti...

2019-10-31 12:41:43 5273 2

原创 Flink Table 将kafka流数据追加到Csv格式文件

Flink Table 将kafka流数据追加到Csv格式文件Flink Table可以很好的将Stream数据直接写入到文件系统。示例如下:代码示例public class SqlSinkFileSystemStream { public static void main(String[] args) throws Exception { StreamExecuti...

2019-10-31 12:41:33 3378

原创 Flink Table 基于Processing Time、Event Time的多种Window实现

Flink Table 基于Processing Time、Event Time的多种Window实现Flink 提供了Table Api,用来统一批流入口,使用Flink Table Api,直接处理流,会特别的简洁,易用。下面来看下使用Flink Table Api实现 Tumble Window(翻滚窗口)、Slide Window(滑动窗口)、Session Window(会话)。一...

2019-10-31 12:41:22 3485 2

原创 Flink Stream日志写入Kafka集群

Flink Stream日志写入Kafka集群Flink Stream的输出日志,直接输出的Kafka集群,进行持久化。一、log4j.properties文件配置log4j.rootLogger=INFO,file,kafkalog4j.logger.org.apache.kafka=INFO#############################################...

2019-10-31 12:41:14 1313

原创 Flink DataStream之Kafka数据写入HDFS,并分区到Hive

Flink DataStream之Kafka数据写入HDFS,并分区到Hive因业务要求,我们需要从Kafka中读取数据,变换后最终Sink到业务的消息队列中,为保证数据的可靠性,我们同时对Sink的结果数据,进行保存。最终选择将流数据Sink到HDFS上,在Flink中,同时也提供了HDFS Connector。下面就介绍如何将流式数据写入HDFS,同时将数据load到Hive表中。一、po...

2019-10-31 12:41:05 8539 2

原创 Flink DataStream Async I/O(异步IO)

Flink DataStream Async I/O(异步IO)当我们在Operator算子中,需要与外部系统交互时(例如:查询数据库),如果我们使用同步的方式,那么容易造成该Operator计算延迟,吞吐量低。所以Flink 提供了Async I/O机制,可以通过异步操作,处理查询数据库等类似耗时的操作。与数据库的异步交互意味着单个并行函数实例可以同时处理许多请求并同时接收响应。这样,等待时...

2019-10-31 12:40:51 1964

原创 Flink DataStream KeyedProcessFunction实现类似Session Window功能

Flink DataStream KeyedProcessFunction实现类似Session Window功能一、KeyedProcessFunction功能介绍KeyProcessFunction是一个低级的Stream处理操作(Operator),可以更加灵活的处理Stream的业务逻辑,它可以访问所有流应用程序的基本构建块:事件(Event)状态(State,仅支持KeyedS...

2019-10-31 12:40:41 2594

原创 Flink Checkpoint(检查点)

Flink Checkpoint(检查点)Flink中的每个函数和运算符都可以是有状态的(如果是Keyed Stream,使用ValueState、ListState等状态,如果是Operator State,实现CheckpointedFunction或CheckpointedList接口。使用ListState、MapState获取状态)。有状态的函数在各个元素/事件处理中存储数据。使状态成...

2019-10-31 12:40:29 2661

原创 Flink DataStream Window

Flink DataStream WindowWindows是处理无限流的核心。Windows将流拆分为有限大小的"桶",这样可以在Window中进行聚合操作。窗口的生命周期:一般当第一个元素到达时,创建窗口,当(处理时间或事件时间)时间大于等于其结束的时间,窗口进行触发计算,计算结束后,窗口将完全删除。1. Window的分类Window可以分为2类,分别为:Keyed Windows(...

2019-10-31 12:40:20 1186 1

原创 Flink DataStream之min()与minBy(),max()与max之间的区别

Flink DataStream之min()与minBy(),max()与max之间的区别min():获取的最小值,指定的field是最小,但不是最小的那条记录,后面的示例会清晰的显示。minBy():获取的最小值,同时也是最小值的那条记录。max()与maxBy()的区别也是一样。那么下面来看示例:public class MinOrMinByOperator { publi...

2019-10-31 12:39:53 5564 8

原创 Flink的多种提交方式

Flink的多种提交/运行方式Flink具有多种提交方式,比如:常用的local模式,stantalone模式,yarn模式,k8s等。这里主要对比local,stantalone,yarn三种提交方式。一、本地(local)模式,仅开发使用1.1 纯粹的local模式运行这就是直接运行项目中的代码的方式提交:public class TestLocal { public st...

2019-10-31 12:39:43 22511

原创 Flink的Session Window的简单使用

Flink的Session Window的简单使用一、Session Window的概念参见官方文档https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/stream/operators/windows.html#session-windows二、业务需求本文的需求是:通过flink处理用户的行为日志,如果...

2019-10-31 12:39:20 3280 2

原创 Flink DataStream 广播状态模式

Flink DataStream 广播状态模式我们使用State描述了Operator State,在恢复时,可以修改并行度重新分配Operator State(偶分裂再分配方式),或者使用Union的方式(联合重新分发)恢复并行任务。Operator State还有一种广播状态模式(Broadcast State)。引入广播状态是为了支持这样的用例,其中来自一个流的一些数据需要被广播到所有...

2019-10-31 11:00:27 2149 1

原创 Flink DataStream Manager(托管) Operator State的简单使用

Flink DataStream Manager(托管) Operator State的简单使用要使用Manager(托管) Operator State,需要实现CheckpointedFunction接口或者ListCheckpointed<T extends Serializable>接口。一、CheckpointFunctionCheckpointedFunction接口...

2019-07-02 15:40:02 1767 1

原创 Flink DataStream Manager(托管) Keyed State的简单使用

Flink DataStream Manager(托管) Keyed State的简单使用Manager(托管)Keyed State接口提供对不同类型状态的访问,这些状态都限定为当前输入元素的键。这意味着这种类型的状态只能用于一个 KeyedStream,可以通过创建stream.keyBy(…)返回KeyedStream对象。这个可用的State有:ValueState<T&g...

2019-07-02 15:38:48 1026

原创 Flink DataStream State(状态)

Flink DataStream State(状态)一、State(状态)的种类State有2类:Keyed State和Operator State。Keyed State:与keys相关的状态,仅仅用于Keyed Stream的Operator(算子)的Function。Operator State: Non-Keyed State,每个operator state都绑定到一个...

2019-07-01 17:23:08 3071

原创 Flink DataStream State Backend(状态后端)

Flink DataStream State Backend(状态后端)State Backend(状态后端)用Data Stream Api 编写的程序经常是需要保存状态的,如下面情况:Windows中聚集的元素直到被触发计算。在触发之前,需要保存Windows中的元素的状态。转换(Transformation)函数可以使用Key/Value状态接口存储状态值转换(Transform...

2019-07-01 17:21:32 2973

原创 Flink DataStream Evictors(驱逐器)

Flink DataStream Evictors(驱逐器)Flink 窗口模式允许特别的算子Evictor(驱逐器),应用在WindowAssigner和trigger之间。通过evictor()方法使用。Evictor驱逐器能够在element进入Window窗口聚合之前进行移除数据或者在进入Window窗口聚合后,Trigger触发计算操作之前移除数据。Evictor的2个方法:...

2019-06-28 16:05:15 1492

原创 Flink DataStream Trigger触发器

Flink DataStream Trigger触发器触发器是指当Window(window 分配器产生)窗口准备通过WindowFunction计算时触发。每一个Window分配器都会有一个默认的Trigger(触发器)。如果默认的Trigger(触发器)不满足你的需要,你可以自定义触发器。触发器的方法触发器的有4个抽象方法,2个具有实现方法。抽象方法:onElement():每个...

2019-06-28 16:04:30 2945

原创 Flink DataStream WaterMark

Flink DataStream WaterMark为了处理事件时间,Flink需要知道事件的时间戳,这意味着流中的每个元素都需要分配其事件时间戳。这通常通过从元素中的某个字段访问/提取时间戳来完成。时间戳分配与生成水印密切相关,水印告诉系统事件时间的进展。1.生成Watermark的两种方式1.1 在数据源(source)中生成WaterMarkpublic class WaterMa...

2019-06-27 17:29:32 727 1

原创 Flink DataStream iterate算子的简单使用

Flink DataStream iterate算子的简单使用由于DataStream程序可能永远不会完成,因此没有最大迭代次数。相反你需要指定流的哪个部分反馈到迭代,哪个部分使用split转换或转发到下游filter。下面看示例:public class IterateOperator { public static void main(String[] args) throws...

2019-06-27 14:41:42 2723 2

原创 Flink DataStream unoin与connect的区别

Flink DataStream unoin与connect的区别Flink DataStream中union和connect都有一个共同的作用,就是将2个流或多个流合成一个流。但是两者的区别是:union连接的2个流的类型必须一致,connect连接的流可以不一致,但是可以统一处理。具体看下面示例:public class ConnectOperator { public sta...

2019-06-27 14:40:36 3497

原创 Flink DataStream Join && IntervalJoin && coGroup的区别

Flink Stream join && intervalJoin && coGroup的区别Flink DataStream Api提供了3中Stream join的算子,分别是join,intervalJoin和coGroup算子。join:是一个流join另一个流,需要设置窗口,2个流join需要的key字段。使用的是innerJoin。对Processi...

2019-06-27 14:39:43 2751

原创 Flink重启策略

Flink重启策略Flink支持不同的重启策略,可以控制在发生故障时如何重启新启动作业。默认重启策略是通过Flink的配置文件设置的flink-conf.yaml。配置参数restart-strategy定义采用的策略。如果未启用检查点,则使用“无重启”策略。如果激活了检查点并且尚未配置重启策略,则固定延迟策略将用于 Integer.MAX_VALUE重启尝试。重启策略分为:固定延迟重启策...

2019-06-26 18:19:32 5810

原创 Flink RMQSink写入RabbitMQ出现Connection数一直持续增加的问题

Flink RMQSink写入RabbitMQ出现Connection数一直持续增加的问题因业务需求,Flink程序要往RabbitMQ中写数据。一开始使用自己开发环境下的RabbitM,那是非常的顺溜。到测试环境,就出问题了。在RabbitMQ的web ui页面,看到连接数猛的增加,而且一直不停。导致测试环境的RabbitMQ挂了。当时蒙圈啊,出啥问题了,这么严重。经过一番排查对比。发现在R...

2019-06-13 17:59:30 2896 1

原创 解决Flink输出日志中时间比当前时间晚8个小时的问题

解决Flink输出日志中时间比当前时间晚8个小时的问题在flink standalone集群上,发现log输出时间比当前时间晚8个小时,我的集群系统时间是CTM+8时区的。一开始发现时间不对,还不太上心,后面发现业务在本地跑起来是正常的,提交到集群跑不输出结果,这下就尴尬了。经过一系列的排查。发现ProcessTime时间不对。后面发现flink时间默认为UTC时间(真是个坑啊,心中默念,心平气...

2019-06-13 17:57:35 4349 5

原创 Flink SplitStream的简单使用

Flink SplitStream的简单使用在Flink DataStream api中有一个split()算子,它的功能是将一个Stream,通过split()设置多个标记,划分成多个流。再通过select()获取对应标记的流。像种算子,可以根据不同的tag,进行不同的逻辑处理,可谓是非常的方便。具体看代码:public class SplitOperator { public ...

2019-06-05 18:10:03 4197

原创 Flink CEP简单示例----对用户访问页面顺序检测

Flink CEP简单示例----对用户访问页面顺序检测CEP是flink早期推出的一个的库,是基于一些规则模型,检测异常行为。比如检测反爬虫,或检测优惠活动褥羊毛行为等。下面简单介绍一下项目背景,使用CEP做模式检测。需求:因公司针对会员,发放优惠券活动,因防止羊毛党褥羊毛,通过Flink CEP进行异常检测。检测规则,如果同一个设备号在5分钟内顺序访问login页面–>my页面–...

2019-05-24 18:05:10 2188

原创 使用gensim计算文本相似度

使用gensim计算文本相似度计算文本相似度步骤逻辑1、将文本数据,通过jieba分词进行处理,形成一个二维数组2、将二维数组生成词典3、将二维数组通过doc2bow稀疏向量,形成语料库4、使用TF模型算法,将语料库计算出Tfidf值5、获取词典token2id的特征数6、计算稀疏矩阵相似度,建立一个索引7、测试数据jieba分词处理8、通过doc2bow计算测试数据的稀疏向量...

2019-04-25 15:00:56 10860 3

原创 解决Spark 读取 Elasticsearch的array类型报错的问题

解决Spark 读取 Elasticsearch的array类型报错的问题在我们读取Elasticsearch存储的半结构化的数据是,会遇到需要获取array类型的数据。然而会报错,错误截图如下:es.read.field.as.array.include通过es.read.field.as.array.include指定array类型,防止报错。代码如下:from pyspark....

2019-03-18 17:48:57 1789

原创 MongoDB数据写入ES,SparkSQL读取ES的数据简单示例(Python)

MongoDB数据写入ES,SparkSQL读取ES的数据简单示例(Python)1.MongoDb数据写入ES代码示例#!/usr/bin/env python# -*- coding: utf-8 -*-import datetimeimport pymongofrom elasticsearch import Elasticsearchif __name__ == '__...

2019-02-14 15:32:10 1658 1

原创 Elasticsearch API简单操作

Elasticsearch API简单操作在操作Elasticsearch之前,需要先安装Elasticsearch集群,安装博客如:Elasticsearch集群安装下面介绍简单介绍Elasticsearch的3中操作方式,分别curl,java,python操作。1.curl操作基本上curl操作,通过GET,POST,DELETE操作就OK具体的模式如下:curl -X&lt;V...

2019-02-13 17:14:55 2324 1

原创 Flink读取Kafka数据Sink到MySQL和HBase数据库

Flink读取Kafka数据Sink到MySQL和HBase数据库Flink将流数据Sink到数据库,一般需要自己自定义Sink的实现。下面示例,演示Sink到MySQL和HBase示例。import java.util.Propertiesimport org.apache.flink.api.common.serialization.SimpleStringSchemaimport o...

2019-01-24 16:53:15 9767 4

原创 Flink 简单入门示例

Flink 简单入门示例1.Flink读取Socket流,实现Word Count示例import org.apache.flink.streaming.api.scala.{StreamExecutionEnvironment, _}import org.apache.flink.streaming.api.windowing.time.Timeobject SocketWindowW...

2019-01-24 14:49:19 4482

内存检测分析工具

内存分析工具

2017-06-19

Android逆向助手

android逆向助手,反编译工具

2017-06-19

GifCam录屏工具

录屏工具,保存的格式是GIF

2017-06-19

fiddler4抓包工具

Fiddler 4抓包工具

2017-06-19

commons-beanutils-1.8.3.jar

commons-beanutils-1.8.3.jar

2017-02-25

阿里巴巴Java开发手册 高清.pdf版

阿里巴巴Java开发手册,包含编程规约,异常日志,MySQL规约,工程规约,安全规约

2017-02-10

Bugly实现热更新Demo

使用bugly实现热更新

2017-02-07

Gradle Rescipes for Android

Gradle 官网资料

2016-11-15

Gradle for Android

About This Book, Create custom Gradle tasks and plugins for your Android projects, Configure different build variants, each with their own dependencies and properties, Manage multi-module projects, and integrate modules interdependently, Who This Book Is For, If you are an experienced Android developer wanting to enhance your skills with the Gradle Android build system, then this book is for you. As a prerequisite, you will need some knowledge of the concepts of Android application development., What You Will Learn, Build new Android apps and libraries using Android Studio and Gradle, Migrate projects from Eclipse to Android Studio and Gradle, Manage the local and remote dependencies of your projects, Create multiple build variants, Include multiple modules in a single project, Integrate tests into the build process, Create custom tasks and plugins for Android projects, In Detail, Gradle is an open source build automation system that introduces a Groovy-based domain-specific language (DSL) to configure projects. Using Gradle makes it easy for Android developers to manage dependencies and set up the entire build process., This book begins by taking you through the basics of Gradle and how it works with Android Studio. Furthermore, you will learn how to add local and remote dependencies to your project. You will work with build variants, such as debug and release, paid and free, and even combinations of these things. The book will also help you set up unit and integration testing with different libraries and will show how Gradle and Android Studio can make running tests easier. Finally, you will be shown a number of tips and tricks on the advanced customization of your application's build process. By the end of this book, you will be able to customize the entire build process, and create your own tasks and plugins for your Gradle builds.

2016-11-15

空空如也

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

TA关注的人

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