尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Hadoop2集群搭建实战:从规划配置到YARN与Spark衔接
我第一次动手搭分布式环境的时候用的就是Hadoop2。当时网上教程不少但大多数是照着抄配置、敲命令出了问题没人告诉你为什么。后来陆陆续续帮同事排过不少坑自己也重装过好几遍才慢慢把每个参数背后的逻辑理清楚。这篇文章就围绕Hadoop2集群搭建这件事把从规划、安装、配置到跑通第一个MapReduce作业的完整过程写出来重点关注那些文档里不写、但你真的会踩的坑。后面还会顺带聊一下Spark集群搭建时怎么直接复用这套Hadoop2底座希望对正在入门大数据或者准备在公司内网搭一套测试集群的同学有点帮助。1. 项目概述与整体思路1.1 Hadoop2解决的是什么问题Hadoop2本质上是一套分布式基础架构核心由两大块组成HDFS负责存储YARN负责计算调度。HDFS把大文件切块分散到多台机器上解决了单机磁盘装不下、文件大了读写慢的问题YARN把CPU和内存资源统一管理起来解决了多个计算框架抢占资源的问题。这两块加起来就等于用一堆普通的服务器拼出了一个既能存海量数据、又能跑大规模计算的“超级计算机”。Hadoop2和Hadoop1最大的区别就是引入了YARN。Hadoop1里的MapReduce既要做计算又要管资源所有作业挤在一块儿调度效率低而且除了MapReduce之外别的计算框架根本没法用。Hadoop2把资源管理和计算框架解耦之后MapReduce只是YARN上的一个客户端Spark、Flink这些框架也都能跑在同一个集群上。这也是为什么很多公司即使现在不用MapReduce了底层HDFS和YARN仍然留着因为Spark集群搭建基本都是选择“on YARN”模式直接复用这一套资源池。1.2 为什么用三台机器而不是一台学习阶段完全可以在单机上跑伪分布式也就是一个进程模拟所有角色但这样学不到集群的真实协作逻辑。我强烈建议至少准备三台虚拟机或物理机一台做Master节点两台做Worker节点。三台是最低配的真实集群既能看清主节点是怎么调度、怎么存储元数据的也能看到数据切块后是如何分布到多台机器上的。生产环境里节点会更多角色也会拆分得更细比如NameNode和ResourceManager分到不同机器SecondaryNameNode单独放一台还会考虑机架感知、NameNode HA高可用这些。但初次搭建所有Master侧的角色放一台机器完全够用先跑通链路再谈优化。1.3 选择Hadoop2.x版本的原因现在Hadoop3.x也出了几年了但我仍然建议入门从Hadoop2开始有三个原因第一Hadoop2的资料极其丰富踩过坑的人多遇到问题基本都能搜到答案第二很多公司的存量集群仍然是2.x学会2.x可以直接上手维护第三Hadoop2到Hadoop3的核心原理没有本质变化只是增加了一堆新特性比如HDFS纠删码、多NameNode联邦你先把2.x吃透再去迁移3.x也不费劲。我常用的是Apache Hadoop 2.10.2这个版本2.x系列的最后一个版本Bug修复比较全兼容性也稳定。如果你手头有2.7.x或2.9.x的安装包也没问题配置原理是一样的版本号不同不影响本文阅读。2. 集群规划与前置准备2.1 节点规划与角色分配以三台虚拟机为例我习惯这样规划Master节点同时承担NameNode、ResourceManager、SecondaryNameNode三个角色两台Worker节点各承担DataNode和NodeManager。SecondaryNameNode在严格的生产环境里不该和NameNode放同一台机器因为它的作用是定期合并NameNode的编辑日志如果NameNode所在机器宕机SecondaryNameNode也一起挂了就失去了备份意义。但学习环境资源有限放一起能少占一台机器等以后再拆开。主机名IP示例角色用途hadoop-master192.168.1.101NameNode、ResourceManager、SecondaryNameNode管理元数据、资源调度hadoop-node01192.168.1.102DataNode、NodeManager数据存储、任务执行hadoop-node02192.168.1.103DataNode、NodeManager数据存储、任务执行主机名最好提前改成带语义的名字比如hadoop-master、hadoop-node01不要用默认的localhost或者一堆随机字符串。因为集群里所有节点互相通信是通过主机名映射IP的后面配置里到处都要写主机名名字起好了排错时一眼就能看出来是哪台机器。2.2 虚拟机的硬件与网络配置建议这三台虚拟机建议每台至少2GB内存、2个CPU核磁盘按需分配系统盘之外最好单独挂一块数据盘。HDFS的目录可以专门放到数据盘上避免系统日志、HDFS数据、临时文件挤在同一个根分区把磁盘写满。网络方面虚拟机采用桥接或仅主机模式都可以关键是三台机器要能互通而且IP要固定下来不要用DHCP动态分配。你想象一下NameNode记录的DataNode地址经常变化那集群稳定性肯定就没法保证。还有个很常见的坑如果你用VMware克隆虚拟机克隆出来的系统里网卡MAC地址、主机名可能还是会沿用原来的一定要分别检查/etc/hostname、/etc/sysconfig/network-scripts/ifcfg-eth0这些文件把MAC和IP改成正确的否则配置了半天网络不通全在做无用功。2.3 系统初始化三板斧JDK、免密、时间同步安装Hadoop前先把系统环境收拾利索。我总结为三板斧装JDK、配SSH免密、开时间同步。第一是JDK。Hadoop2对JDK8的支持最稳定我用的是Oracle JDK 1.8或者OpenJDK 8都可以。注意Hadoop的启动脚本依赖JAVA_HOME环境变量最好在/etc/profile里写死并且所有节点保持一致。cat /etc/profile EOF export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk export PATH\$JAVA_HOME/bin:\$PATH EOF source /etc/profile java -version第二是SSH免密。Hadoop的Master节点要通过SSH登录到所有Worker节点去拉起或者停掉DataNode进程所以需要配置SSH免密钥登录。建议从master上生成密钥然后拷贝到所有节点包括自己。不要小看这一条很多同学跑start-dfs.sh时明明看到脚本在执行但DataNode起不来日志里一堆Permission denied就是这里没配好。ssh-keygen -t rsa -P -f ~/.ssh/id_rsa ssh-copy-id hadoop-master ssh-copy-id hadoop-node01 ssh-copy-id hadoop-node02第三是时间同步。分布式系统里各个节点的时间不一致会导致心跳判断异常、任务超时等莫名其妙的问题。内网环境没有NTP服务器的话选一台机器做时间源其他机器手动同步也行简单点直接在Master上搭个ntpd服务或者至少用crontab定时执行ntpdate和时间源对齐。这一步是很多人忽略的但我觉得它比某些参数配置还关键时间错乱了排查起来特别费劲。3. Hadoop2安装与核心配置3.1 安装目录与文件布局把下载好的hadoop安装包解压到统一目录我一般放在/usr/local/hadoop或者/opt/hadoop。为了便于升级和回滚建议保留版本号目录然后做一个软链接比如把hadoop-2.10.2软链到/usr/local/hadoop。这样以后切换版本只改软链接不用到处改配置。同时把Hadoop的bin和sbin目录加入PATH这样不用每次敲全路径。tar zxvf hadoop-2.10.2.tar.gz -C /usr/local/ ln -s /usr/local/hadoop-2.10.2 /usr/local/hadoop echo export HADOOP_HOME/usr/local/hadoop /etc/profile echo export PATH$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH /etc/profile source /etc/profileHadoop2的配置文件都在$HADOOP_HOME/etc/hadoop/目录下。核心需要改的有5个文件hadoop-env.sh、core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml另外还要维护一个slaves文件Hadoop3里改名叫workers里面列出所有Worker节点的主机名。3.2 逐文件拆解核心配置参数先看hadoop-env.sh这里面主要改JDK路径和JVM内存。Hadoop默认的JVM堆内存很小NameNode管理元数据、ResourceManager管理调度都需要内存不够用会导致频繁Full GC甚至进程直接退出。在文件里加上export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk export HADOOP_HEAPSIZE1024 export HADOOP_OPTS-Djava.library.path$HADOOP_HOME/lib/nativeHADOOP_HEAPSIZE控制的是NameNode和ResourceManager这类Hadoop守护进程的默认堆大小学习环境1024MB就够了机器内存够大你改成2048也行。一定要改否则默认只有几百MB启动个几天日志一堆OOM。然后是core-site.xml它设置集群的默认文件系统地址和临时目录configuration property namefs.defaultFS/name valuehdfs://hadoop-master:9000/value /property property namehadoop.tmp.dir/name value/data/hadoop/tmp/value /property /configurationfs.defaultFS是整个HDFS的入口地址客户端读写文件全靠它找到NameNode。hadoop.tmp.dir是Hadoop运行时的基础临时目录NameNode和DataNode的元数据默认都是放在它下面的子目录里。这个目录一定要提前建好并且配置到非根分区否则默认放/tmp下系统一清理作业数据就全没了这是血的教训。接着hdfs-site.xml主要设置NameNode和DataNode的数据存储路径以及副本数configuration property namedfs.namenode.name.dir/name value/data/hadoop/dfs/name/value /property property namedfs.datanode.data.dir/name value/data/hadoop/dfs/data/value /property property namedfs.replication/name value2/value /property property namedfs.permissions.enabled/name valuefalse/value /property /configurationdfs.replication三台机器我习惯设成2因为如果设成3三台机器各存一份确实能保证任何一台挂了数据不丢但对学习环境来说太浪费空间。生产环境至少3份起步这是HDFS保证数据可靠性的基础。dfs.permissions.enabled我学习时一般关掉省得权限问题阻碍你跑通流程但生产环境必须打开否则任何用户都能删数据不设防的分布式文件系统太危险。然后yarn-site.xml这是Hadoop2里最关键也最容易配错的文件configuration property nameyarn.resourcemanager.hostname/name valuehadoop-master/value /property property nameyarn.nodemanager.aux-services/name valuemapreduce_shuffle/value /property property nameyarn.nodemanager.aux-services.mapreduce_shuffle.class/name valueorg.apache.hadoop.mapred.ShuffleHandler/value /property property nameyarn.nodemanager.resource.memory-mb/name value1536/value /property property nameyarn.nodemanager.resource.cpu-vcores/name value2/value /property /configurationyarn.resourcemanager.hostname不用多解释就是指定ResourceManager跑在哪台机器上。aux-services这里是最容易忘的很多同学MapReduce提交后卡在Shuffle阶段就是因为没有配置mapreduce_shuffle服务。可以这么理解MapTask处理完中间结果后ReduceTask需要跨节点拉取数据这个数据转移动作是由NodeManager上的辅助服务承担的你不告诉它启用哪个辅助服务Shuffle就根本跑不起来。yarn.nodemanager.resource.memory-mb决定每台Worker节点向YARN贡献多少内存默认是8192MB如果你的虚拟机只有2GB内存不调小的话NodeManager会因为申请不到足够物理内存而启动失败。mapred-site.xml默认不存在需要从模板复制一份cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml里面最核心的是告诉MapReduce框架用YARN来调度configuration property namemapreduce.framework.name/name valueyarn/value /property property namemapreduce.map.memory.mb/name value512/value /property property namemapreduce.reduce.memory.mb/name value512/value /property /configuration如果不设置mapreduce.framework.nameMapReduce默认会在本地运行作业提交到HDFS上不仅跑不出分布式效果还会报各种找不到TaskTracker的错误。内存相关两个参数是给每个Map/Reduce任务分配的容器内存要结合上面yarn.nodemanager.resource.memory-mb来规划比如NodeManager总共贡献1536MB那同时最多只能跑3个512MB的容器任务超了就排队等资源。最后是slaves文件把Worker节点主机名写进去一行一个注意不要写Master自己hadoop-node01 hadoop-node02配置全部改完后用scp或者rsync把整个/usr/local/hadoop目录同步到另外两台节点同时把/etc/profile里的环境变量也同步过去。配置文件、安装包、脚本必须三台机器保持完全一致集群运行才能步调一致。3.3 格式化NameNode启动集群首次启动之前必须执行一次格式化命令给NameNode初始化元数据目录hdfs namenode -format这一步会在/data/hadoop/dfs/name/current/下生成VERSION文件里面保存了该文件系统的namespaceID和clusterID。格式化操作本身很简单但很多人后续遇到DataNode起不来都是因为重复执行了格式化。第一次格式化没问题第二、第三次格式化之后NameNode会生成一个新的clusterID而DataNode的数据目录里还保留着老的clusterID两边对不上就互相不认。所以格式化前一定要想清楚到底是不是第一次部署。启动顺序也有讲究。先启动HDFS再启动YARN我习惯分开执行start-dfs.sh start-yarn.sh执行完start-dfs.sh后Master会通过SSH自动连到slaves文件里的节点去启动DataNode所以前面配置SSH免密才那么重要。启动过程中终端会滚动打印每台节点的启动日志注意看有没有ERROR字样。如果一切顺利jps命令能看到所有关键进程。4. 验证集群与跑通第一个作业4.1 通过jps和Web界面确认集群状态集群启动后先在所有节点上执行jps这是最简单直观的进程检查方式。在Master节点上应该看到至少4个进程NameNode、SecondaryNameNode、ResourceManager以及因为Master自己也装了完整包而可能被启动的DataNode/NodeManager。Worker节点上应该看到DataNode和NodeManager两个进程。登录Hadoop自带的Web界面验证集群状态更直观。Hadoop2的NameNode管理界面地址是http://hadoop-master:50070这里能看到整个集群的存储容量、DataNode列表、文件目录树。YARN的资源管理界面是http://hadoop-master:8088/cluster这里能看到集群总内存、活跃节点数量以及正在运行和已经完成的任务列表。这两个地址是你后续排错最重要的入口端口号要记牢Hadoop2和Hadoop3不太一样Hadoop3里NameNode默认端口变成了9870别搞混了。4.2 用命令行快速上手HDFS常用操作HDFS的命令行操作和Linux命令几乎一一对应上手很快。先建目录再上传文件然后看看数据被切成几块分布在哪些节点上hdfs dfs -mkdir -p /test/input hdfs dfs -put /etc/hosts /test/input/ hdfs dfs -ls /test/input/如果你想更直观地看到数据块分布可以执行hdfs fsck /test/input/hosts -files -blocks -locations命令会列出文件块编号、块大小以及每个块的副本被放在哪台DataNode上。我记得我第一次跑这个命令的时候才真正理解了什么叫“分布式存储”——一个只有几十KB的hosts文件也被切成一块默认128MB的块大小对于小文件来说就是浪费实际生产里文件数量和块大小这把尺子要平衡好小文件场景就得考虑把块调小。从HDFS下载文件到本地就是反着的操作hdfs dfs -get /test/input/hosts /tmp/hosts_from_hdfs4.3 提交经典WordCount作业Hadoop2自带MapReduce示例不用自己写代码就能勺一遍完整流程。示例JAR包在$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.2.jar里面包含WordCount、PI估算、排序等经典程序。hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.2.jar wordcount /test/input /test/output作业提交后YARN Web界面里就能看到一个新的Application状态从ACCEPTED变成RUNNING最后变成FINISHED。终端会打印整个作业的执行过程包括Map输入输出记录数、Reduce输入输出记录数以及每一步耗时。如果看到类似Map input recordsxx和Reduce output recordsxx这样的计数就说明你的第一个分布式作业已经跑通了。跑完以后查看输出结果hdfs dfs -cat /test/output/part-r-00000你会在输出文件里看到按单词统计的次数。这里有个细节MapReduce的输出目录必须预先不存在否则作业直接报错Output directory hdfs://... already exists这是框架防止覆盖结果的设计如果你想重新跑要么换个输出目录要么用hdfs dfs -rm -r把老目录删掉。5. 常见问题与排查实录5.1 DataNode起不来日志提示clusterID不匹配这是新手搭建Hadoop2集群时遇到最多的问题。现象是start-dfs.sh执行完了Master上NameNode正常但Worker节点上的DataNode进程一直退出去$HADOOP_HOME/logs/hadoop-hadoop-datanode-hadoop-node01.log里翻日志会看到类似The clusterID ... doesnt match ...的报错。原因我在前面格式化那一段已经说过就是你重复执行了hdfs namenode -format导致NameNode的clusterID变了而DataNode数据目录里还是旧的clusterID。解决办法分两种情况如果集群里没有重要数据那就把DataNode的/data/hadoop/dfs/data目录清空重启DataNode让它重新注册如果集群里有数据那就需要把NameNode的/data/hadoop/dfs/name/current/VERSION里的clusterID同步到DataNode的对应VERSION文件里但这条路操作起来比较复杂新手我不建议去改。我个人的建议是确认是测试环境就直接清DataNode目录别心疼那点数据把流程跑通比保留测试数据重要得多。5.2 集群一直处于安全模式上传文件失败NameNode启动后默认会进入安全模式。安全模式本质上是HDFS的“只读保护模式”启动期间NameNode需要接收所有DataNode的块上报确认副本率达到了阈值才会自动退出安全模式。如果你的集群刚启动就去上传文件经常会看到Name node is in safe mode的报错这是正常的等个半分钟到一分钟再试就好。但如果等了很久还在安全模式那就说明可能有DataNode掉线、副本数不足或者dfs.replication设的太高导致副本率达不到99.99%的阈值。排查优先级是jps看DataNode进程在不在hdfs dfsadmin -report看各节点状态然后再看日志。学习环境下比较省事的操作是手动退出安全模式hdfs dfsadmin -safemode leave但要注意这只是临时解决问题如果底层原因DataNode不健康没排除过段时间可能又自动进安全模式了。5.3 作业提交后一直等待不开始执行有的同学跑WordCount看到终端卡在INFO mapreduce.Job: Running job...好几分钟不动Web界面里任务状态是ACCEPTED或RUNNING但没有任何Container启动大概率就是资源问题。虚拟机总内存一共2GB你给NodeManager分配了1536MB还要给系统其他进程留内存实际可用资源很小作业虽然提交了但YARN始终分配不出一个容器来执行任务只能一直排队。解决思路是降低单任务内存需求或者提高NodeManager资源配额但这两者是矛盾的核心是让规划符合物理机实际。我拿2GB内存的虚拟机举例把yarn.nodemanager.resource.memory-mb设成1024MBmapreduce.map.memory.mb和mapreduce.reduce.memory.mb各设成256MB这样最多同时能跑4个容器任务虽然每个任务内存小一点但学习WordCount这种小数据量的场景完全够用。5.4 Web界面打不开防火墙和地址配置Master节点的50070和8088端口在浏览器里访问不了先查防火墙。有些系统默认开着firewalld直接把进程拒之门外简单粗暴的方法是systemctl stop firewalld systemctl disable firewalld如果是云服务器还需要在安全组里放行这两个端口。另外确认浏览器访问的地址到底是不是Master节点的IP很多同学在Windows本机浏览器里访问的是虚拟机里那台机器的hostname解析不到IP自然就白搭。5.5 常见问题速查表现象大概率原因处理建议DataNode进程反复退出clusterID不一致或数据目录权限不对清空DataNode数据目录确认目录owner启动后临时目录找不到hadoop.tmp.dir未提前创建手动创建目录并设置权限作业卡在Shuffleyarn-site.xml缺少mapreduce_shuffle服务补上aux-services配置并重启YARN上传文件报端口9000拒绝fs.defaultFS主机名解析失败检查所有节点/etc/hosts配置节点间SSH执行失败免密未配置成功重新ssh-copy-id手动ssh验证NameNode内存溢出HADOOP_HEAPSIZE太小调大JVM堆内存重启NameNode排错这件事我的经验是永远先看日志。Hadoop日志文件分散在各节点$HADOOP_HOME/logs/下日志文件命名规则是hadoop-用户名-进程名-主机名.log用tail -200去看最新日志比瞎猜配置有效得多。另外hdfs dfsadmin -report、yarn node -list、hadoop job -status这几个命令堪称诊断三连配合起来能快速定位大多数问题。6. 从Hadoop2到Spark集群搭建的衔接6.1 复用一个资源池的两种思路Hadoop2集群的价值并不仅仅在于跑MapReduceYARN把资源管控做好之后Spark这类新一代计算框架可以直接跑来共享同一套HDFS存储和YARN资源池。搭建Spark集群有两种主流思路第一种是Spark Standalone模式Spark自己管资源不依赖YARN优点是部署简单缺点是同一批机器如果同时跑MapReduce就各管各的资源配置容易冲突第二种是Spark on YARN把Spark应用当作YARN上的一个Application提交资源由YARN统一调度这也是生产环境里最常见的部署方式。如果你已经按照前面步骤把Hadoop2集群搭好了做Spark on YARN就非常顺本质上只需要准备Spark客户端配置里面指向Hadoop的HDFS地址和YARN地址即可。6.2 五步完成Spark on YARN的基础搭建第一步下载对应Hadoop2版本的Spark安装包比如spark-2.4.8-bin-hadoop2.7.tgz注意包名里带hadoop2.7就表示预编译时兼容Hadoop2.x不要下错了版本。第二步解压到/usr/local/spark然后编辑conf/spark-env.sh设置两个关键项export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk export HADOOP_CONF_DIR/usr/local/hadoop/etc/hadoop第三步把所有Spark的配置目录同步到集群所有节点Spark的Worker进程会从Hadoop的配置里自动识别fs.defaultFS和yarn.resourcemanager.hostname所以你不需要在Spark里重复配HDFS地址。第四步直接提交一个Spark任务测试比如跑Spark官方自带的Pi示例/usr/local/spark/bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode cluster \ /usr/local/spark/examples/jars/spark-examples_2.11-2.4.8.jar 10第五步去YARN Web界面8088端口看这个Application的运行状态如果状态是FINISHED说明Spark已经完全跑在Hadoop2的资源池上了。整个过程你会发现Hadoop2集群搭建的扎实程度决定了一切后续框架的稳定性Spark只是一个“租客”租的是YARN提供的CPU和内存存的是HDFS上的文件。Hadoop2集群如果数据目录权限、集群ID、资源配额这些基础没打好底子Spark在上面跑出问题再回头排查就很被动。6.3 我的一点调优体会集群跑顺了之后调优方面我有几个小的个人体会。HDFS的块大小默认128MB如果你的文件都是几十MB的小文件建议适当调小块到64MB甚至更低否则NameNode内存里会塞满大量文件的元数据大集群下NameNode内存就是瓶颈。数据目录尽量挂在多块磁盘上DataNode的数据目录可以配置多个路径逗号分隔让不同块分散到不同磁盘提升读写并发能力。YARN的资源分配策略也很关键注意观察作业的实际资源水位别把yarn.nodemanager.resource.memory-mb配得太满要给操作系统和其他进程留出至少四分之一的内存否则节点会被系统自动杀掉进程。这些经验都是我在一次次重装、一个个日志翻出来的。搭建Hadoop2集群这件事看起来就是改几个XML文件、敲几条启动命令真正值钱的地方在于理解每个配置项为什么存在、集群各角色之间怎么协作、出了问题从哪个角度切入去排查。这套思路打通了后面无论是搭建Spark集群、Flink集群还是维护生产Hadoop集群都会觉得顺手很多。
RELATED

相关推荐

VSCode配置C/C++开发环境教程:MinGW-w64、tasks.json与调试实战

VSCode配置C/C++开发环境教程:MinGW-w64、tasks.json与调试实战

简介:面向C/C初学者的VScode配置与使用教程资料包,以超详细的保姆级教学方式,系统讲解编辑器界面操作、常用快捷键、插件管理与调试技巧,并针对C/C开发环境配置提供完整方案,解决新手安装后不知如何下手、环境反复配置…

📅 2026/10/8 23:52:05
ONVIF V2.4 源码包实战:从设备发现到 PTZ 控制,一份能直接编译的协议栈底稿

ONVIF V2.4 源码包实战:从设备发现到 PTZ 控制,一份能直接编译的协议栈底稿

简介:这份ONVIF源码(V2.4)面向从事IP视频监控、物联网设备开发的工程师与协议学习者,提供ONVIF V2.4版本的客户端与服务器端实现,重点覆盖设备发现功能,可用于构建能自动发现并接入新设备的网络监控系统&am…

📅 2026/10/8 23:52:05
Notepad++免安装版实战:便携配置、插件隔离与效率技巧

Notepad++免安装版实战:便携配置、插件隔离与效率技巧

简介:Notepad免安装版是一款面向程序员与IT从业者的轻量级源代码编辑器,无需传统安装流程,下载解压即可直接运行,尤其适合快速部署、移动办公或临时借用设备时使用。压缩包共收录390个文件,整体约5.7MB,以x…

📅 2026/10/8 23:52:05
MORE NEWS

更多资讯

📰

别再花10-20小时搜论文!academic-ai-prompt教你用Google Scholar高级技巧+AI组合搜索

别再花10-20小时搜论文!academic-ai-prompt教你用Google Scholar高级技巧AI组合搜索 【免费下载链接】academic-ai-prompt 一套为研究生和学术研究者设计的完整AI Prompt库 📖 包含内容: ✨ 40 精心设计的AI Prompt ✨ 论文选题系统方法&…

📰

AI4AnimationPy vs Unity版AI4Animation:为什么Meta把AI动作管线迁移到纯Python

AI4AnimationPy vs Unity版AI4Animation:为什么Meta把AI动作管线迁移到纯Python 【免费下载链接】ai4animationpy A Python framework for AI-driven character animation using neural networks. 项目地址: https://gitcode.com/gh_mirrors/ai/ai4animationpy …

📰

Shaders引擎架构深潜:组件树如何被编译成WebGPU渲染管线(TypeGPU与RTT通路拆解)

Shaders引擎架构深潜:组件树如何被编译成WebGPU渲染管线(TypeGPU与RTT通路拆解) 【免费下载链接】shaders WebGPU components for React, Vue, Svelte, Solid, JS & Framer 项目地址: https://gitcode.com/gh_mirrors/sh0aders16/shaders Shaders 是一个把 200 个 W…

📰

北京热门的化肥编织袋批发制造商合作案例多的厂家实力参考

从化肥编织袋批发的底层逻辑说起 对于做农资生意的商家来说,化肥编织袋的选择从来不是单纯买个袋子那么简单。从最基础的技术参数来看,合格的化肥编织袋需要同时兼顾抗腐蚀、高强度、防潮性与印刷清晰度,不同的农资产品、仓储环境、运输场景&…

📰

从调研报告到生产落地:Agent开发架构、LangGraph与并发稳定性指南

我从不觉得调研报告是什么高深的东西,直到我因为要选技术栈,连续翻了十几份Agent相关的开发者报告。说句实话,大部分报告都在讲正确废话,但2026年这份Agent开发者调研报告,配合阿里云那份《Alibaba Cloud AI Agent Han…

📰

LiveAgent安全设计解析:为什么你的API Key永远不会离开本机

LiveAgent安全设计解析:为什么你的API Key永远不会离开本机 【免费下载链接】LiveAgent A fully functional AI Agent desktop client that supports Webui access and can be creatively customized and expanded! 项目地址: https://gitcode.com/gh_mirrors/li/…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬