大数据
herokang
会飞的猿
展开
-
kafka入门详解及api使用
windows下zk和kafka环境搭建下载zk下载:https://zookeeper.apache.org/releases.htmlkafka下载:https://kafka.apache.org/downloadszookeeper windows闪退,修改配置文件zoo_sample.cfg改为zoo.cfg或者修改zkEnv.cmd配置文件改为zoo_sample.cfgkafka windows安装闪退,修改文件kafka-server-start.bat修改内存为256M,启动需要原创 2020-07-10 18:53:47 · 2707 阅读 · 0 评论 -
spark并行度设置及submit参数
–spark submit–num-executors该参数主要用于设置该应用总共需要多少executors来执行,Driver在向集群资源管理器申请资源时需要根据此参数决定分配的Executor个数,并尽量满足所需。在不带的情况下只会分配少量Executor。这个值得设置还是要看分配的队列的资源情况,太少了无法充分利用集群资源,太多了则难以分配需要的资源。–executor-memory...原创 2020-04-10 21:12:06 · 6429 阅读 · 0 评论 -
spark与Flink对比
批流理念不同spark准确的说是批处理,Spark streaming是微批处理,spark底层都依赖于RDDflink是流式处理,批处理看做是有限的流处理SQLsparksql支持的更好flink一般,在完善中机器学习图计算等spark有mllib和graphx等模块flink比较薄弱任务spark,driver管理,Executor执行,通过RDD分区数和shuffle划分...原创 2020-04-07 01:16:47 · 2892 阅读 · 0 评论 -
Flink(一)Flink基础及常用参数
目录1、Flink是什么2、Flink的特性、优点2.1、流式模型,高吞吐、低延时2.2、丰富的时间语义,支持 Event Time2.3、良好的乱序数据处理能力2.4、高度灵活的窗口2.5、exactly-once 语义2.6、带反压的连续流模型3、标题1、Flink是什么Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据...原创 2020-04-06 23:50:07 · 1439 阅读 · 0 评论 -
spark(六)序列化及多线程问题
一、序列化我们这里不讨论什么是序列化以及序列化有什么作用、序列化方式等问题。此处我们只讨论spark程序开发中序列化的一些问题我们都知道spark程序实际计算时是在Executor上执行,因此Driver端的对象如果Executor要使用的话需要通过网络传输,因此对象一定要实现序列化接口,否则单机测试可能没问题,但是放到集群上就报序列化错误。无论是直接使用,或通过广播发送,对象都要序列化。...原创 2020-04-05 22:58:02 · 1198 阅读 · 0 评论 -
spark(五)执行流程与stage划分
一、任务流程我们以生产中常用的yarn环境为例提交任务到yarnyarn申请分配资源根据RDD流程构建DAG(有向无环图)DAGsheduler将dag划分及分解stage根据分解的stage生成不同的task将task提交到不同的Executor上执行执行完毕,释放资源二、shuffle大多数spark作业的性能主要就是消耗了shuffle过程,shuffle时数据会重新...原创 2020-04-05 17:55:10 · 1225 阅读 · 0 评论 -
spark(四)广播变量
一、广播变量在App中经常会用到List、MaP等变量。如果不适用广播变量,默认每个task都会拉取一份副本到本地。广播变量的好处,不是每个task一份变量副本,而是变成每个节点的executor才一份副本。这样的话,就可以让变量产生的副本大大减少。 广播变量,初始的时候,就在Drvier上有一份副本。 task在运行的时候,想要使用广播变量中的数据,此时首先会在自己本地的Executor对...原创 2020-04-05 02:10:01 · 1034 阅读 · 0 评论 -
spark(三)缓存与checkpoint
一、应用场景缓存:将rdd所需的数据缓存到Executor的内存中,主要用于空间换时间,如某个spark任务期望执行时间在xx以内,目前达不到,此时在内存充足的情况下可以查看是否有重复利用的rdd数据,可以对该数据进行cachecheckpoint:主要用于任务容错,比如机器学习进行迭代式计算,需要计算10小时才能出结果,如果在第9个小时任务出错,重新提交需要重新跑所有数据。可以在某些节点对...原创 2020-04-05 01:29:10 · 1139 阅读 · 0 评论 -
spark(二)创建RDD时默认分区数
一、概述Spark的分区数对于Spark性能调优很重要,如果分区数少,那么并行执行的task就少,比如分区数为1,即使你分配的Executor很多,而实际执行的Executor只有1个,如果数据量很大的话,那么任务执行的就很慢,因此熟悉各种情况下默认的分区数对于Spark调优就很有必要了,特别是执行完算子返回的结果分区数为1的情况,更需要特别注意。二、默认最小分区数:defaultMinPar...原创 2020-04-04 18:32:53 · 2574 阅读 · 0 评论 -
spark(一)spark中map与mapPartitions的区别
一、map与mapPartitions的区别在 Spark 性能调优中,经常会被建议尽量用 mappartition 操作去替代 map 操作。但是也不一定是每种业务场景都是如此,我们先来说一下两者的区别map 操作:对 RDD 中的每个元素进行操作(可以理解为遍历),比如使用一个function则需要执行该 function n 次,其中 n 为元素个数;执行 1 次 function 只...原创 2020-04-04 17:34:56 · 1698 阅读 · 0 评论 -
Hive基本操作
一、概述Hive是建立在HDFS之上的数据仓库,所以Hive的数据全部存储在HDFS上。Hive的数据分为两部分,一部分是存在HDFS上的具体数据,一部分是描述这些具体数据的元数据信息,一般Hive的元数据存在MySQL上。Hive是类SQL语法的数据查询、计算、分析工具,执行引擎默认的是MapReduce,可以设置为Spark、Tez。Hive分内部表和外部表,外部表在建...原创 2020-02-29 16:37:31 · 281 阅读 · 0 评论 -
Hive之insert into与insert overwrite区别
两者都可以向 hive 表中插入数据,但 insert into 操作是以追加的方式向 hive 表尾部追加数据,而 insert overwrite 操作则是直接重写数据,即先删除 hive 表的数据,再执行写入操作。注意,如果 hive 表是分区表的话,insert overwrite 操作只会重写当前分区的数据,不会重写其他分区数据。insert overwrite table xxx p...原创 2020-02-29 11:58:53 · 1120 阅读 · 0 评论 -
Flink之状态一致性
一、状态一致性分类最多一次(at most once)当故障发生,什么都不干,既不恢复丢失状态,也不重播丢失的数据。至少一次(at least once)所有事件都处理了,有的事件可能被处理多次精确一次(exactly once)所有事件仅仅被处理一次二、端到端的状态一致性(1)内部保证(checkpoint)(2)source端(可重设数据的读取位置)(3)sink端(从...原创 2020-02-01 21:44:25 · 773 阅读 · 0 评论 -
Flink之聚合、WindowFunction
一、WindowFunctionFlink提供了四种类型Window Function,其中有ReduceFunction、AggregateFunction、FlodFunction和ProcessWindowFunction。其中ReduceFunction、AggregateFunction、FlodFunction根据计算原理,属于增量聚合函数,而ProcessWindowFunctio...原创 2020-02-01 21:41:17 · 1362 阅读 · 0 评论 -
Flink之容错机制
一、Checkpoint,一致性检查点flink故障恢复机制的核心就是checkpoint有状态的流应用的一致性检查点,其实就是所有任务的状态,在某个时间点的一份快照,这个时间点是指所有任务都恰好处理完一个相同的输入数据的时候如上图所示:此应用有一个source task,消费一个递增数的流,如1,2,3等等。流中的数据被分区到一个奇数流,一个偶数流。在一个sum operator中,...原创 2020-01-31 00:19:21 · 1618 阅读 · 0 评论 -
elastic search(一)概述
一、分段存储elastic search以下统称es底层使用Lucene,lucene使用基于倒排索引和分段(segment)存储的方式完成数据索引。将一个索引文件分成了许多子文件,每个子文件就叫做段(索引中最小存储单元),段具有不变性,一旦索引数据被写入到硬盘就不可再修改1.1数据操作过程:新增:新增索引数据时,由于段的不变性,所以会新建一个段存储新数据。删除:删除索引数据时,由于段...原创 2019-12-08 14:15:21 · 1692 阅读 · 0 评论 -
HBase(三)java操作HBase
一、客户端正确使用概述在使用过程中经常会遇见有用户咨询诸如“HBase是否支持连接池?”这样的问题,也有用户因为应用中创建的Connection对象过多,触发了zookeeper的连接数限制,导致客户端连不上的。究其原因,都是因为对HBase客户端的原理不了解造成的。本文简单介绍HBase客户端的Connection对象与socket连接的关系,并给出Connection的正确用法。Conne...原创 2019-12-03 22:11:16 · 519 阅读 · 0 评论 -
HBase(二) RowKey设计
一、概述HBase Rowkey是唯一索引(Rowkey用来表示唯一一行记录),Rowkey设计的优劣直接影响读写性能。HBase中的行是按照Rowkey的ASCII字典顺序进行全局排序的。由于HBase是通过Rowkey查询的,一般Rowkey上都会存一些比较关键的检索信息,建议提前考虑数据具体需要如何查询,根据查询方式进行数据存储格式的设计,要避免做全表扫描,因为效率特别低,且会损耗集群...原创 2019-12-03 18:04:06 · 1178 阅读 · 0 评论 -
HBase(一)
Hbase存储结构HBase 是一个稀疏、多维度、有序的映射表。这张表中每个单元是通过由行键、列族、列限定符和时间戳组成的索引来标识的。每个单元的值是一个未经解释的字符串,没有数据类型。当用户在表中存储数据时,每一行都有一个唯一的行键和任意多的列。表的每一行由一个或多个列族组成,一个列族中可以包含任意多个列。在同一个表模式下,每行所包含的列族是相同的,也就是说,列族的个数与名称都是相同的,但...原创 2019-12-02 22:57:10 · 688 阅读 · 0 评论