![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据
文章平均质量分 67
沈健_算法小生
算法小生
展开
-
4.Hive系列之企业级调优
此时我们应该仔细分析这些异常的 key,很多情况下,这些 key 对应的数据是异常数据,我们需要在 SQL 语句中进行过滤。有时虽然某个 key 为空对应的数据很多,但是相应的数据不是异常数据,必须要包含在join 的结果中,此时我们可以表 a 中 key 为空的字段赋一个随机的值,使得数据随机均匀地分不到不同的 reducer 上。不过,某个特定的 job 可能包含众多的阶段,而这些阶段可能并非完全互相依赖的,也就是说有些阶段是可以并行执行的,这样可能使得整个 job 的执行时间缩短。原创 2023-07-22 22:16:30 · 179 阅读 · 0 评论 -
3.Hive系列之数据定义与操作及函数及压缩与存储
语句和Mysql、PgSQL都类似,简单过一遍。原创 2023-07-15 18:19:36 · 370 阅读 · 0 评论 -
2.Hive系列之docker-compose部署升级总结
刚刚我们修改了Hive为bde2020/hive:3.1.2-postgresql-metastore,仓库中并没有,我们就要考虑修改Dockerfile自行构建镜像了。对于升级而言,我们最先考虑的是docker hub中有的较新的版本,然后我们需要简单了解下hadoop2与hadoop3的区别,首先明确的是端口号有所改变,如下图所示。查看日志,可以发现,url非法了哎,这是因为docker在默认创建网络的时候,会给添加_default后缀导致url非法。再次尝试构建镜像了,并启动,发现如下错误。原创 2023-06-10 09:11:01 · 1703 阅读 · 0 评论 -
27.hadoop系列之50G数据清洗入库秒查询实践
这插入速度还行吧,插入后,存在两条记录,对于ReplaceMergeTree来说,无妨,看过之前文章的你应该很熟悉为啥了吧。目前本地有50G的企业年报csv数据, 需要清洗出通信地址,并需要与原有的亿条数据合并以供业务查询最新的企业通信地址。新建字段mail_address1,剔除省市区前缀信息,列式存储,全量更新很快,请不要单条那种更新。我们50G的数据无须上传至集群处理,上传目前带宽2M/S, 巨慢,我直接在本地hadoop处理。我们先看下数据格式,以@_@分割,最后一列是杂乱的数据。原创 2023-06-02 09:24:26 · 316 阅读 · 0 评论 -
1.Hive系列之简介
Hive是一个基于Hadoop的数据仓库工具,它提供了类似于SQL的查询语言HiveQL,以及用于将查询转换为MapReduce任务的引擎。Hive的主要目的是使数据分析师和开发人员能够轻松地查询和分析存储在Hadoop集群中的数据,而不需要编写复杂的MapReduce代码。Hive的核心是元数据(Metadata),它将表的结构和数据存储在一个关系型数据库中,例如MySQL或Derby。HiveQL语言类似于SQL,允许用户执行查询、过滤、聚合等操作。原创 2023-06-01 13:05:41 · 1624 阅读 · 0 评论 -
15.Kafka系列之事务原理及实践
在这种情况下,消费者进程有可能在保存其位置之后但在保存其消息处理的输出之前崩溃。在这种情况下,接管处理的进程将从保存的位置开始,即使该位置之前的一些消息还没有被处理。原创 2023-05-28 11:43:26 · 994 阅读 · 0 评论 -
14.Kafka系列之K8S部署集群
Apache Kafka 不依赖 Apache Zookeeper的版本,被社区称之为 Kafka Raft 元数据模式,简称KRaft模式。KRaft运行模式的Kafka集群,不会将元数据存储在 Apache ZooKeeper中。即部署新集群的时候,无需部署ZooKeeper集群,因为Kafka将元数据存储在 Controller 节点的 KRaft Quorum中。原创 2023-05-21 14:51:44 · 2120 阅读 · 0 评论 -
13.Kafka系列之Stream核心原理(二)
Kafka Streams 通过构建在 Kafka 生产者和消费者库上并利用 Kafka 的本机功能来提供数据并行性、分布式协调、容错和操作简单性,从而简化了应用程序开发。在本节中,我们将描述 Kafka Streams 在幕后是如何工作的下图显示了使用 Kafka Streams 库的应用程序的剖析。让我们来看看一些细节。原创 2023-05-20 11:53:08 · 832 阅读 · 0 评论 -
12.Kafka系列之Stream核心原理(一)
Kafka Streams 是一个客户端库,用于处理和分析存储在 Kafka 中的数据。它建立在重要的流处理概念之上,例如正确区分事件时间和处理时间、窗口支持以及简单而高效的管理和应用程序状态的实时查询Kafka Streams入门门槛低:您可以在单机上快速编写和运行小规模的概念验证;并且您只需要在多台机器上运行应用程序的额外实例即可扩展到大批量生产工作负载。原创 2023-05-19 15:07:59 · 892 阅读 · 0 评论 -
11.Kafka系列之Stream实践
1.运行后,出现NullPointer in ProcessorParameters.toStringKafka3.3.1的bug,请升级Kafka版本,我升级到3.4.0,并且环境变量改为如下即可启动,kafka-server在hosts中配置对应IPspec:ports:name: webenv:2.序列化失败我们配置的默认序列化为而在KTable中我们定义对应的序列化即可// 计算每个客户的交易总额3.合并结果,出现重复记录问题我们在需要JOIN的两个KTable最后加入如下代码即可。原创 2023-05-14 19:42:00 · 742 阅读 · 0 评论 -
10.Kafka系列之Connect实践
1.KILL掉Kafka后出现如下问题问题原因: 新增加的副本的offset副本的offset比leader的新 所以在elect的时候 出现问题解决方法: 在kafka的home path 的bin目录下执行自带平衡topic脚本可能由于镜像原因,未找到该脚本,直接粗暴解决【仅仅学习时用】,重新启动就好了欢迎关注公众号算法小生与我沟通交流。原创 2023-05-07 18:23:55 · 883 阅读 · 0 评论 -
9.Kafka系列之设计思想(七)-配额
即使使用不尊重代理延迟响应的旧客户端实现,代理通过静音其套接字通道施加的背压仍然可以处理行为不端的客户端的节流。由于为 I/O 和网络线程分配的线程数通常基于代理主机上可用的内核数,因此请求率配额代表每组共享配额的客户端可能使用的 CPU 的总百分比。在支持未经身份验证的客户端的集群中,用户主体是代理使用可配置的PrincipalBuilder. Client-id 是客户端的逻辑分组,具有由客户端应用程序选择的有意义的名称。默认情况下,每个唯一的客户端组都会收到由集群配置的以字节/秒为单位的固定配额。原创 2023-04-24 21:48:11 · 957 阅读 · 0 评论 -
11.ClickHouse系列之亿级数据清洗实践
之所以采用ReplaceMergeTree,是因为它可以根据排序键合并旧数据,非常适合,如果我们采用其他引擎,呢么解析出省份直接update字段的话比较重,在ClickHouse中。假设我们目前造了1亿条注册地址,我们需要根据注册地址尽可能解析出省份城市区域信息,并且剔除掉注册地址中的省份城市区域信息。假设我们已经根据统一信用代码的3~8位行政区划代码解析出部分省份城市区域映射到province、city、region中。数据存储格式为csv,约20G。有任何疑问请公众号联系算法小生。原创 2023-04-24 20:52:15 · 312 阅读 · 0 评论 -
7.Kafka系列之设计思想(五)-副本
4.7 Replication复制Kafka replicates the log for each topic’s partitions across a configurable number of servers (you can set this replication factor on a topic-by-topic basis). This allows automatic failover to these replicas when a server in the cluster fa原创 2023-04-12 19:44:20 · 116 阅读 · 0 评论 -
6.Kafka系列之设计思想(四)-消息传递语义
在默认的“read_uncommitted”隔离级别中,所有消息对消费者都是可见的,即使它们是中止事务的一部分,但在“read_committed”中,消费者将只返回来自已提交事务的消息(以及任何不属于一部分的消息)交易)在这种情况下,接管处理的进程将从保存的位置开始,即使该位置之前的一些消息还没有被处理。许多系统声称提供“恰好一次”交付语义,但阅读细则很重要,这些声明中的大多数都是误导性的(即它们不会转化为消费者或生产者可能失败的情况,有多个的消费者进程或写入磁盘的数据可能丢失的情况)原创 2023-04-09 21:51:21 · 132 阅读 · 0 评论 -
5.Kafka系列之设计思想(三)-生产者与消费者
本文我们了解Kafka官网关于生产者、消费者设计思想。原创 2023-04-09 21:27:56 · 120 阅读 · 0 评论 -
4.Kafka系列之设计思想(二)
当然,用户始终可以一个接一个地压缩其消息,而不需要Kafka的任何支持,但这可能会导致非常低的压缩比率,因为许多冗余性是由于同一类型的消息之间的重复(例如JSON中的字段名称或Web日志中的用户代理或常见字符串值)。代理维护的消息日志本身只是一个文件目录,每个文件都由一系列以生产者和消费者使用的相同格式写入磁盘的消息集填充。这种页面缓存和sendfile的组合意味着,在一个Kafka集群中,如果消费者大部分时间都是跟上生产者的进度,那么你在磁盘上不会看到任何读取活动,因为它们完全是从缓存中提供数据的。原创 2023-04-04 20:42:46 · 77 阅读 · 0 评论 -
3.Kafka系列之主题事件与设计思想(一)
此外,即使服务重新启动,此缓存仍将保持温暖状态,而进程内缓存将需要在内存中重建(对于 10GB 的缓存可能需要 10 分钟),否则它将需要从一个完全冷的缓存开始(这可能意味着糟糕的初始性能)。由于存储系统混合了非常快的缓存操作和非常慢的物理磁盘操作,因此随着数据随着固定缓存的增加而增加,树结构的观察性能通常是超线性的–即 将数据加倍会使事情变得比慢两倍更糟。尽管它们的寻道性能较差,但这些驱动器具有可接受的大型读取和写入性能,而且价格是后者的 1/3,容量是后者的 3 倍。这激发了我们的分区和消费者模型。原创 2023-04-03 20:09:45 · 109 阅读 · 0 评论 -
24.hadoop系列之Yarn容量调度器实践及生产环境核心参数配置
在中小型企业中,我们一般配置为容量调度器请先检查本地host配置。原创 2023-03-06 21:39:32 · 141 阅读 · 0 评论 -
22.hadoop系列之Yarn工作原理
Hadoop作业调度器主要有三种:FIFO、容量(Capacity Scheduler)和公平(Fair Scheduler)Apache hadoop-2.7.2之后默认调度器是容量调度器Capacity SchedulerApache hadoop-3.2.2默认调度器是公平调度器Fair Scheduler。原创 2023-03-04 19:09:15 · 436 阅读 · 0 评论 -
4.ClickHouse系列之SQL操作与数据类型与表引擎介绍
上篇文章已经创建过表及熟悉了基本语法,本文介绍CK的数据类型以及表引擎的一些分类与作用。原创 2022-10-21 21:12:20 · 297 阅读 · 0 评论 -
9.ClickHouse系列之数据一致性保证
对于ReplacingMergeTree引擎,我们之前讲过在后台合并的时间不定,合并前查询会存在数据不一致问题。查询结果如下:1,上海,静安,场中小区,61000,2022-06-01 00:00:001,上海,静安,场中小区,61000,2022-06-01 00:00:001,上海,静安,场中小区,60000,2022-05-01 00:00:001,上海,静安,场中小区,60000,2022-05-01 00:00:00为保证数据一致性,有以下解决方案。原创 2022-10-22 12:26:16 · 949 阅读 · 0 评论 -
7.ClickHouse系列之查询优化
prewhere和where语句的作用相同,用来过滤数据。不同之处在于prewhere只支持*MergeTree族系列引擎的表,首先会读取指定的列数据,来判断数据过滤,等待数据过滤之后在读取select声明的列字段来补全其余属性。如下表而言,当发布日期大于10月1日,会在物化视图的存储表.inner_id.xxxx中插入数据,而当清空基础表house时,.inner_id.xxxx中的数据并不会丢失。列裁剪即指定所需要的列,而非全量*,分区裁剪就是只读取需要的分区,在过滤条件中指定。原创 2022-10-21 21:14:44 · 1179 阅读 · 2 评论 -
6.ClickHouse系列之配置副本集、分片集群
副本集对数据进行完整备份,数据高可用,对于分片集群来说,不管是ES还是ClickHouse是为了解决数据的问题,ClickHouse在实际应用中一般配置副本集就好了。原创 2022-10-21 21:14:02 · 896 阅读 · 0 评论 -
19.hadoop系列之MapReduce数据压缩
压缩优缺点:减少磁盘IO时间、节省磁盘空间;增加CPU开销压缩原则:CPU密集型Job,少用压缩;IO密集型Job,多用压缩。原创 2023-02-26 18:07:37 · 112 阅读 · 0 评论 -
17.hadoop系列之MapReduce多表关联实践
在resource中新建order目录并创建文件。传参并运行,NICE。原创 2023-02-25 14:14:04 · 215 阅读 · 0 评论 -
16.hadoop系列之MapReduce之Task、Shuffle工作机制、数据压缩
MapTask并行度由切片个数决定,切片个数由输入文件和切片规则决定,ReduceTask与MapTask的并发数决定不同,可以直接设置。以上内容我们之前文章或多或少介绍过,就已网络上比较流行的该图进行理解学习吧。Map方法之后,Reduce方法之前的数据处理过程称为Shuffle。欢迎关注公众号算法小生与我沟通交流。ReduceTask分为三大阶段。MapTask分为五大阶段。原创 2023-02-20 20:19:33 · 464 阅读 · 0 评论 -
12.hadoop系列之MapReduce分区排序Combiner实践
我们在resources目录下新建phone2.txt新建自定义ProvincePartitioner类// Text是手机号 String phone = text . toString() . substring(0 , 3);// 注意分区号需要连续,从0开始分区 int partition;} else {} }新建FlowPartitionerDriver类。原创 2023-02-11 19:28:20 · 511 阅读 · 0 评论 -
11.hadoop系列之MapReduce框架原理之自定义序列化与数据输入输出
我们先简要了解下InputFormat输入数据。原创 2023-02-10 21:17:12 · 583 阅读 · 0 评论 -
9.hadoop系列之MapReduce实践
我们通过一个具体的WordCount案例来进一步理解MapReduce。原创 2023-02-01 20:27:03 · 558 阅读 · 0 评论 -
6. hadoop系列之HDFS镜像文件Fsimage和编辑日志Edits详解
了解完后,fsimage与edits文件不知道你有没有想起与redis7中rdb与aof十分类似呢?欢迎关注公众号算法小生。原创 2023-01-09 20:03:48 · 995 阅读 · 0 评论 -
5.hadoop系列之HDFS 读写数据流程、NN和2NN、DataNode工作机制
1.第一次启动NameNode格式化后,创建Fsimage和Edits文件,如果不是第一次启动,直接加载Fsimage和Edits到内存。8.NameNode将fsimage.chkpoint重新命名为fsimage,替换旧fsimage。5.Secondary NaneNode加载Edits和Fsimage到内存,并合并。4.将滚动前的Edits和Fsimage拷贝到Secondary NameNode。3.NameNode记录操作日志,更新滚动日志。4.NameNode在内存中对元数据进行增删改。原创 2023-01-08 13:27:01 · 306 阅读 · 0 评论 -
3.hadoop系列之HDFS架构及文件上传下载
本文我们学习Hadoop中HDFS架构、优缺点、文件块大小、通过shell命令文件上传下载。原创 2023-01-03 20:42:09 · 1217 阅读 · 0 评论 -
1.hadoop系列之部署与组成简介
本文开始,我们学习大数据系列,我们先从hadoop开始本篇文章主要目的就是我们成功运行起来,后面在详细介绍hadoop组成工作原理。原创 2022-12-28 20:14:42 · 626 阅读 · 0 评论