自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

houzhizhen的专栏

bigdata hobbyist

  • 博客(816)
  • 资源 (4)
  • 收藏
  • 关注

原创 Iceberg Catalog 的实现和迁移

因为在任意时刻,所有的读和写操作看到表的表的状态是相同的。两个并发的写入操作,第 2 个写入操作提交的时候不能覆写第 1 个写入操作对数据的修改,导致数据丢失。Iceberg Catalog 的接口定义了各种 Catalog 需要实现的方法,主要包括列出存在的表,创建表,删除表,检查表是否存在,给表改名。并且都支持迁移表的整个历史。register 迁移后,不删除旧的 catalog 中表定义,可以用来预迁移的验证。使用 register,不能使用不同的 catalog 写入数据,这样会导致数据丢失。

2024-10-09 11:46:55 1004

原创 优化 Iceberg 表的性能

每组文件合并之后,就生成一个新的快照,这样新的查询就可以利用合并的快照。| Merge-on-Read(equality deletes) | 慢 | 最快 | 使用更频繁的合并减少读开销 |如果表的字段非常多,可能照成 meta 文件特别大,可以关闭某些字段的收集或者限制收集的内容。如果快照的数量少于第3个参数设置的数量,则不清除。没有包含在 manifest 中的文件,如失败的作业建立的文件。特别是实时计算,每次插入特别少的记录,导致生成大量的文件。更改分区字段,新的写入立即生效。

2024-09-26 16:57:20 375

原创 Iceberg 表不能用 Show Partitions 显示分区信息

【代码】Iceberg 表不能用 Show Partitions 显示分区信息。

2024-09-23 11:30:42 232

原创 Apache Iceberg 读写查询

metadata 下有4个文件,去掉创建时生成的 00000-831f9491-0ebf-45e6-9ead-902bc62ba658.metadata.json,现在解释以下 3 个文件。这时表目录下仅有一个 metadata 目录,metadata 目录下有一个 metadata.json 文件。第1列是数据生成的 timestamp,第2列是快照 ID。可以看到 metadata 文件增加了 3 个文件。插入记录后,表目录下有data 目录。或者 --package 参数。iceberg 是库名。

2024-09-20 16:03:25 754

原创 Trino 测试

安全模式下 连接 7778 端口,并且连接方式是 https。非安全模式连接 8089 端口,并且连接方式是 http。

2024-08-21 17:23:32 245

原创 以 http 方式启动 SparkThriftServer

beeline 连接 Spark thriftServer 的参数。

2024-08-14 11:12:16 272

原创 Hadoop 远程 debug

【代码】Hadoop 远程 debug。

2024-07-05 11:16:51 243

原创 Kubernetes 文档 / 概念 / 存储 / 持久卷

存储的管理是一个与计算实例的管理完全不同的问题。PersistentVolume 子系统为用户和管理员提供了一组 API, 将存储如何制备的细节从其如何被使用中抽象出来。为了实现这点,我们引入了两个新的 API 资源:PersistentVolume 和 PersistentVolumeClaim持久卷(PersistentVolume,PV)是集群中的一块存储,可以由管理员事先制备, 或者使用存储类(Storage Class)来动态制备。持久卷是集群资源,就像节点也是集群资源一样。

2024-07-01 09:11:08 1087

原创 Kubernetes 文档 / 概念 / 存储 / 卷

此文档从 Kubernetes 官网摘录容器中的文件在磁盘上是临时存放的,这给在容器中运行较重要的应用带来一些问题。当容器崩溃或停止时会出现一个问题。此时容器状态未保存, 因此在容器生命周期内创建或修改的所有文件都将丢失。在崩溃期间,kubelet 会以干净的状态重新启动容器。当多个容器在一个 Pod 中运行并且需要共享文件时,会出现另一个问题。跨所有容器设置和访问共享文件系统具有一定的挑战性。

2024-06-11 11:00:09 1005

原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / 服务内部流量策略

此文档从 Kubernetes 官网摘录服务内部流量策略开启了内部流量限制,将内部流量只路由到发起方所处节点内的服务端点。这里的”内部“流量指当前集群中的 Pod 所发起的流量。这种机制有助于节省开销,提升效率。

2024-06-10 14:49:20 355

原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / Service ClusterIP 分配

此文档从 Kubernetes 官网摘录在 Kubernetes 中,Service 是一种抽象的方式, 用于公开在一组 Pod 上运行的应用。Service 可以具有集群作用域的虚拟 IP 地址(使用 type: ClusterIP 的 Service)。客户端可以使用该虚拟 IP 地址进行连接,Kubernetes 通过不同的后台 Pod 对该 Service 的流量进行负载均衡。

2024-06-10 14:42:02 1159 2

原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / 拓扑感知路由

Kubernetes 的部署方式有很多种,没有一种按区域分配端点的启发式方法能够适用于所有场景。此特性的一个关键目标是:如果内置的启发方式不能满足你的使用场景,则可以开发自定义的启发方式。启用自定义启发方式的第一步包含在了 1.27 版本中。这是一个限制性较强的实现,可能尚未涵盖一些重要的、可进一步探索的场景。

2024-06-10 14:41:30 1015

原创 # Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / IPv4/IPv6 双协议栈

此文档从 Kubernetes 官网摘录。

2024-06-10 10:32:07 1122

原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / Service 与 Pod 的 DNS

此文档从 Kubernetes 官网摘录。

2024-06-09 15:41:30 699

原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / 网络策略

此文档从 Kubernetes 官网摘录如果你希望针对 TCP、UDP 和 SCTP 协议在 IP 地址或端口层面控制网络流量, 则你可以考虑为集群中特定应用使用 Kubernetes 网络策略(NetworkPolicy)。在定义基于 Pod 或名字空间的 NetworkPolicy 时, 你会使用选择算符来设定哪些流量可以进入或离开与该算符匹配的 Pod。另外,当创建基于 IP 的 NetworkPolicy 时,我们基于 IP 组块(CIDR 范围)来定义策略。

2024-06-03 10:08:42 582

原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / EndpointSlice

此文档从 Kubernetes 官网摘录Kubernetes 的 EndpointSlice API 提供了一种简单的方法来跟踪 Kubernetes 集群中的网络端点(network endpoints)。EndpointSlices 为 Endpoints 提供了一种可扩缩和可拓展的替代方案。

2024-06-01 17:39:16 1317

原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / Gateway API

此文档从 Kubernetes 官网摘录Gateway API 通过使用可扩展的、角色导向的、 协议感知的配置机制来提供网络服务。它是一个附加组件, 包含可提供动态基础设施配置和高级流量路由的 API 类别。

2024-05-31 09:49:25 397

转载 八张动图搞懂代理和反向代理

在分布式场景下,我们经常会听到“代理”、“反向代理”等这样的术语。如果你对它们的概念不是很清楚,那么可能会在具体场景下比较困惑。本期内容,主要跟大家介绍一下,代理和反向代理是什么?有什么区别?以及它们都有什么作用和使用案例。代理和反向代理从字面上很相似,但是在使用上却大有不同,两者都有匿名的能力,代理服务隐藏客户端的身份,而反向代理隐藏服务端的身份。如果你想保护内网中的客户端,可以使用代理服务转发客户端的请求;如果你想保护服务端,则客户在服务器前面架设反向代理服务。

2024-05-31 09:43:12 153

原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / Ingress

此文档从 Kubernetes 官网摘录Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管。

2024-05-28 10:17:24 403

原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / 服务(Service)

Kubernetes 中的 Service 是一个对象 (与 Pod 或 ConfigMap 类似)。你可以使用 Kubernetes API 创建、查看或修改 Service 定义。通常你会使用 kubectl 这类工具来替你发起这些 API 调用。例如,假定有一组 Pod,每个 Pod 都在侦听 TCP 端口 9376,并且它们还被打上 app.kubernetes.io/name=MyApp 标签。

2024-05-27 16:30:01 511

原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网

此文档从 Kubernetes 官网摘录。

2024-05-27 10:04:11 474

原创 Kubernetes 文档 / 概念 / 工作负载 / 自动扩缩工作负载

此文档从 Kubernetes 官网摘录在 Kubernetes 中,你可以根据当前的资源需求扩缩工作负载。这让你的集群可以更灵活、更高效地面对资源需求的变化。当你扩缩工作负载时,你可以增加或减少工作负载所管理的副本数量,或者就地调整副本的可用资源。第一种手段称为水平扩缩,第二种称为垂直扩缩。

2024-05-27 09:50:05 274

原创 Kubernetes 文档 / 概念 / 工作负载 / 管理工作负载

此文档从 Kubernetes 官网摘录你已经部署了你的应用并且通过 Service 将其暴露出来。现在要做什么?Kubernetes 提供了一系列的工具帮助你管理应用的部署,包括扩缩和更新。

2024-05-27 09:25:18 473

原创 Kubernetes 文档 / 概念 / 工作负载 / 工作负载管理 / CronJob

spec.startingDeadlineSeconds 字段是可选的。它表示 Job 如果由于某种原因错过了调度时间,开始该 Job 的截止时间的秒数。过了截止时间,CronJob 就不会开始该 Job 的实例(未来的 Job 仍在调度之中)。例如,如果你有一个每天运行两次的备份 Job,你可能会允许它最多延迟 8 小时开始,但不能更晚, 因为更晚进行的备份将变得没有意义:你宁愿等待下一次计划的运行。对于错过已配置的最后期限的 Job,Kubernetes 将其视为失败的 Job。

2024-05-26 12:42:55 812

原创 Kubernetes 文档 / 概念 / 工作负载 / 工作负载管理 / Job

此文档从 Kubernetes 官网摘录Job 会创建一个或者多个 Pod,并将继续重试 Pod 的执行,直到指定数量的 Pod 成功终止。随着 Pod 成功结束,Job 跟踪记录成功完成的 Pod 个数。当数量达到指定的成功个数阈值时,任务(即 Job)结束。删除 Job 的操作会清除所创建的全部 Pod。挂起 Job 的操作会删除 Job 的所有活跃 Pod,直到 Job 被再次恢复执行。一种简单的使用场景下,你会创建一个 Job 对象以便以一种可靠的方式运行某 Pod 直到完成。

2024-05-26 11:43:17 984

原创 Kubernetes 文档 / 概念 / 工作负载 / 工作负载管理 / DaemonSet

此文档从 Kubernetes 官网摘录DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本。当有节点加入集群时, 也会为他们新增一个 Pod。当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。一种简单的用法是为每种类型的守护进程在所有的节点上都启动一个 DaemonSet。一个稍微复杂的用法是为同一种守护进程部署多个 DaemonSet;每个具有不同的标志, 并且对不同硬件类型具有不同的内存、CPU 要求。

2024-05-24 09:35:28 991

原创 Kubernetes 文档 / 概念 / 工作负载 / 工作负载管理 / StatefulSet

此文档从 Kubernetes 官网摘录StatefulSet 是用来管理有状态应用的工作负载 API 对象。

2024-05-23 15:45:22 1243 1

原创 Kubernetes 文档 / 概念 / 工作负载 / 工作负载管理 /ReplicaSet

此文档从 Kubernetes 官网摘录ReplicaSet 的目的是维护一组在任何时候都处于运行状态的 Pod 副本的稳定集合。因此,它通常用来保证给定数量的、完全相同的 Pod 的可用性。

2024-05-22 15:10:48 577

原创 Kubernetes 文档 / 概念 / 工作负载 / 工作负载管理 / Deployments

此文档从 Kubernetes 官网摘录一个 Deployment 为 Pod 和 ReplicaSet 提供声明式的更新能力。你负责描述 Deployment 中的目标状态,而 Deployment 控制器(Controller) 以受控速率更改实际状态, 使其变为期望状态。你可以定义 Deployment 以创建新的 ReplicaSet,或删除现有 Deployment, 并通过新的 Deployment 收养其资源。

2024-05-22 10:04:24 265

原创 Kubernetes 文档 / 概念 / 工作负载 / 工作负载管理

DaemonSet 可能对集群的操作至关重要, 例如作为插件让该节点访问集群网络, 也可能帮助你管理节点,或者提供增强正在运行的容器平台所需的、不太重要的设施。你可以在集群的每个节点上运行 DaemonSets(及其 Pod),或者仅在某个子集上运行 (例如,只在安装了 GPU 的节点上安装 GPU 加速驱动)。Deployment 中的 Pod 预期是可互换的。Deployment 适合在集群上管理无状态应用工作负载, 其中 Deployment 中的任何 Pod 都是可互换的,可以在需要时进行替换。

2024-05-20 11:03:17 269

原创 Kubernetes 文档 / 概念 / 工作负载 / Pod / 用户命名空间

此文档从 Kubernetes 官网摘录对于容器来说,在不与 Kubernetes 过度耦合的情况下,拥有关于自身的信息有时是很有用的。Downward API 允许容器在不使用 Kubernetes 客户端或 API 服务器的情况下获得自己或集群的信息。

2024-05-20 10:55:54 682

原创 Kubernetes 文档 / 概念 / 工作负载 / Pod / 用户命名空间

Kubernetes 文档 / 概念 / 工作负载 / Pod / 用户命名空间此文档从 Kubernetes 官网摘录中文地址英文地址在容器中以 root 身份运行的进程可以在主机中以不同的(非 root)用户身份运行; 换句话说,该进程在用户命名空间内的操作具有完全的权限, 但在命名空间外的操作是无特权的。你可以使用这个功能来减少被破坏的容器对主机或同一节点中的其他 Pod 的破坏。准备开始这是一个只对 Linux 有效的功能特性,且需要 Linux 支持在所用文件系统上挂载 idmap。

2024-05-20 10:20:52 616

原创 Kubernetes 文档 / 概念 / 工作负载 / Pod / Pod QoS 类

此文档从 Kubernetes 官网摘录本页介绍 Kubernetes 中的 服务质量(Quality of Service,QoS) 类, 阐述 Kubernetes 如何根据为 Pod 中的容器指定的资源约束为每个 Pod 设置 QoS 类。Kubernetes 依赖这种分类来决定当 Node 上没有足够可用资源时要驱逐哪些 Pod。

2024-05-19 13:19:07 583

原创 Kubernetes 文档 / 概念 / 工作负载 / Pod / 干扰(Disruptions)

此文档从 Kubernetes 官网摘录本指南针对的是希望构建高可用性应用的应用所有者,他们有必要了解可能发生在 Pod 上的干扰类型。文档同样适用于想要执行自动化集群操作(例如升级和自动扩展集群)的集群管理员。

2024-05-19 12:51:39 608

原创 Kubernetes 文档 / 概念 / 工作负载 / Pod / 临时容器

临时容器与其他容器的不同之处在于,它们缺少对资源或执行的保证,并且永远不会自动重启, 因此不适用于构建应用程序。临时容器使用与常规容器相同的 ContainerSpec 节来描述,但许多字段是不兼容和不允许的。临时容器没有端口配置,因此像 ports、livenessProbe、readinessProbe 这样的字段是不允许的。Pod 资源分配是不可变的,因此 resources 配置是不允许的。有关允许字段的完整列表,请参见 EphemeralContainer 参考文档。

2024-05-18 10:06:17 452

原创 Kubernetes 文档 / 概念 / 工作负载 / Pod / 边车容器

此文档从 Kubernetes 官网摘录边车容器是与主应用容器在同一个 Pod 中运行的辅助容器。这些容器通过提供额外的服务或功能(如日志记录、监控、安全性或数据同步)来增强或扩展主应用容器的功能, 而无需直接修改主应用代码。

2024-05-17 17:24:55 341

原创 Kubernetes 文档 / 概念 / 工作负载 / Pod / Init 容器

此文档从 Kubernetes 官网摘录本页提供了 Init 容器的概览。Init 容器是一种特殊容器,在 Pod 内的应用容器启动之前运行。Init 容器可以包括一些应用镜像中不存在的实用工具和安装脚本。你可以在 Pod 的规约中与用来描述应用容器的 containers 数组平行的位置指定 Init 容器。在 Kubernetes 中,边车容器 是在主应用容器之前启动并持续运行的容器。本文介绍 Init 容器:在 Pod 初始化期间完成运行的容器。

2024-05-17 16:54:04 890

原创 Kubernetes 文档 / 概念 / 工作负载 / Pod / Pod 的生命周期

此文档从 Kubernetes 官网摘录本页面讲述 Pod 的生命周期。Pod 遵循预定义的生命周期,起始于 Pending 阶段, 如果至少其中有一个主要容器正常启动,则进入 Running,之后取决于 Pod 中是否有容器以失败状态结束而进入 Succeeded 或者 Failed 阶段。在 Pod 运行期间,kubelet 能够重启容器以处理一些失效场景。在 Pod 内部,Kubernetes 跟踪不同容器的状态并确定使 Pod 重新变得健康所需要采取的动作。

2024-05-17 14:44:02 941

原创 Kubernetes 文档 / 概念 / 工作负载 / Pod

说明:为了运行 Pod,你需要提前在每个节点安装好容器运行时。Pod 的共享上下文包括一组 Linux 名字空间、控制组(cgroup)和可能一些其他的隔离方面, 即用来隔离容器的技术。在 Pod 的上下文中,每个独立的应用可能会进一步实施隔离。Pod 类似于共享名字空间并共享文件系统卷的一组容器。Kubernetes 集群中的 Pod 主要有两种用法:运行单个容器的 Pod。"每个 Pod 一个容器"模型是最常见的 Kubernetes 用例;

2024-05-17 09:01:46 717

原创 Kubernetes 文档 / 概念 / 工作负载

例如,如果你希望运行一组 Pod,但要求所有 Pod 都可用时才执行操作 (比如针对某种高吞吐量的分布式任务),你可以基于定制资源实现一个能够满足这一需求的扩展, 并将其安装到集群中运行。例如,当在你的集群中运行了某个 Pod,但是 Pod 所在的 节点 出现致命错误时, 所有该节点上的 Pod 的状态都会变成失败。不过,为了减轻用户的使用负担,通常不需要用户直接管理每个 Pod。在 Kubernetes 中,无论你的负载是由单个组件还是由多个一同工作的组件构成, 你都可以在一组 Pod 中运行它。

2024-05-15 10:51:42 419

Hive 性能测试程序,https://github.com/hortonworks/hive-testbench 编译

Hive 性能测试程序,https://github.com/hortonworks/hive-testbench 编译

2023-02-24

Tez 的设计者在 Hadoop 大会上的分享

1. Tez 的设计思想和解决的问题。

2022-03-15

Transactional Operations in Apache Hive: Present and Future

Hive 事务设计

2022-03-01

The Log-Structured Merge-Tree (LSM-Tree).pdf

The Log-Structured Merge-Tree (LSM-Tree).pdf

2021-06-22

Distributed cycle detection in large-scale sparse graphs.pdf

分布式大规模环检测的计算方法。In this paper we present a distributed algorithm for detecting cycles in large-scale directed graphs, along with its correctness proof and analysis. The algorithm is then extended to find strong components in directed graphs. We indicate an application to detecting cycles in number theoretic functions such as the proper divisor function. Our prototype implementation of the cycle detection algorithm, when applied to the proper divisor function, detects all sociable groups of numbers (cycles in the proper divisor function) up to 107.

2020-08-11

空空如也

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

TA关注的人

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