- 博客(585)
- 资源 (18)
- 收藏
- 关注

原创 【推荐】开源动态配置ares服务让业务飞起来,”赶超nacos、apollo,从此不再依靠 spring cloud config“
What is ARES?Open source dynamic configuration center with easy deployment and high stabilityAres系统是基于Java语言开发的,部署简单且高稳定性的动态配置系统.让您可以集中化、动态化管理自己应用中的配置.允许您的应用以监听和拉取结合的方式快速变更运行时的应用配置具有丰富的配置管理UI简化操作,同时也保障数据的隔离性与灵活性AboutAres系统目前在橙鹰公司内部使用,并稳定的
2020-12-31 15:30:53
3349
1

原创 【推荐】开源项目ElasticAmbari助力 ElasticSearch、Kibana、ambari服务高效运维管理
概述ElasticAmbari为Ambari的一组自定义服务,为Elastic的产品提供安装和管理的支持。项目地址:https://github.com/ChengYingOpenSource/ElasticAmbari开源不易,我们会持续维护和优化,惊喜不断请大家点赞收藏!特性支持Elastic全产品系列 支持Elastic各产品的各个版本,不要求特定版本许可证ElasticAmbari代码库基于Apache License 2.0许可证开放使用。欢迎参与.
2020-12-31 13:59:26
2942
1
原创 Model Context Protocol(MCP)详解和开发教程
导入包并定义mcp实例""""""通过注解,把一个函数注册为Tool# 注册工具的装饰器,可以很方便的把一个函数注册为工具asyncdef query_logistics(order_id: str = Field(description="订单号")) -> str:"""查询物流信息。当用户需要根据订单号查询物流信息时,调用此工具Args:order_id: 订单号Returns:物流信息的字符串描述"""# 统一的物流信息数据。
2025-03-21 10:19:30
1996
原创 【AI】推荐12个AI智能体应用开发平台
人工智能(AI)已经成为推动创新和增长的关键力量。无论是在医疗、金融、教育还是零售行业,AI的应用都在不断扩展,为各行各业带来革命性的变化。本文将介绍12个AI Agent和AI应用开发平台,平台的兴起,为广泛的用户群体提供了一个易于访问、成本效益高的解决方案,AI技术和应用不再是大公司的专属。AI应用开发平台通过提供预训练的模型、拖放界面和丰富的API,非技术用户也能快速构建和部署自己的AI应用。
2025-02-05 14:18:56
13990
原创 maven-shade-plugin代替maven-assembly-plugin打包输出文件一致
【代码】maven-shade-plugin代替maven-assembly-plugin打包输出文件一致。
2024-06-28 18:47:34
245
原创 maven-shade-plugin relocation解决包冲突(spark udf okhttp3 okio包冲突问题解决)
maven-shade-plugin中提供了一个Relocating(迁移)的功能,通过将原来包下的类迁移到我们指定的包名下。和okio的包删除,使用我们自己打的包。启动后发现可以,但是这肯定会导致集群用这两个包时报错。经过排查,发现大数据集群中依赖了okhttp和okio的包,而集群中也有okhttp和okio的包。如下图所示,就将okio和okhttp3包移到了我们制定的shaded目录下。剔除okhttp和okio的包,再次启动还是不行,集群里对应的包版本太低。打包,扔到集群中,是可行的。
2024-06-28 18:45:00
676
原创 presto / trino plugin(自定义UDF函数)开发指南
ScalarFunction("to_upper") // 固定参数,表示函数名的意思,也就我们在使用Presto的时候用的函数名@Description("我的大小写转换函数") // 函数的注释@SqlType(StandardTypes.VARCHAR) // 表示数据类型// 将获取到的数据转换大写// 在转换后的数据放入内存返回实现presto函数的开发,使用新建maven工程的方式,要比在presto代码下新建子工程的方式简单的多,推荐大家使用方法二。
2024-03-12 15:40:11
2096
原创 Maxmind GeoLite2城市csv数据库本地导入使用
官方指导文档:https://dev.maxmind.com/geoip/importing-databases/mysql。您可以使用工具将MaxMind GeoLite2 country/ CSV从GitHub。需要知道必须使用哪些类型的字段,以及如何正确地连接数据库中要从csv-文件导入的表。转换为MySQL/PostgreSQL/Microsoft 2019。中为导入GeoLite2城市csv创建。直接用csv导入就可以使用了。
2024-02-05 15:12:09
1003
原创 绝对完美解决hdfs datanode数据和磁盘数据分布不均调整(hdfs balancer )——经验总结
hdfs 需要存写大量文件,有时磁盘会成为整个集群的性能瓶颈,所以需要优化 hdfs 存取速度,将数据目录配置多磁盘,既可以提高并发存取的速度,还可以解决一块磁盘空间不够的问题。大数据Hadoop之——Hadoop 3.3.4 HA(高可用)原理与实现(QJM)
2024-02-04 13:51:00
2529
原创 常用抓包软件集合(Fiddler、Charles)
Fiddler Everywhere Pro具有扩展的共享和协作选项。与MacOS,Windows和Linux兼容。检查网络流量(HTTP和HTTps)。与合作者保存,共享和接收捕获的流量。解密安全流量(HTTps)。保存编写的API请求。
2024-01-30 14:47:23
1604
原创 Datanode磁盘IO高 hdfs du -sk 导致机器load高
所以,对于DN来说,默认的Du,会产生大量的du -sk的操作,会造成集群严重的IO Wait增加,从而导致任务会变得缓慢。iostat -x 5: 磁盘IOutil 一直处于比较高的使用率,且iowait值比较大,io有一定的等待延迟;(将一个节点上同时产生的多个du操作,加个随机数,随机到集群的不同时间段,)不过也有一些临时的方案,比如说捕获到hdfs调用的 du -sk 命令,使用 df -k 进行替换。iotop排查有大量的du -sk 操作占用IO比较高,且执行很长时间;
2023-12-06 15:56:29
1891
原创 pip 安装错误 “python setup.py egg_info“
【代码】pip 安装错误 “python setup.py egg_info“
2023-12-01 18:27:27
779
原创 hdfs数据丢失数据块block missing问题排查解决
告警内容:NameNode Blocks Health:Total Blocks:[13352317], Missing Blocks:[1]最后平滑重启NameNode,在重启异常的DataNode解决。允许ipc通讯最大的数据包为128MB,默认配置为64MB。开始时间:2023-10-02 08:05:12。组件:HDFS/cube-hdfs-1。排查hdfs datanode日志发现。持续时间:8小时44分钟。但是数据一直没法恢复。
2023-10-07 20:08:34
1646
原创 磁盘io使用率高问题排查
例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备 的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读 取请求读取的是相同Block的数据,FS会将这个请求合并Merge);上面的例子中,我们可以看到磁盘sda以及它的各个分区的统计数据,当时统计的磁盘总TPS是39.29,下面是各个分区的TPS。
2023-10-07 11:34:28
4877
原创 spark任务长时间不退出hangs 8+ hour 的排查(AsyncEventQueue: Dropped 18 events from executorManagement)
解決这个问题最简单的办法。2.将群集级别的群集的 Spark 配置中的 spark.scheduler.listenerbus.eventqueue.capacity 值设置为大于 10000 的值。3.此值设置应用状态事件队列的容量,其中包含内部应用程序状态侦听器的事件。1.解决丢event的方法实际上是用Spark提供的参数,静态的让队列在初始化的时候容量变大了,这需要driver的内存大一点。有些listener 太慢了 跟不上新产生的task 的scheduler 的速度,有意思的问题就在这里。
2023-10-06 21:24:01
637
原创 hive location更新&hive元数据表详解
由于HDFS支持的文件格式很多,而建Hive表时候也可以指定各种文件格式,Hive在将HQL解析成MapReduce时候,需要知道去哪里,使用哪种格式去读写HDFS文件,而这些信息就保存在这几张表中。该表保存文件存储的基本信息,如INPUT_FORMAT、OUTPUT_FORMAT、是否压缩等。主要有TBLS、TABLE_PARAMS、TBL_PRIVS,这三张表通过TBL_ID关联。TBLS表中的SD_ID与该表关联,可以获取Hive表的存储信息。hive分为内部表和外部表,两种表修改路径方式不一样。
2023-09-11 15:23:46
1712
原创 Spark repartition和coalesce的区别
我们常认为coalesce不产生shuffle会比repartition 产生shuffle效率高,而实际情况往往要根据具体问题具体分析,coalesce效率不一定高,有时还有大坑,大家要慎用。coalesce 与 repartition 他们两个都是RDD的分区进行重新划分,repartition只是coalesce接口中shuffle为true的实现(假设源RDD有N个分区,需要重新划分成M个分区)1)如果N<M。
2023-08-17 20:13:21
1133
原创 spark dynamicAllocation详解及使用
动态资源分配策略在空闲时释放 Executor,繁忙时申请 Executor,虽然逻辑比较简单,但是和任务调度密切相关。它可以防止小数据申请大资源,Executor 空转的情况。在集群资源紧张,有多个 Spark 应用的场景下,可以开启动态分配达到资源按需使用的效果。
2023-08-17 15:52:19
4069
原创 spark-sql 多表关联( union all) TaskMemoryManager: Failed to allocate a page (8388608 bytes)
如果资源充足那就需要增加driver内存和调整spark.sql.autoBroadcastJoinThreshold内存,可以根据需要开启spark.broadcast.compress=true。因为spark.sql.adaptive.enabled=true开启自动调优,spark.sql.autoBroadcastJoinThreshold=2G。在使用多表关联的时候慎重开启spark.sql.adaptive.enabled=true。
2023-08-10 15:54:16
455
原创 spark-sql数据重复之File Output Committer问题
我们先来回顾下之前介绍过的三种Committer:FileOutputCommitter V1、FileOutputCommitter V2、S3A Committer,其基本代表了整体的演进趋势。FileOutputCommitter V1,采用两次Commit的方式来保证较强的一致性,每次Commit都对应一次文件的Rename。每个Task先将数据写入到Task的临时目录下,写完后将其Rename到Job的临时目录下;
2023-08-01 20:12:19
1401
原创 git远端分支重命名操作
假如正在与一群人合作一个项目,并且已为git分支定义了命名约定。您,将更改推送到远程存储库,并意识到您的分支名称不正确。幸运的是,Git允许您使用命令非常容易地重命名分支。本教程介绍了如何重命名本地和远程Git分支。
2023-07-06 10:01:00
792
原创 hudi spark数据增删查改
Hudi还提供了增量查询的方式,可以获取从给定提交时间戳以来更改的数据流。如果我们希望在给定提交之后进行所有更改,则不需要指定endTime(这是常见的情况)。对于表或分区来说,如果大部分记录在每个周期都发生变化,那么做upsert或merge的效率就很低。overwrite操作可能比批量ETL作业的upsert更快,批量ETL作业是每一批次都要重新计算整个目标分区(包括索引、预组合和其他重分区步骤)。也可以用于某些操作任务,如修复指定的问题分区。"操作,以忽略现有数据,只用提供的新数据创建一个提交。
2023-06-28 17:44:26
680
原创 Hudi Spark-SQL增量查询数据几种方式
由于项目上主要用Hive查询Hudi,所以之前总结过一篇:Hive增量查询Hudi表。最近可能会有Spark SQL增量查询Hudi表的需求,并且我发现目前用纯Spark SQL的形式还不能直接增量查询Hudi表,于是进行学习总结一下。本文总结了Spark SQL增量查询Hudi表的一些参数设置,并给出了示例,介绍了使用纯Spark SQL实现增量查询Hudi表的几种方式,不确定未来社区会采用哪种方式,大家目前如果有这种需求的话,可以先选择一种自己喜欢的方式,等未来社区版本支持后,再升级版本。
2023-06-28 17:40:06
1844
原创 spark-sql ORC Caused by: org.apache.hadoop.fs.FileAlreadyExistsException: File already exists
试图在重新分区后将数据帧写入s3位置。但是每当write stage失败并Spark重试该stage时,它抛出FileAlreadyExistsException。在当重新提交工作时,如果spark在一次尝试中就完成了这一阶段,它会很好地工作。主要是Spark应该在重试之前从失败的阶段删除文件。如果我们将retry设置为0,这个问题就会解决,但是spark阶段预计会失败,这不是一个合适的解决方案。Spark配置中设置--conf。有关此配置的更多详细信息-
2023-06-08 09:52:04
533
原创 spark-sql写入对象存储路径不存在问题(异常路径自动消失)
由于多个 Task 同时写数据到 HDFS,如何保证要么所有 Task 写的所有文件要么同时对外可见,要么同时对外不可见,即保证数据一致性同一 Task 可能因为 Speculation 而存在两个完全相同的 Task 实例写相同的数据到 HDFS中,如何保证只有一个 commit 成功对于大 Job(如具有几万甚至几十万 Task),如何高效管理所有文件V1 committer(即的值为 1),commit 过程如下Task 线程将 TaskAttempt 数据写入。
2023-05-23 12:56:54
1541
原创 spark-sql 报错:Exception thrown flushing changes to datastore
spark-sql hive
2023-05-10 10:58:25
1023
原创 ClickHouse 查询时报错:Memory limit (for query) exceeded: would use 9.38 GiB
ClickHouse
2022-12-30 10:33:48
5084
ReceiverCleanupUtility
2018-09-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人