- 博客(42)
- 资源 (1)
- 收藏
- 关注
原创 HDFS 使用原生连接器连接 S3 对象存储
替换为实际使用的Hadoop版本号。如果不使用Maven,也可以直接下载相应的JAR包并添加到项目的类路径中。如果能够正确列出桶中的内容,说明连接配置成功。替换为实际的HDFS Namenode地址,替换为自己的AWS访问密钥和秘密密钥,替换为HDFS中要传输的文件路径,根据实际情况调整连接数,以优化性能。这将把文件分成5MB的块进行上传。替换为S3中目标文件的路径。:在Hadoop的配置文件。替换为S3的端点,如。替换为S3桶的名称,
2025-06-11 17:09:13
234
原创 HDFS 中 DataNode 挂载外部 S3 存储系统作为本地卷
通过以上方案,可将S3存储无缝映射为本地文件系统,便于传统应用直接访问云存储资源,同时兼顾兼容性和性能需求。:DataNode通过FUSE(Filesystem in Userspace)或NFS将外部存储映射为本地文件系统路径。MinIO是一个兼容S3协议的对象存储服务,其提供的FUSE接口可高效实现S3存储的本地挂载。部分外部存储的文件系统语义与 HDFS 不完全兼容(如删除操作的原子性)。:需要在每个 DataNode 上手动挂载外部存储,管理成本高。外部存储的延迟高于本地磁盘。
2025-06-11 16:27:28
502
原创 HDFS 异构存储及存储策略
通过异构存储策略,HDFS可根据数据价值动态分配存储资源,在保证性能的同时降低总体拥有成本(TCO)。** PROVIDED(外部存储)**如需自定义策略,可通过修改。
2025-06-11 11:26:55
401
原创 VS Code + Maven 创建项目
本文介绍了Ratis项目的开发环境搭建步骤:1)安装JDK 17+(推荐Eclipse Temurin)并配置环境变量;2)安装Maven 3.9.9,配置镜像源和本地仓库路径;3)安装VS Code的Java开发扩展包;4)通过Maven创建项目(group id设为com.example,artifact id为ratis-example)。环境验证显示JDK 21和Maven 3.9.9成功安装。
2025-05-22 17:13:35
564
原创 VS Code 中 Maven 未能正确读取 settings.xml 中配置的新路径
摘要:VS Code中Maven无法读取修改后的settings.xml文件时,主要解决步骤包括:1)在VS Code设置中手动指定配置文件路径;2)检查Maven插件缓存并清理;3)排除环境变量冲突;4)更新Maven插件版本。可通过mvn help:effective-settings命令验证配置,或在启动配置中强制指定路径。问题通常源于路径未正确配置、插件缓存或环境变量覆盖。
2025-05-22 17:12:13
1081
原创 Avro 文件不同压缩格式的写入时间和文件大小比较
本文对比了Avro文件在不同压缩格式(null、deflate、snappy、bzip2)下与CSV文件的存储性能和写入效率。测试数据显示:对于简单文件结构,未压缩的Avro(null)和snappy压缩格式文件大小与CSV接近(99.5%),写入耗时约为CSV的90%;而deflate和bzip2压缩后文件缩小约25%,但写入时间显著增加(deflate耗时285%,bzip2耗时514%)。对于复杂文件结构,代码展示了详细的Avro schema定义,但未提供具体对比数据。
2025-05-20 11:44:49
130
原创 Windows 环境下安装 Node 和 npm
执行 fnm install 22 之后,执行 node 或 npm 提示找不到命令。fnm env 看环境变量。
2025-05-14 19:32:40
709
原创 基于角色的访问控制(Role-Based Access Control, RBAC)
"""定义权限类""""""定义角色类,角色可以包含多个权限""""""定义用户类,用户可以有多个角色"""# 检查用户的所有角色是否拥有某个权限# 定义权限# 定义角色# 定义用户# 给用户分配角色user1.add_role(admin_role) # Alice 是管理员user2.add_role(editor_role) # Bob 是编辑user3.add_role(viewer_role) # Charlie 是浏览者。
2024-10-16 10:42:53
1066
原创 Kerberos身份验证原理和登录数据库的实例
基于 Kerberos 的身份验证通过引入中央认证服务器,提高了数据库登录的安全性,避免了明文传递凭据,并通过票据系统防止重放攻击。Python 可以通过gssapi库结合数据库库(如psycopg2)实现与数据库的安全连接。梧桐数据库(WuTongDB)是基于 Apache HAWQ 打造的一款分布式 OLAP 数据库。产品通过存算分离架构提供高可用、高可靠、高扩展能力,实现了向量化计算引擎提供极速数据分析能力,通过多异构存储关联查询实现湖仓融合能力,可以帮助企业用户轻松构建核心数仓和湖仓一体数据平台。
2024-10-10 18:13:19
1115
原创 如何写好测试用例
测试用例设计应以发现程序错误为核心目标,包含功能点、环境、数据、操作和预期结果。设计真实甚至危险的测试环境,不忽略偶发情况。用例需涵盖正向预期和反向错误场景,重点关注边界值。对通用组件(如分页、筛选)应设计标准化用例进行复用。参考常用测试方法(等价类、边界值、错误推测法)可提升用例有效性,确保全面覆盖各种可能性。
2023-07-06 10:53:18
667
原创 虚拟机无法访问外网的问题
1、宿主机可以ping虚拟机192.168.109.101,且xshell可登录虚拟机192.168.109.101。2、虚拟机IP:192.168.109.101,掩码:255.255.255.0,网关:192.168.109.2。3、虚拟机网络编辑器:网关192.168.109.2,网段192.168.109.0,不启用DHCP。4、VMnet8配置:IP192.168.109.3,掩码255.255.255.0,网关不填。2、虚拟机ping www.baidu.com正常。
2023-04-06 16:30:02
1262
原创 Postgresql 元命令(3)
显示或设置内部参数,例如:\set ECHO_HIDDEN on|off,注意大小写。\set ECHO_HIDDEN on|off,注意大小写。用\a切换到非格式化模式后,可设置字段分隔符。将执行环境的环境变量设置为 psql 变量。普通格式和Html格式切换开关。在格式化和非格式化之间切换。设置输出Html标签的属性。显示或设置客户端编码方式。设置输出Html的属性。\c 数据库名 用户名。
2023-03-23 20:19:03
444
原创 Postgresql 元命令(1)
如果file后带行号,进入编辑模式后光标停留在指定行。保存退出后会自动执行脚本,不保存退出则不会执行脚本。\o输出到文件时,echo不能输出到文件,qecho -n在输出之后不带newline。\o file将查询结果输出到文件,\o恢复输出到stdout。\o输出到文件时,\warn仍然输出到屏幕,不输出到文件。\s显示全部查询历史,\s filename保存到文件。将上一个查询结果的每一个值当作一个 SQL 去执行。将上一个查询结果纵向输出到文件。将上一个查询结果输出到文件。
2023-03-23 19:55:37
473
原创 Postgresql 客户端 psql 的使用
使用-b参数后,执行错误的sql多输出了:psql:sql.file:2: STATEMENT: select current_database1();对于sql文件中的sql命令,每个命令执行完毕后,按回车执行下一条sql,按x加回车中断退出。与-A配合使用,不设置行分隔符,所有行会被连接到一起(之前默认分隔符是newline)–csv参数固定使用逗号分隔符,不能用-F参数指定,不带(n rows)与-A配合使用,不设置字段分隔符,同一条记录的各个字段被连接到一起。使用–csv参数时,-F参数无效。
2023-03-21 11:27:10
1472
原创 Postgresql 的远程登录配置 pg_hba.conf
在pg_hba.conf中添加下面一行配置,对于主机配置(host),允许所有远程主机(0/0),以所有用户身份(all),以密码md5加密的方式(md5),登录所有的库(all)重启数据库服务,使配置生效,或者使用run “pg_ctl reload” 或 “SELECT pg_reload_conf()”type:local记录是本地登录认证规则,host记录是远程主机登录认证规则。此时,可以从远程主机用客户端登录数据库,且需要输入密码。user:认证记录针对的登录用户,all代表全部。
2023-03-20 12:07:03
1849
原创 在 AnolisOS8.2 上用源码编译方式安装 Postgresql15.2
【代码】在 AnolisOS8.2 上用源码编译方式安装 Postgresql15.2。
2023-03-17 15:52:36
783
原创 在Linux下安装Python、iPython、Jupyter Notebook
下载Python源码wget https://www.python.org/ftp/python/3.7.11/Python-3.7.11.tgz解压缩tar -zxvf https://www.python.org/ftp/python/3.7.11/Python-3.7.11.tgz -C 目标路径安装C编译器yum install gcc如果不安装,./configure会报错:configure: error: no acceptable C compiler found in $PAT
2021-11-29 18:21:25
1048
原创 Apache Hudi摘要
Apache Hudi简介特性架构Timeline文件和索引表类型Copy-on-Write表Merge-on-Read表查询类型Snapshot QueryIncremental QueryRead Optimized Query查询引擎简介Hudi是Hadoop Updates and Incrementals的简写,它是由Uber开发并开源的Data Lakes解决方案。特性基于Spark来对HDFS上的数据进行插入、更新、删除、查询操作在HDFS上的流原语:插入更新:使用细粒度的文
2021-03-25 12:06:57
312
2
原创 招聘面试的STAR原则
STAR原则,即Situation(情景)、Task(任务)、Action(行动)和Result(结果)。S,情景,应聘者在所从事岗位期间曾经做过的某件重要的且可以当作我们考评标准的事件所发生的背景。T,任务,应聘者执行的任务与角色,考察该应聘者是否做过其描述的职位及其是否具备该岗位的相应能力。A,行动,应聘者在其所描述的任务当中所担任的角色是如何操作与执行任务的。R,结果,该项任务在行动后所达到的效果。通过这些过程,可以全面了解应聘者的知识、经验、技能的掌握程度以及他的工作风格、性格特点等与工作
2021-03-24 14:25:45
1673
1
原创 拉链表的更新思路
拉链表:t_chain(id, status, start_date, end_date)流水表:t_flow(id, status, start_date)临时拉链表:t_chain_tmp(id, status, start_date, end_date)拉链表的更新思路:1、针对流水表t_flow中start_date是“当日”的记录进行处理2、因为流水表中一个id可能先后有多个状态,先将流水表中非最终状态的记录插入t_chain_tmp,起止日期都是“当日”3、原拉链表.
2021-01-25 16:56:55
772
原创 Nginx将不同域名解析到不同的端口或目录
1、两个域名分别指向不同的端口www.main.com指向80端口sub.main.com指向8000端口2、在nginx.conf中添加server段server { listen 80; server_name www.main.com; location / { proxy_pass http://127.0.0.1; }}server { listen 80; server_name sub.main.com; location / {
2020-09-17 12:01:40
2804
原创 阿里云效代码托管readme文件模板
阿里代码托管readme文件模板https://codeup.aliyun.com/## 项目名称> 请介绍一下你的项目吧 ## 运行条件> 列出运行该项目所必须的条件和相关依赖 * 条件一* 条件二* 条件三## 运行说明> 说明如何运行和使用你的项目,建议给出具体的步骤说明* 操作一* 操作二* 操作三 ## 测试说明> 如果有测试相关内容需要说明,请填写在这里 ## 技术架构> 使用的技术框架或系统架构图等
2020-08-21 15:37:47
516
1
原创 nginx日志 - filebeat - kafka - logstash - elasticsearch - kibana
elasticsearch-7.7.1filebeat-7.7.1-linux-x86_64kafka_2.13-2.5.0kibana-7.7.1-linux-x86_64logstash-7.7.1参照:https://blog.51cto.com/xiangcun168/19335091、安装elasticsearch如果出现max virtual memory areas vm.max_map_count,或者出现 the default discovery settings are
2020-07-16 15:40:03
371
原创 FileBeat7.7读取nginx access.log写入kafka
$ vim filebeat.ymlfilebeat.inputs:- type: log paths: - /usr/local/nginx/logs/access.log fields: log_type: ["ngx_access"] log_topic: ngx-access fields_under_root: true tail_files: truetags: ["ngx"]output.kafka: enabled: true ho
2020-07-09 17:31:34
764
原创 网站收藏
教程类网站sprint-boot: https://www.yiibai.com/spring-boot书栈网:https://www.bookstack.cn
2020-04-07 16:07:13
3782
原创 使用Tornado搭建HTTPS网站
使用Python tornado搭建HTTPS网站生成SSL证书生成服务器端的私钥(key文件)生成CSR文件对客户端也作同样的命令生成key及csr文件CA的签名用生成的CA的证书为刚才生成的server.csr,client.csr文件签名应对Enter PEM pass phrase的提示在Tornado网站中开启HTTPS参考生成SSL证书生成服务器端的私钥(key文件)$ open...
2020-04-07 16:01:00
1360
原创 Spring Boot 之 JPA 和 Controller接收参数
在pom.xml中添加依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependen...
2019-12-20 20:11:22
1265
原创 Spring Boot 之 Log日志输出
application.properties中添加Log配置file会覆盖path配置,root是全局等级,可对类名单独设置输出级别。TRACE < DEBUG < INFO < WARN < ERROR < FATAL# logging.path= logging.file=d:/log/springbootdemo.loglogging.level.roo...
2019-12-20 18:57:43
449
原创 Spring Boot 之 配置文件
创建application.propertiescom.app.title=app titlecom.app.description=this is a app创建配置类prefix = “com.app” 对应到配置文件中。@Data是lombok组件使用的声明,用来省略get/set函数。@Component@Data@ConfigurationProperties(prefi...
2019-12-20 16:49:14
101
原创 Spring Boot 之 lombok
使用lombok省去Bean中Get/Set的声明在pom.xml中添加配置 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true<...
2019-12-20 16:34:43
84
原创 Spring Boot 之 Filter(两种实现方式及过滤顺序的设置)
Spring Boot 之 Filter注释实现入口添加Filter1Filter2Bean实现测试参考注释实现入口添加@ServletComponentScanFilter1@Order(2) // 没有作用,顺序需要用BeanFilter@WebFilter(urlPatterns = {"/*"},filterName = "helloFilter1")public cla...
2019-12-20 11:56:12
556
转载 董卿:把这10个气质传给孩子
坚持阅读古人云:“书中自有黄金屋,书中自有颜如玉。”阅读就像吃饭、睡觉一样,是人的一种生活方式。五谷喂养躯体,书籍滋养精神。多阅读能开拓眼界,提高认知。读书破万卷,下笔如有神。董卿说:“你在读书上花的任何时间,都会在某一时刻给你回报。”许多时候,我们以为读过的书都成了过眼云烟,不复记忆,其实他们仍是潜在的。你读过的书,就在你的气质里,谈吐里,胸襟里,当然也在你的思想文字...
2019-04-03 14:16:29
247
转载 解决子级用css float浮动 而父级div没高度不能自适应高度
http://www.divcss5.com/jiqiao/j612.shtml
2019-04-03 10:54:18
393
转载 多个DIV横向排列,如何让最后一个DIV充满右侧剩余屏幕
左边的DIV设定了固定的宽度,右边的DIV如何自适应地填满剩下的屏幕宽度?浅谈CSS3中display属性的Flex布局
2019-04-03 10:53:06
2017
原创 微信开发获取用户信息和TOKEN的关系
一、通过基础接口token获取用户信息 1、获取token https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 2、获取个人信息(如果不关注公众号,返回“未关注”状态,拉取不到更多信息) https://api.weixin.qq....
2018-08-15 16:39:36
3436
原创 HDFS的文件压缩格式
Hadoop默认支持Gzip和BZip2的解压缩方式,可直接读取(hadoop fs -text命令),但hive只能用TEXTFILE格式的表加载,然后再insertoverwrite 到其他格式的表(比如SEQUENCEFILE表),如果hive其他格式的表想要直接加载压缩格式数据,需要重写INPUTFORMAT和OUTPUTFORMAT文件类。BZip2和LZO(提供block级的压缩)...
2018-08-01 12:43:59
4573
原创 在Ambari中为服务添加主机(更改主机的角色)
为某一个服务添加新的主机或者删除某个主机,或在某个主机上添加或删除服务组件:1、进入Ambari2、Hosts3、找到要变更服务的主机4、在components中可以添加或删除服务...
2018-07-24 17:03:48
1869
原创 Storm中slot数的扩展
在Storm程序中,用下面语句指定同时处理的worker数:conf.setNumWorkers(5); 这个worker数受限于slot数量,一个worker消耗一个slot,当slot全部分配完,就不能再加载新的topology。slot数量是在 supervisor.slots.ports 中设置,每个端口提供一个slot,这样supervisor数量乘以ports数量,就是stor...
2018-07-24 16:56:24
3950
python爬虫抓取易车网汽车品牌
2018-01-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人