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
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
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
Hive Archive合并文件归档,减少小文件数量(推荐) 我们在使用Hive存储时,有时会遇到Hive表的文件大小不大,但是文件数量众多;这是可能会遇到HDFS的储存空间没到阈值,但文件数量超过阈值。如果小文件太多,容易影响整个集群的性能。那么对于小文件多的问题,有以下处理方法:1.输出时减少reduce的数量;但可能会导致job运行变慢2.使用Spark重新读取小文件,修改分区并写入,这里不建议使用repartition(),推荐使用coalesce()repartition()会增加文件的大小,因为要历经shuffle阶段,但coalesce()不会经
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...
Flink Table 将Stream追加写入Elasticsearch Flink Table 将Stream追加写入ElasticsearchFlink Table提供了多种方式,写入ElasticSearch。一种是Connector的方式连接ElasticSearch,另一种是通过Sink的方式。下面分别介绍2种方式。一、Connector的方式写入Elasticsearchpublic class SqlSinkElasticSearchStream {...
Flink Table 将Stream直接写入MySQL数据库 Flink Table 将Stream直接写入MySQL数据库Flink Table提供了一个JDBCAppendTableSink,可以直接往可靠地数据库中Sink数据,下面以MySQL为例:添加Maven的pom.xml依赖<dependency> <groupId>org.apache.flink</groupId> <arti...
Flink Table 将kafka流数据追加到Csv格式文件 Flink Table 将kafka流数据追加到Csv格式文件Flink Table可以很好的将Stream数据直接写入到文件系统。示例如下:代码示例public class SqlSinkFileSystemStream { public static void main(String[] args) throws Exception { StreamExecuti...
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(会话)。一...
Flink Stream日志写入Kafka集群 Flink Stream日志写入Kafka集群Flink Stream的输出日志,直接输出的Kafka集群,进行持久化。一、log4j.properties文件配置log4j.rootLogger=INFO,file,kafkalog4j.logger.org.apache.kafka=INFO#############################################...
Flink DataStream之Kafka数据写入HDFS,并分区到Hive Flink DataStream之Kafka数据写入HDFS,并分区到Hive因业务要求,我们需要从Kafka中读取数据,变换后最终Sink到业务的消息队列中,为保证数据的可靠性,我们同时对Sink的结果数据,进行保存。最终选择将流数据Sink到HDFS上,在Flink中,同时也提供了HDFS Connector。下面就介绍如何将流式数据写入HDFS,同时将数据load到Hive表中。一、po...
Flink DataStream Async I/O(异步IO) Flink DataStream Async I/O(异步IO)当我们在Operator算子中,需要与外部系统交互时(例如:查询数据库),如果我们使用同步的方式,那么容易造成该Operator计算延迟,吞吐量低。所以Flink 提供了Async I/O机制,可以通过异步操作,处理查询数据库等类似耗时的操作。与数据库的异步交互意味着单个并行函数实例可以同时处理许多请求并同时接收响应。这样,等待时...
Flink DataStream KeyedProcessFunction实现类似Session Window功能 Flink DataStream KeyedProcessFunction实现类似Session Window功能一、KeyedProcessFunction功能介绍KeyProcessFunction是一个低级的Stream处理操作(Operator),可以更加灵活的处理Stream的业务逻辑,它可以访问所有流应用程序的基本构建块:事件(Event)状态(State,仅支持KeyedS...
Flink Checkpoint(检查点) Flink Checkpoint(检查点)Flink中的每个函数和运算符都可以是有状态的(如果是Keyed Stream,使用ValueState、ListState等状态,如果是Operator State,实现CheckpointedFunction或CheckpointedList接口。使用ListState、MapState获取状态)。有状态的函数在各个元素/事件处理中存储数据。使状态成...
Flink DataStream 广播状态模式 Flink DataStream 广播状态模式我们使用State描述了Operator State,在恢复时,可以修改并行度重新分配Operator State(偶分裂再分配方式),或者使用Union的方式(联合重新分发)恢复并行任务。Operator State还有一种广播状态模式(Broadcast State)。引入广播状态是为了支持这样的用例,其中来自一个流的一些数据需要被广播到所有...
Flink DataStream Manager(托管) Operator State的简单使用 Flink DataStream Manager(托管) Operator State的简单使用要使用Manager(托管) Operator State,需要实现CheckpointedFunction接口或者ListCheckpointed<T extends Serializable>接口。一、CheckpointFunctionCheckpointedFunction接口...
Flink DataStream Manager(托管) Keyed State的简单使用 Flink DataStream Manager(托管) Keyed State的简单使用Manager(托管)Keyed State接口提供对不同类型状态的访问,这些状态都限定为当前输入元素的键。这意味着这种类型的状态只能用于一个 KeyedStream,可以通过创建stream.keyBy(…)返回KeyedStream对象。这个可用的State有:ValueState<T&g...
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都绑定到一个...
Flink DataStream State Backend(状态后端) Flink DataStream State Backend(状态后端)State Backend(状态后端)用Data Stream Api 编写的程序经常是需要保存状态的,如下面情况:Windows中聚集的元素直到被触发计算。在触发之前,需要保存Windows中的元素的状态。转换(Transformation)函数可以使用Key/Value状态接口存储状态值转换(Transform...
Flink DataStream Evictors(驱逐器) Flink DataStream Evictors(驱逐器)Flink 窗口模式允许特别的算子Evictor(驱逐器),应用在WindowAssigner和trigger之间。通过evictor()方法使用。Evictor驱逐器能够在element进入Window窗口聚合之前进行移除数据或者在进入Window窗口聚合后,Trigger触发计算操作之前移除数据。Evictor的2个方法:...