首页 文章 精选 留言 我的

精选列表

搜索[在线课堂],共10000篇文章
优秀的个人博客,低调大师

23【在线日志分析】之改造CDH的HDFS的NN,DN进程,日志输出为json格式

1.登录nn机器,进入最新序号的namenode配置文件夹,查看当前的nn的log4j配置 [root@sht-sgmhadoopnn-01 ~]# cd /var/run/cloudera-scm-agent/process/ [root@sht-sgmhadoopnn-01 process]# ls -lrt ....... ....... ....... drwxr-x--x 3 hdfs hdfs 380 Mar 30 20:40 372-hdfs-FAILOVERCONTROLLER drwxr-x--x 3 hdfs hdfs 500 Mar 30 20:40 370-hdfs-NAMENODE drwxr-x--x 3 hdfs hdfs 360 Mar 30 20:40 422-hdfs-FAILOVERCONTROLLER drwxr-x--x 3 hdfs hdfs 480 Mar 30 20:40 420-hdfs-NAMENODE drwxr-x--x 3 yarn hadoop 520 Mar 30 20:40 383-yarn-RESOURCEMANAGER drwxr-x--x 3 mapred hadoop 400 Mar 30 20:40 379-yarn-JOBHISTORY drwxr-x--x 3 mapred hadoop 380 Mar 30 20:40 425-yarn-JOBHISTORY drwxr-x--x 3 yarn hadoop 500 Mar 30 20:40 428-yarn-RESOURCEMANAGER drwxr-x--x 3 root root 180 Mar 31 15:53 359-cluster-host-inspector [root@sht-sgmhadoopnn-01 process]# cd 420-hdfs-NAMENODE[root@sht-sgmhadoopnn-01 420-hdfs-NAMENODE]# cat log4j.properties log.threshold=INFO main.logger=RFA hadoop.root.logger=${log.threshold},${main.logger} log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter log4j.rootLogger=${hadoop.root.logger},EventCounter,EventCatcher log.dir=/var/log/hadoop-hdfs log.file=hadoop-cmf-hdfs-NAMENODE-sht-sgmhadoopnn-01.log.out max.log.file.size=200MB max.log.file.backup.index=10 log4j.appender.RFA=org.apache.log4j.RollingFileAppender log4j.appender.RFA.File=${log.dir}/${log.file} log4j.appender.RFA.layout=org.apache.log4j.PatternLayout log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n log4j.appender.RFA.MaxFileSize=${max.log.file.size} log4j.appender.RFA.MaxBackupIndex=${max.log.file.backup.index} log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.target=System.err log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n ........ ........ 2.仔细分析,log4j.appender.RFA.layout.ConversionPattern 这个参数应该是控制nn进程的日志 3.打开CDH,进HDFS的Configuration界面,搜索"log"关键词, 3.1 找到"NameNode Logging Advanced Configuration Snippet (Safety Valve)",配置 log4j.appender.RFA.layout.ConversionPattern = {"time":"%d{yyyy-MM-dd HH:mm:ss,SSS}","logtype":"%p","loginfo":"%c:%m"}%n 3.2 找到"DataNode Logging Advanced Configuration Snippet (Safety Valve)",也配置 log4j.appender.RFA.layout.ConversionPattern = {"time":"%d{yyyy-MM-dd HH:mm:ss,SSS}","logtype":"%p","loginfo":"%c:%m"}%n 3.3 单击保存3.4 单击Stale Configuration:Restart needed 3.5 Restart Stale Services 3.6 Review Changes,勾选Re-deploy client configuration ,Restart Now 4.检查nn,dn进程的日志输出是否为json格式 4.1 检查新增的参数是否生效 [root@sht-sgmhadoopnn-01 420-hdfs-NAMENODE]# cd ../ [root@sht-sgmhadoopnn-01 process]# ls -lrt ....... ....... ....... drwxr-x--x 3 hdfs hdfs 380 Mar 31 20:32 422-hdfs-FAILOVERCONTROLLER drwxr-x--x 3 hdfs hdfs 360 Mar 31 20:32 439-hdfs-FAILOVERCONTROLLER drwxr-x--x 3 hdfs hdfs 480 Mar 31 20:32 437-hdfs-NAMENODE drwxr-x--x 3 mapred hadoop 400 Mar 31 20:32 425-yarn-JOBHISTORY drwxr-x--x 3 yarn hadoop 520 Mar 31 20:32 428-yarn-RESOURCEMANAGER drwxr-x--x 3 mapred hadoop 380 Mar 31 20:32 442-yarn-JOBHISTORY drwxr-x--x 3 yarn hadoop 500 Mar 31 20:32 445-yarn-RESOURCEMANAGER [root@sht-sgmhadoopnn-01 process]# cd 437-hdfs-NAMENODE [root@sht-sgmhadoopnn-01 437-hdfs-NAMENODE]# cat log4j.properties |grep log4j.appender.RFA.layout.ConversionPattern log4j.appender.RFA.layout.ConversionPattern={"time":"%d{yyyy-MM-dd HH:mm:ss,SSS}","logtype":"%p","loginfo":"%c:%m"}%n [root@sht-sgmhadoopnn-01 437-hdfs-NAMENODE]# 4.2 检查log即可 [root@sht-sgmhadoopnn-01 437-hdfs-NAMENODE]# tail -f /var/log/hadoop-hdfs/hadoop-cmf-hdfs-NAMENODE-sht-sgmhadoopnn-01.log.out {"time":"2017-03-31 20:40:38,588","logtype":"INFO","loginfo":"org.apache.hadoop.hdfs.server.namenode.FSImage:Reading org.apache.hadoop.hdfs.server.namenode.RedundantEditLogInputStream@5c588660 expecting start txid #142520"} {"time":"2017-03-31 20:40:38,588","logtype":"INFO","loginfo":"org.apache.hadoop.hdfs.server.namenode.FSImage:Start loading edits file http://sht-sgmhadoopdn-02:8480/getJournal?jid=nameservice1&segmentTxId=142520&storageInfo=-60%3A1863012361%3A0%3Acluster8, http://sht-sgmhadoopdn-01:8480/getJournal?jid=nameservice1&segmentTxId=142520&storageInfo=-60%3A1863012361%3A0%3Acluster8"} {"time":"2017-03-31 20:40:38,588","logtype":"INFO","loginfo":"org.apache.hadoop.hdfs.server.namenode.EditLogInputStream:Fast-forwarding stream 'http://sht-sgmhadoopdn-02:8480/getJournal?jid=nameservice1&segmentTxId=142520&storageInfo=-60%3A1863012361%3A0%3Acluster8, http://sht-sgmhadoopdn-01:8480/getJournal?jid=nameservice1&segmentTxId=142520&storageInfo=-60%3A1863012361%3A0%3Acluster8' to transaction ID 142520"} {"time":"2017-03-31 20:40:38,588","logtype":"INFO","loginfo":"org.apache.hadoop.hdfs.server.namenode.EditLogInputStream:Fast-forwarding stream 'http://sht-sgmhadoopdn-02:8480/getJournal?jid=nameservice1&segmentTxId=142520&storageInfo=-60%3A1863012361%3A0%3Acluster8' to transaction ID 142520"} 5. 不足,当出现exception换行时,就会整个信息只有第一行为json格式,剩余行为普通输出,那么整个一条信息就不是完整的json的解决方法: 5.1 改造 log4j-xxxx.jar --成本太大 5.2 在flume-ng端的exec source改造,我们采取第二种 5.3 google搜索 log4j json,发现和我一样需求的人很多,有现成的GitHub项目等等

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

04【在线日志分析】之Flume Agent的3台收集+1台聚合到hdfs的搭建

【log收集】:机器名称 服务名称 用户flume-agent-01: namenode hdfsflume-agent-02: datanode hdfsflume-agent-03: datanode hdfs 【log聚合】:机器名称 用户sht-sgmhadoopcm-01(172.16.101.54) root 【sink到hdfs】:hdfs://172.16.101.56:8020/testwjp/ 1.下载apache-flume-1.7.0-bin.tar.gz[hdfs@flume-agent-01 tmp]$ wget http://www-eu.apache.org/dist/flume/1.7.0/apache-flume-1.7.0-bin.tar.gz--2017-01-04 20:40:10-- http://www-eu.apache.org/dist/flume/1.7.0/apache-flume-1.7.0-bin.tar.gzResolving www-eu.apache.org... 88.198.26.2, 2a01:4f8:130:2192::2Connecting to www-eu.apache.org|88.198.26.2|:80... connected.HTTP request sent, awaiting response... 200 OKLength: 55711670 (53M) [application/x-gzip]Saving to: “apache-flume-1.7.0-bin.tar.gz” 100%[===============================================================================================================================================================================================>] 55,711,670 473K/s in 74s 2017-01-04 20:41:25 (733 KB/s) - “apache-flume-1.7.0-bin.tar.gz” saved [55711670/55711670] 2.解压重命名[hdfs@flume-agent-01 tmp]$ [hdfs@flume-agent-01 tmp]$ tar -xzvf apache-flume-1.7.0-bin.tar.gz [hdfs@flume-agent-01 tmp]$ mv apache-flume-1.7.0-bin flume-ng[hdfs@flume-agent-01 tmp]$ cd flume-ng/conf 3.拷贝flume环境配置和agent配置文件[hdfs@flume-agent-01 tmp]$ cp flume-env.sh.template flume-env.sh[hdfs@flume-agent-01 tmp]$ cp flume-conf.properties.template exec_memory_avro.properties 4.添加hdfs用户的环境变量文件[hdfs@flume-agent-01 tmp]$ cd[hdfs@flume-agent-01 ~]$ ls -latotal 24drwxr-xr-x 3 hdfs hadoop 4096 Jul 8 14:05 .drwxr-xr-x. 35 root root 4096 Dec 10 2015 ..-rw------- 1 hdfs hdfs 4471 Jul 8 17:22 .bash_historydrwxrwxrwt 2 hdfs hadoop 4096 Nov 19 2014 cache-rw------- 1 hdfs hdfs 3131 Jul 8 14:05 .viminfo[hdfs@flume-agent-01 ~]$ cp /etc/skel/.* ./cp: omitting directory `/etc/skel/.'cp: omitting directory `/etc/skel/..'[hdfs@flume-agent-01 ~]$ ls -latotal 36drwxr-xr-x 3 hdfs hadoop 4096 Jan 4 20:49 .drwxr-xr-x. 35 root root 4096 Dec 10 2015 ..-rw------- 1 hdfs hdfs 4471 Jul 8 17:22 .bash_history-rw-r--r-- 1 hdfs hdfs 18 Jan 4 20:49 .bash_logout-rw-r--r-- 1 hdfs hdfs 176 Jan 4 20:49 .bash_profile-rw-r--r-- 1 hdfs hdfs 124 Jan 4 20:49 .bashrcdrwxrwxrwt 2 hdfs hadoop 4096 Nov 19 2014 cache-rw------- 1 hdfs hdfs 3131 Jul 8 14:05 .viminfo 5.添加flume的环境变量[hdfs@flume-agent-01 ~]$ vi .bash_profile export FLUME_HOME=/tmp/flume-ngexport FLUME_CONF_DIR=$FLUME_HOME/confexport PATH=$PATH:$FLUME_HOME/bin[hdfs@flume-agent-01 ~]$ . .bash_profile 6.修改flume环境配置文件[hdfs@flume-agent-01 conf]$ vi flume-env.shexport JAVA_HOME=/usr/java/jdk1.7.0_25 7.将基于Flume-ng Exec Source开发自定义插件AdvancedExecSource的AdvancedExecSource.jar包上传到$FLUME_HOME/lib/http://blog.itpub.net/30089851/viewspace-2131995/ [hdfs@LogshedNameNodeLogcollector lib]$ pwd/tmp/flume-ng/lib[hdfs@LogshedNameNodeLogcollector lib]$ ll AdvancedExecSource.jar -rw-r--r-- 1 hdfs hdfs 10618 Jan 5 23:50 AdvancedExecSource.jar[hdfs@LogshedNameNodeLogcollector lib]$ 8.修改flume的agent配置文件[hdfs@flume-agent-01 conf]$ vi exec_memory_avro.properties# Name the components on this agenta1.sources = r1a1.sinks = k1a1.channels = c1 # Describe/configure the custom exec sourcea1.sources.r1.type = com.onlinelog.analysis.AdvancedExecSourcea1.sources.r1.command = tail -f /var/log/hadoop-hdfs/hadoop-cmf-hdfs1-NAMENODE-flume-agent-01.log.outa1.sources.r1.hostname = flume-agent-01a1.sources.r1.servicename = namenode # Describe the sinka1.sinks.k1.type = avroa1.sinks.k1.hostname = 172.16.101.54a1.sinks.k1.port = 4545 # Use a channel which buffers events in memorya1.channels.c1.type = memorya1.channels.c1.keep-alive = 60 a1.channels.c1.capacity = 1000000a1.channels.c1.transactionCapacity = 2000 # Bind the source and sink to the channela1.sources.r1.channels = c1a1.sinks.k1.channel = c1 9.将flume-agent-01的flume-ng打包,scp到flume-agent-02/03 和 sht-sgmhadoopcm-01(172.16.101.54)[hdfs@flume-agent-01 tmp]$ zip -r flume-ng.zip flume-ng/* [jpwu@flume-agent-01 ~]$ scp /tmp/flume-ng.zip flume-agent-02:/tmp/[jpwu@flume-agent-01 ~]$ scp /tmp/flume-ng.zip flume-agent-03:/tmp/[jpwu@flume-agent-01 ~]$ scp /tmp/flume-ng.zip sht-sgmhadoopcm-01:/tmp/ 10.在flume-agent-02配置hdfs用户环境变量和解压,修改agent配置文件[hdfs@flume-agent-02 ~]$ cp /etc/skel/.* ./cp: omitting directory `/etc/skel/.'cp: omitting directory `/etc/skel/..'[hdfs@flume-agent-02 ~]$ vi .bash_profileexport FLUME_HOME=/tmp/flume-ngexport FLUME_CONF_DIR=$FLUME_HOME/confexport PATH=$PATH:$FLUME_HOME/bin[hdfs@flume-agent-02 ~]$ . .bash_profile [hdfs@flume-agent-02 tmp]$ unzip flume-ng.zip[hdfs@flume-agent-02 tmp]$ cd flume-ng/conf ##修改以下参数即可[hdfs@flume-agent-02 conf]$ vi exec_memory_avro.propertiesa1.sources.r1.command = tail -f /var/log/hadoop-hdfs/hadoop-cmf-hdfs1-DATANODE-flume-agent-02.log.outa1.sources.r1.hostname = flume-agent-02a1.sources.r1.servicename = datanode ###要检查flume-env.sh的JAVA_HOME目录是否存在 11.在flume-agent-03配置hdfs用户环境变量和解压,修改agent配置文件[hdfs@flume-agent-03 ~]$ cp /etc/skel/.* ./cp: omitting directory `/etc/skel/.'cp: omitting directory `/etc/skel/..'[hdfs@flume-agent-03 ~]$ vi .bash_profileexport FLUME_HOME=/tmp/flume-ngexport FLUME_CONF_DIR=$FLUME_HOME/confexport PATH=$PATH:$FLUME_HOME/bin[hdfs@flume-agent-03 ~]$ . .bash_profile [hdfs@flume-agent-03 tmp]$ unzip flume-ng.zip[hdfs@flume-agent-03 tmp]$ cd flume-ng/conf ##修改以下参数即可[hdfs@flume-agent-03 conf]$ vi exec_memory_avro.propertiesa1.sources.r1.command = tail -f /var/log/hadoop-hdfs/hadoop-cmf-hdfs1-DATANODE-flume-agent-03.log.outa1.sources.r1.hostname = flume-agent-03a1.sources.r1.servicename = datanode ###要检查flume-env.sh的JAVA_HOME目录是否存在 12.聚合端 sht-sgmhadoopcm-01,配置root用户环境变量和解压,修改agent配置文件[root@sht-sgmhadoopcm-01 tmp]# vi /etc/profileexport JAVA_HOME=/usr/java/jdk1.7.0_67-clouderaexport FLUME_HOME=/tmp/flume-ngexport FLUME_CONF_DIR=$FLUME_HOME/conf export PATH=$FLUME_HOME/bin:$JAVA_HOME/bin:$PATH[root@sht-sgmhadoopcm-01 tmp]# source /etc/profile[root@sht-sgmhadoopcm-01 tmp]# [root@sht-sgmhadoopcm-01 tmp]# unzip flume-ng.zip[root@sht-sgmhadoopcm-01 tmp]# cd flume-ng/conf [root@sht-sgmhadoopcm-01 conf]# vi flume-env.shexport JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera ###测试: 先聚合, sink到hdfs端[root@sht-sgmhadoopcm-01 conf]# vi avro_memory_hdfs.properties# Name the components on this agenta1.sources = r1a1.sinks = k1a1.channels = c1 # Describe/configure the sourcea1.sources.r1.type = avroa1.sources.r1.bind = 172.16.101.54a1.sources.r1.port = 4545 # Describe the sinka1.sinks.k1.type = hdfsa1.sinks.k1.hdfs.path = hdfs://172.16.101.56:8020/testwjp/a1.sinks.k1.hdfs.filePrefix = logsa1.sinks.k1.hdfs.inUsePrefix = . a1.sinks.k1.hdfs.rollInterval = 0### roll 16 m = 16777216 bytesa1.sinks.k1.hdfs.rollSize = 1048576a1.sinks.k1.hdfs.rollCount = 0a1.sinks.k1.hdfs.batchSize = 6000 a1.sinks.k1.hdfs.writeFormat = texta1.sinks.k1.hdfs.fileType = DataStream # Use a channel which buffers events in memorya1.channels.c1.type = memorya1.channels.c1.keep-alive = 90 a1.channels.c1.capacity = 1000000a1.channels.c1.transactionCapacity = 6000 # Bind the source and sink to the channela1.sources.r1.channels = c1a1.sinks.k1.channel = c1 13.后台启动[root@sht-sgmhadoopcm-01 flume-ng]# source /etc/profile[hdfs@flume-agent-01 flume-ng]$ . ~/.bash_profile [hdfs@flume-agent-02 flume-ng]$ . ~/.bash_profile [hdfs@flume-agent-03 flume-ng]$ . ~/.bash_profile [root@sht-sgmhadoopnn-01 flume-ng]# nohup flume-ng agent -c conf -f /tmp/flume-ng/conf/avro_memory_hdfs.properties -n a1 -Dflume.root.logger=INFO,console & [hdfs@flume-agent-01 flume-ng]$ nohup flume-ng agent -c /tmp/flume-ng/conf -f /tmp/flume-ng/conf/exec_memory_avro.properties -n a1 -Dflume.root.logger=INFO,console &[hdfs@flume-agent-01 flume-ng]$ nohup flume-ng agent -c /tmp/flume-ng/conf -f /tmp/flume-ng/conf/exec_memory_avro.properties -n a1 -Dflume.root.logger=INFO,console &[hdfs@flume-agent-01 flume-ng]$ nohup flume-ng agent -c /tmp/flume-ng/conf -f /tmp/flume-ng/conf/exec_memory_avro.properties -n a1 -Dflume.root.logger=INFO,console &14.校验:将集群的日志下载到本地,打开查看即可(略) ------------------------------------------------------------------------------------------------------------------------------------------------ 【备注】: 1.错误1 flume-ng安装的机器上没有hadoop环境,所以假如sink到hdfs话,需要用到hdfs的jar包[ERROR - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:146)] Failed to start agent because dependencies were not found in classpath. Error follows.java.lang.NoClassDefFoundError: org/apache/hadoop/io/SequenceFile$CompressionType 只需在其他安装hadoop机器上搜索以下5个jar包,拷贝到$FLUME_HOME/lib目录即可。搜索方法: find $HADOOP_HOME/ -name commons-configuration*.jar commons-configuration-1.6.jarhadoop-auth-2.7.3.jarhadoop-common-2.7.3.jarhadoop-hdfs-2.7.3.jarhadoop-mapreduce-client-core-2.7.3.jarprotobuf-java-2.5.0.jarhtrace-core-3.1.0-incubating.jarcommons-io-2.4.jar 2.错误2 无法加载自定义插件的类 Unable to load source type: com.onlinelog.analysis.AdvancedExecSource2017-01-06 21:10:48,278 (conf-file-poller-0) [ERROR - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:142)] Failed to load configuration data. Exception follows.org.apache.flume.FlumeException: Unable to load source type: com.onlinelog.analysis.AdvancedExecSource, class: com.onlinelog.analysis.AdvancedExecSource 执行hdfs或者root用户的环境变量即可[root@sht-sgmhadoopcm-01 flume-ng]# source /etc/profile[hdfs@flume-agent-01 flume-ng]$ . ~/.bash_profile [hdfs@flume-agent-02 flume-ng]$ . ~/.bash_profile [hdfs@flume-agent-03 flume-ng]$ . ~/.bash_profile

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

VER.2.2.35-202600923-RS 最新版已经发布 -- 企业级在线文档编辑解决方案

各位开发者们: 由于最近家里有事,新版本发布滞后,在这里表示深感歉意V2.2.33-202600921-RS已经发布,更新内容如下: 关于docx 重构:主UI重做,使用全新的Ribbon风格 新增:段落新增右键菜单,表格新增右键菜单,段落手柄操作,符合办公软件的操作习惯。 优化:搜索与替换,修改为搜索列表+高亮,点击跳转选择项 修复: 书签功能插入没有反应,没有解析书签,书签无法跳转等问题。 优化:修改echarts图表框架为chartjs,依赖更轻。 优化:重新设计页眉页脚 修复: 缩放,适应页面,适应宽度,标尺位置不正确的问题 修复:行距失效的问题 修复:编辑器没有处理悬挂缩进的问题 新增国际化,支持简体中文,繁体中文,日语,韩语,英语 修复点击导出按钮没有反应的问题 关于docx-lite 渲染使用全新核心,UI无改动 关于excel: 重构:主UI重做,使用全新的Ribbon风格 更多的其他更新请访问官网 核心API文档及UI开发者文档,将于2026年09月22日更新发布,感谢各位开发者的支持。 PS.因项目本身繁杂,涉及功能模块较多,在改动较多的前提下,可能会导致一部分功能不可用或者问题回归(修复2修复了2.2.33的某个问题),请多多包容,关于使用上的意见或者建议都可以告诉我。作者第一时间处理。 自2.2.35版本开始API趋于稳定,且将来支持的形状等新增功能会在保存,导入,导出实现向下兼容。请放心使用

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

技嘉雕妹显卡上架:颜值实力皆在线,二次元装机玩家优选

技嘉 AORUS GeForce RTX 5060 ARI 8G雕妹定制版显卡近日正式在电商平台开售,首发定价 4099 元。作为技嘉原创二次元形象 ,雕妹首次出现于技嘉显卡产品线,为喜爱二次元的DIY用户带来了全新的选择。 性能层面,它搭载 RTX 5060 核心与 8GB GDDR7 显存,出厂核心频率达 2722MHz,高于公版默认的 2497MHz,开箱即用便是 “出厂超频” 状态。配合 Blackwell 架构下的 DLSS 4.5 多帧生成,在 1080p 至 2K 分辨率下,主流 3A 大作与电竞网游都能流畅驾驭。 散热方面,三风扇风之力系统搭配仿生风扇与服务器级导热凝胶,高负载下也能稳住温度;双 BIOS 支持性能与静音一键切换。外观上,白色机身缀以橙色元素,风扇中心与金属背板均印有雕妹形象,支持 1670 万色 RGB 灯效同步,在侧透机箱里辨识度十足。 雕妹显卡采用金属强化背板与 PCB 防护涂层为长期使用的耐用性兜底,购机后在官方小程序注册还可享四年质保,同时支持个人送保,在同类型产品中相当省心。 值得一提的是,技嘉同步开启了 "雕妹板卡首发特典" 活动。即日起至 9 月 30 日,在京东等指定店铺购买雕妹显卡后,通过技嘉官方小程序「AORUS 俱乐部」完成产品绑定,即可申请首发特典礼品 —— 雕妹绒毯(共 100 份,先到先得);前 20 名申请者还可额外获赠睡衣雕妹礼包,内含雕妹吨吨杯与睡衣雕妹鼠标垫。 如果你正在组一台兼顾性能与个性化的中端主机,这款卡值得放进购物车 —— 它适合既要流畅游戏、又不愿随大流的玩家。从主板到显卡,技嘉正一步步把 “雕妹” 这一IP形象带入玩家的桌面。除了硬核的硬件性能之外,还能再多出一份陪伴的温度,这或许正是技嘉想传递的态度:让产品不止于参数,让每一次点亮机箱,都多一分属于玩家的陪伴。

资源下载

更多资源
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文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册