首页 文章 精选 留言 我的

精选列表

搜索[连续聚合],共10005篇文章
优秀的个人博客,低调大师

Hive自定义UDF和聚合函数UDAF

Hive是一种构建在Hadoop上的数据仓库,Hive把SQL查询转换为一系列在Hadoop集群中运行的MapReduce作业,是MapReduce更高层次的抽象,不用编写具体的MapReduce方法。Hive将数据组织为表,这就使得HDFS上的数据有了结构,元数据即表的模式,都存储在名为metastore的数据库中。 可以在hive的外壳环境中直接使用dfs访问hadoop的文件系统命令。 Hive可以允许用户编写自己定义的函数UDF,来在查询中使用。Hive中有3种UDF: UDF:操作单个数据行,产生单个数据行; UDAF:操作多个数据行,产生一个数据行。 UDTF:操作一个数据行,产生多个数据行一个表作为输出。 用户构建的UDF使用过程如下: 第一步:继承UDF或者UDAF或者UDTF,实现特定的方法。 第二步:将写好的类打包为jar。如hivefirst.jar. 第三步:进入到Hive外壳环境中,利用add jar /home/hadoop/hivefirst.jar.注册该jar文件 第四步:为该类起一个别名,create temporary function mylength as 'com.whut.StringLength';这里注意UDF只是为这个Hive会话临时定义的。 第五步:在select中使用mylength(); 自定义UDF 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 package whut; import org.apache.commons.lang.StringUtils; import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.Text; //UDF是作用于单个数据行,产生一个数据行 //用户必须要继承UDF,且必须至少实现一个evalute方法,该方法并不在UDF中 //但是Hive会检查用户的UDF是否拥有一个evalute方法 public class Strip extends UDF{ private Text result= new Text(); //自定义方法 public Text evaluate(Text str) { if (str== null ) return null ; result.set(StringUtils.strip(str.toString())); return result; } public Text evaluate(Text str,String stripChars) { if (str== null ) return null ; result.set(StringUtils.strip(str.toString(),stripChars)); return result; } } 注意事项: 1,一个用户UDF必须继承org.apache.hadoop.hive.ql.exec.UDF; 2,一个UDF必须要包含有evaluate()方法,但是该方法并不存在于UDF中。evaluate的参数个数以及类型都是用户自己定义的。在使用的时候,Hive会调用UDF的evaluate()方法。 自定义UDAF 该UDAF主要是找到最大值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 package whut; import org.apache.hadoop.hive.ql.exec.UDAF; import org.apache.hadoop.hive.ql.exec.UDAFEvaluator; import org.apache.hadoop.io.IntWritable; //UDAF是输入多个数据行,产生一个数据行 //用户自定义的UDAF必须是继承了UDAF,且内部包含多个实现了exec的静态类 public class MaxiNumber extends UDAF{ public static class MaxiNumberIntUDAFEvaluator implements UDAFEvaluator{ //最终结果 private IntWritable result; //负责初始化计算函数并设置它的内部状态,result是存放最终结果的 @Override public void init() { result= null ; } //每次对一个新值进行聚集计算都会调用iterate方法 public boolean iterate(IntWritable value) { if (value== null ) return false ; if (result== null ) result= new IntWritable(value.get()); else result.set(Math.max(result.get(), value.get())); return true ; } //Hive需要部分聚集结果的时候会调用该方法 //会返回一个封装了聚集计算当前状态的对象 public IntWritable terminatePartial() { return result; } //合并两个部分聚集值会调用这个方法 public boolean merge(IntWritable other) { return iterate(other); } //Hive需要最终聚集结果时候会调用该方法 public IntWritable terminate() { return result; } } } 注意事项: 1,用户的UDAF必须继承了org.apache.hadoop.hive.ql.exec.UDAF; 2,用户的UDAF必须包含至少一个实现了org.apache.hadoop.hive.ql.exec的静态类,诸如常见的实现了 UDAFEvaluator。 3,一个计算函数必须实现的5个方法的具体含义如下: init():主要是负责初始化计算函数并且重设其内部状态,一般就是重设其内部字段。一般在静态类中定义一个内部字段来存放最终的结果。 iterate():每一次对一个新值进行聚集计算时候都会调用该方法,计算函数会根据聚集计算结果更新内部状态。当输入值合法或者正确计算了,则就返回true。 terminatePartial():Hive需要部分聚集结果的时候会调用该方法,必须要返回一个封装了聚集计算当前状态的对象。 merge():Hive进行合并一个部分聚集和另一个部分聚集的时候会调用该方法。 terminate():Hive最终聚集结果的时候就会调用该方法。计算函数需要把状态作为一个值返回给用户。 4,部分聚集结果的数据类型和最终结果的数据类型可以不同。 本文转自 zhao_xiao_long 51CTO博客,原文链接:http://blog.51cto.com/computerdragon/1288567

优秀的个人博客,低调大师

Syncthing 2.1.3 正式发布,连续文件同步工具

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 2.1.3 现已发布,主要更新内容包括: Fixes fix(ignore, fs):允许加载符号链接后面的 ignore 模式(修复#10785)#10786 fix:避免在扫描到文件不存在时触发警告(修复#10465)#10791 fix(strelaypoolsrv):locking correctness#10801 fix(model):正确地对最新文件夹进行健康检查(修复#10546)#10773 fix(gui):修复在分组中展开一个文件夹时其他文件夹不折叠的问题#10809 fix(gui):为文件夹操作按钮添加底部边距,以实现换行间距#10728 fix(upnp):防范索引越界的字符串访问#10834 fix(ignore):处理导致空字符串的模式#10835 fix(versioner):处理无效的空命令#10836 fix(api):处理静态请求中的空路径#10837 fix(db, model):更好地处理数据库连接、拉取程序并发,避免死锁(修复#10841)#10842 其他 chore(fs):尽可能使用 x/sys/windows#10766 chore(model):简化 FileInfoBatch 大小的计算#10776 build:允许在 Android amd64 上启用 inotify(参考#8710)#10783 chore:修复几个未关闭的 HTTP 连接#10806 chore(gui):对折叠面板进行延迟渲染以减少 watcher数量#10772 build(deps):更新依赖项#10824 chore:新的代码贡献指南#10821 chore:完全移除忽略文件缓存#10813 chore:稍微优化重命名检测(参考#10777)#10819 chore(gui):更好地描述待处理的文件夹/设备通知何时会重新出现#10808 chore:deflake TestRecvOnlyRevertNeeds#10827 chore(model):在重命名检测中不再重复检查现有文件#10833 chore(fs):优化 casefs 缓存性能#10830 chore(model):优化 fsync 调用#10831 chore(syncthing):将本地数据库条目包含在 perfstats 中#10839 更新说明:https://github.com/syncthing/syncthing/releases/tag/v2.1.3

优秀的个人博客,低调大师

Syncthing 2.1.2 正式发布,连续文件同步工具

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 2.1.2 现已发布,主要更新内容包括: Fixes fix:在 Windows 系统中,如果控制台不是在某个控制台中打开的,则不要分配控制台#10726 fix(connections):不要报告自身的连接指标(ref#10509)#10724 fix:让 umask 发挥作用#10723 fix(fs, model):改进文件快捷方式中符号链接的容错性#10739 fix(protocol):始终期望并验证请求中的区块哈希值#10738 fix(protocol):对非文件条目中的块更加严格#10737 fix(protocol):放宽对目录条目大小的限制#10743 fix(folder):扫描时检查上下文是否已取消(修复#10363)#10757 fix(config):在反序列化文件夹选项时移除多余的默认设置(修复#10746,修复#10389)#10763 fix(sqlite):更新上次迁移以设置模式版本#10768 其他 chore(syncthing):通过 Windows API 而不是通过 cmd.exe 打开 URL#10712 chore(db, model):分别使用不同的方法来删除设备及其文件#10480 build(deps):更新依赖项#10740 build:同时使用Go 1.26 for Windows#10744 chore(osutil):修复符号链接文件夹根目录的测试#10758 chore(model):将 num hashers 的默认值增加#10761 chore:停止将目录视为大小为 128 字节#10750 chore(versioner):尝试阻止明显不安全的外部版本控制命令(修复#10721)#10722 更新说明:https://github.com/syncthing/syncthing/releases/tag/v2.1.2

优秀的个人博客,低调大师

Syncthing 2.1.1 正式发布,连续文件同步工具

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 2.1.1 现已发布,主要更新内容包括: Fixes fix(syncthing):在 Syncthing 运行时通过 REST 正确升级(修复#10697)#10699 fix(versioner):确保用户对已归档目录拥有读/写/执行权限(修复#10532)#10696 fix(discover):仅在监听通配符地址时 announce wildcard for TCP punching(修复#10503)#10691 fix(stcrashreceiver):关闭错误时的 source 加载器响应#10704 fix(protocol):处理 zero-size 请求(修复#10709)#10710 Other build:明确工作流权限#10690 chore(syncthing):在 GC 崩溃报告中包含运行时上下文#10702 build(deps):x/net for govulncheck#10703 chore:使用 path/filepath 指定本地文件系统路径#10705 详情可查看更新说明:https://github.com/syncthing/syncthing/releases/tag/v2.1.1

优秀的个人博客,低调大师

Syncthing 2.1.0 正式发布,连续文件同步工具

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 2.1.0现已发布,主要更新内容包括: 现在可以通过设置新group属性在图形用户界面中对设备和文件夹进行分组。 除了现有的对 SOCKS 代理的支持(环境变量all_proxy=https://...)之外,现在还可以使用支持 CONNECT 的 HTTP 和 HTTPS 代理。 对于需要优化以减少数据库大小和开销而不是最小传输大小的文件夹,可以关闭块索引(文件夹配置中的blockIndexing属性)。 GUI 登录会话持续时间可以配置为比默认的一周更长或更短,也可以设置为无限期。Cookie 路径也可以调整。(GUI配置中的sessionCookieDurationS和sessionCookiePath属性。) 更多详情可查看:https://github.com/syncthing/syncthing/releases/tag/v2.1.0

优秀的个人博客,低调大师

Syncthing 2.0.16 正式发布,连续文件同步工具

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 2.0.15 现已发布,具体更新内容如下: 修复 fix(protocol):在解压缩之前验证压缩消息的长度#10595 fix(systemd):支持对 syncOwnership 的覆盖#10602 fix(systemd):重新添加允许的 chown 系统调用#10605 其他 chore(config, connections):对 QUIC 和 TCP 使用相同的重连间隔(fixes#10507)#10573 build(deps):更新依赖项#10588 chore(sqlite):减少最大打开连接数,并永久保持连接打开状态(fixes#10592)#10596 更新说明:https://github.com/syncthing/syncthing/releases/tag/v2.0.16

优秀的个人博客,低调大师

Syncthing 2.0.15 正式发布,连续文件同步工具

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 2.0.15 现已发布,具体更新内容如下: 修复 fix(gui):在升级重启期间显示重启提示框(修复#1248)#10566 fix(gui):移除语言选择项的宽度限制#10531 其他 chore(gui):为密码管理器的 Stay logged 复选框添加 id 和名称#10558 chore(db):添加等待程序化启动的数据库维护的功能,查询上次维护时间#10565 chore(etc):添加comprehensive sandboxing#10421 chore:基于 Go 1.26 构建;使用 Go 1.25 的特性#10570 更新说明:https://github.com/syncthing/syncthing/releases/tag/v2.0.15

优秀的个人博客,低调大师

Syncthing 2.0.14 正式发布,连续文件同步工具

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 2.0.14 现已发布,具体更新内容如下: 修复 fix(beacon):跳过 Android 上的 point-to-point 接口#10504 fix(stdiscosrv):使用 fmt.Println 输出版本信息(修复#10523)#10527 fix(stdiscosrv):启动时记录完整的设备 ID#10541 其他 chore(api):从 JSON 内容类型中移除字符集声明(修复#10500)#10508 chore(sqlite):允许禁用定期数据库维护#10441 chore(gui):为 fork-awesome 资源包含许可证文件#10539 build:在发布时添加构建验证步骤#10540 更新说明:https://github.com/syncthing/syncthing/releases/tag/v2.0.14

优秀的个人博客,低调大师

Syncthing 2.0.13 正式发布,连续文件同步工具

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 2.0.13 现已发布,具体更新内容如下: 修复 fix(beacon):不要在 non-multicast interfaces 上加入 multicast groups(fixes#10497)#10498 其他 chore(model):重构文件夹类型的上下文处理#10472 build:修复 Docker 构建问题,确保 qemu 正常运行#10492 chore(beacon):更详细的调试日志记录#10496 build:通过限制通配符来修复哈希失败#10505 chore:调整拉取重试逻辑#10491 更新说明:https://github.com/syncthing/syncthing/releases/tag/v2.0.13

优秀的个人博客,低调大师

Syncthing 2.0.11 正式发布,连续文件同步工具

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 2.0.11 现已发布,具体更新内容如下: 修复 fix(policy):仅允许非作者贡献者进行审批#10419 fix(fs):将getExpireAdd互斥锁存储在caseCache(修复#9836)#10430 fix(fs):在 casefs 测试中将 case 选项应用于 fakefs#10439 fix(fs):仅在压力测试中对 fakefs 应用 case 选项#10440 其他 docs(docker):将 host network 模式设为默认值#10416 chore(upnp):移除 nat.Service 的错误嵌入(修复#10426)#10428 chore:一些小的代码规范修复#10436 Chore(gui):添加阿塞拜疆语 (az) 和库尔德语 (ckb) l10n 模板。#10442 更新说明:https://github.com/syncthing/syncthing/releases/tag/v2.0.11

优秀的个人博客,低调大师

Syncthing 2.0.10 正式发布,连续文件同步工具

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 2.0.10 现已发布,具体更新内容如下: 修复 修复:通过跟踪以前的 file hash来改进冲突检测(修复#10349)#10351 fix(ur):正确跳过报告中的零/空字段#10394 fix(gui):在 GUI 加载时不要不必要地获取使用情况报告预览#10395 fix(db):仅在应用迁移时执行外键检查#10397 fix(syncthing):除非启用日志记录,否则不要在启动时执行 CPU 基准测试#10398 fix(model):不要向其他设备广播不受信任的设备(修复#10393)#10408 fix(sqlite):始终为本地文件插入块(修复#10388)#10411 其他 build:更新 GitHub actions#10399 更新说明:https://github.com/syncthing/syncthing/releases/tag/v2.0.10

优秀的个人博客,低调大师

Syncthing 2.0.9 正式发布,连续文件同步工具

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 2.0.9 现已发布,具体更新内容如下: 修复 fix(sqlite):将 _txlock=immediate 添加到 modernc 实现中#10384 fix(api):限制允许的身份验证请求的大小#10386 其他 chore(ursrv):更新 Syncthing-Fork entries 的正则表达式模式#10380 chore:清理迁移的数据库#10381 chore(sqlite):使用规范化的表来存储文件名和版本#10383 chore(model):稍微简化了 TestRecvOnlyRevertOwnID #10390 更新说明:https://github.com/syncthing/syncthing/releases/tag/v2.0.9

优秀的个人博客,低调大师

Syncthing 2.0.8 正式发布,连续文件同步工具

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 2.0.8 现已发布,具体更新内容如下: 修复 fix(sqlite):降低周期性垃圾回收的影响#10374 fix(sqlite):明确设置临时目录位置(修复#10368)#10376 其他 build:仅在 syncthing repo 上触发nightly build#10375 chore(scanner):当使用 hashing blocks 时,始终将值返回到池中#10377 chore(sqlite):当可证明无需执行时,完全跳过database GC#10379 更新说明:https://github.com/syncthing/syncthing/releases/tag/v2.0.8

优秀的个人博客,低调大师

Syncthing 2.0.7 正式发布,连续文件同步工具

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 2.0.7 现已发布,具体更新内容如下: 修复 fix(model):earlier free-space check(修复#10347)#10348 fix(api):在支持包配置中编辑设备加密密码#10359 fix(sqlite):恢复为默认页面缓存大小#10362 fix(tlsutil):在 GUI/API 连接上支持 HTTP/2#10366 fix(sqlite):避免在 kv 表上出现 rowid#10367 其他 chore(model):调整文件夹状态日志(修复#10350)#10353 build:为 illumos 构建基于 vmactions/omnios-vm 的软件包#10328 chore(slogutil):添加可配置的日志格式(修复#10352)#10354 更新说明:https://github.com/syncthing/syncthing/releases/tag/v2.0.7

优秀的个人博客,低调大师

Syncthing 2.0.5 正式发布,连续文件同步工具

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 2.0.5 现已发布,具体更新内容如下: 修复 fix(db):仅当迁移脚本实际运行时在启动时清理数据库#10339 其他 文档:将 DCO 要求添加到贡献指南中#10333 文档:从 docs site更新贡献指南#10336 更新说明:https://github.com/syncthing/syncthing/releases/tag/v2.0.5

优秀的个人博客,低调大师

Syncthing 2.0.4 正式发布,连续文件同步工具

Syncthing是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。 Syncthing 2.0.4 现已发布,具体更新内容如下: 修复 fix(cmd):仅在迁移期间启用临时 API 服务器时启动#10284 fix(model):计算哈希器数量时考虑 MaxFolderConcurrency#10285 fix(model):在交互式操作系统上计算哈希值时考虑 CPU 核心数(#10284)#10286 fix(db):在单个事务中应用所有migrations 和 schema#10323 fix(model):正确处理块对齐的空稀疏文件#10332 fix(syncthing):通过临时 API/GUI 服务器应用文件夹迁移#10330 其他 chore(db):调整 db bench 名称以改进 benchstat 分组#10283 chore(db):清理测试中的数据库并删除 OpenTemp#10282 build:使用 Go 1.24 tools 模式#10281 refactor(db):稍微提高插入性能#10318 chore(gui):使用 steps of 1024 KiB 进行带宽速率限制#10316 chore(gui): 使用 step of 3600 进行版本清理间隔#10317 chore(db):在与迁移相同的事务中更新 schema 版本#10321 chore(db):迁移之前的提交#10319 详情可查看更新说明:https://github.com/syncthing/syncthing/releases/tag/v2.0.4

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册