当前位置: 首页 > news >正文

【分布式】Hadoop完全分布式的搭建(零基础)

Hadoop完全分布式的搭建

环境准备:

(1)VMware Workstation Pro17(其他也可)

(2)Centos7

(3)FinalShell

(一)模型机配置

0****)安装模板虚拟机,IP地址192.168.10.100、主机名称node1、内存4G、硬盘****40G

网络环境及基础环境准备:

1)修改VMware的网络虚拟器:将子网ip设置在统一的字段,我统一设置为10

图片1

图片2

图片3

点击确定

(2)修改电脑的VMent8:也统一在10这个字段

在搜索栏搜索查看网络连接

图片4

找到VMnet8

图片5

右击,选择属性

图片6

单击Internet协议版本4(TCP/IPv4)

图片7

修改相应的IP地址,默认网关,和刚才虚拟机中的保持统一字段,在本文中统一为10.

添加DNS服务器如图所示

图片8

修改Centos 里的ip,将动态地址改为静态

进入到centos7,用root用户登录,修改ifcfg-ens33文件,将其中BOOTPROTO的参数从动态改为静态,并添加对应的IP,依然与刚才前两步保持统一字段

图片9

vim /etc/sysconfig/network-scripts/ifcfg-ens33

图片10

ping一下百度表示网络可用,若失败则需检查相应的问题。网络要通才可进行后续操作。

图片11

修改主机名称为Master01

vim /etc/hostname

图片12

将文件内容改成Master01

将接下来预计要进行连接的虚拟机ip都入加入到hosts文件,根据自己需要搭建的集群数量决定,本文的Master01用于伪分布式搭建,node1,node2及node3用于完全分布式的搭建,要记录对应的ip地址,以便进行后续操作。

vim /etc/hosts

图片13

(4)连接finallshell

打开准备好的远程连接软件,我们后续将都在此进行操作,因为可直接粘贴复制和传送文件(用xshell也可),此处可用root登录也可用普通用户,后续因为yarn的使用,需要用普通用户连接。根据自己的主机ip和密码连接。

图片14

连接成功

图片15

(5)更换阿里云镜像:执行以下命令
a.备份官方的原yum源的配置

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

b.下载Centos-7.repo文件

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

c.脚本配置本地源

找个目录,创建脚本文件:

本人以/root/目录为例

vi /root/auto_aliyun.sh

编写如下内容:

#!/bin/bash# 备份官方的原yum源的配置mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup# 下载Centos-7.repo文件,或者curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo,取决于你是否有wget的命令wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo# 清除yum缓存yum clean all# 缓存本地yum源yum makecache

按ESC。输入:wq保存,完成镜像阿里云源的脚本文件的编写

d.赋予脚本可执行的权限

chmod +x /root/auto_aliyun.sh

e.执行脚本文件,即可

/root/auto_aliyun.sh

图片16

图片17

f.安装epel-release

yum install -y epel-release

图片18

(6)关闭防火墙

systemctl stop firewalldsystemctl disable firewalld.service

图片19

(7)将hduser用户(你自己的普通用户)赋予root权限

创建hduser用户,并修改hduser用户的密码

useradd hduser(创建的用户名)passwd 123456(创建的用户密码)

配置hduser用户具有root权限,方便后期加sudo执行root权限的命令

vim /etc/sudoers

找到图中位置添加:

图片20

保存并退出

在/opt目录下创建module、software文件夹

mkdir /opt/modulemkdir /opt/software

修改module、software文件夹的所有者和所属组均为hduser用户

chown hduser:hduser /opt/modulechown hduser:hduser /opt/software

查看module、software文件夹的所有者和所属组

图片21

测试hduser已拥有root权限

图片22

(8)卸载环境自带jdk

查询jdk

jdk rpm -qa | grep -i java

图片23

卸载jdk

rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

注意:如果你的虚拟机是最小化安装不需要执行这一步。

  • rpm -qa:查询所安装的所有rpm软件包
  • grep -i:忽略大小写
  • xargs -n1:表示每次只传递一个参数
  • rpm -e –nodeps:强制卸载软件

查询

图片24

重启虚拟机

[root@Master01?~]# reboot

模型机配置完成

(二)完全分布式搭建

(1)三台虚拟机node1,node2,node3的准备

克隆三台虚拟node1,node2,node3(名称要与前文hosts中一致,注意是完全克隆)

图片25

分别修改三台机器的ip和主机名并重启,检查是否修改完成,并检查网络是否可用

Node1

图片26

图片27

Node2

图片28

图片29

Node3

图片30

图片31

将三台主机均按前面方法连接finalshell

图片32

图片33

图片34

(2)给node1安装jdk

将下好的jdk和hadoop利用finallshell传到node1中,在finallshell的文件中找到之前建立的software文件夹,直接拖入。

图片35

进入到software文件夹,查看tar包已经存在。

图片36

解压缩:

tar -zxvf jdk-8u202-linux-x64.tar.gz -C /opt/module/

图片37

进入到module目录,已经存在jdk。

图片38

(3)配置JAVA_HOME

在/etc/profile.d/中创建my_env.sh,填写以下内容:

vim /etc/profile.d/my_env.sh

图片39

保存后运行,java配置成功。

source /etc/profile

执行java语句出现以下内容

图片40

(4)安装hadoop:
解压hadoop至/etc/module

tar -zxvf hadoop-3.2.4.tar.gz -C /opt/module/

图片41

进入到hadoop中配置环境变量

图片42

在之前创建的my_env.sh中添加以下内容

vim /etc/profile.d/my_env.sh

图片43

source /etc/profile?

运行

命令行输入hadoop,出现以下内容配置完成

图片44

(5)将node1中的jdk和hadoop复制到node2和node3上

图片45

图片46

集群分配脚本的编写:

创建一个脚本xsync,并将其配置在环境变量中,内容如下

注意是在hduser用户的bin目录下:

图片47

建立一个xsync文件,输入以下内容保存

#!/bin/bash#1. 判断参数个数
if?[?$#?-lt?1?]
then
????echo?Not?Enough?Arguement!
????exit;
fi#2. 遍历集群所有机器
for?host?in?node1?node2?node3
do
????echo?====================??$host??====================
????#3. 遍历所有目录,挨个发送????for?file?in?$@
????do
????????#4. 判断文件是否存在
????????if?[?-e?$file?]
????????????then
????????????????#5. 获取父目录
????????????????pdir=$(cd?-P?$(dirname?$file);?pwd)????????????????#6. 获取当前文件的名称
????????????????fname=$(basename?$file)
????????????????ssh?$host?"mkdir -p $pdir"
????????????????rsync?-av?$pdir/$fname?$host:$pdir
????????????else
????????????????echo?$file?does?not?exists!
????????fi
????done
done

注意以下内容修改成自己对应的主机名字

图片48

进入到相应的目录,找到相应的bin目录,查询刚才建立的xsync文件,注意是hduser下的bin目录。

图片49

vim xsync

图片50

赋予xsync相应权限

chomd 777 xsync

发现文件变绿

图片51

利用xsync脚本将环境变量分发到node2和node3中

sudo ./bin/xsync /etc/profile.d/my_env.sh

图片52

让环境变量生效

[hduser@node2?bin]$ source /etc/profile[hduser@node2?opt]$ source /etc/profile
  1. ssh免密登录设置

    cd .ssh/

    cat known_hosts

图片53

[hduser@node1?.ssh]$ssh-keygen -t rsa?

然后敲(三个回车),就会生成两个文件 id_rsa(私钥)、id_rsa.pub(公钥)

图片54

将公钥拷贝到要免密登录的目标机器上

图片55

ssh node2后免密登录成功

图片56

第三台机器同理

图片57

(三)配置集群

(1)核心配置文件

cd $HADOOP_HOME/etc/hadoopvim core-site.xml

图片58

core-site.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><!-- 指定 NameNode 的地址 --><property><name>fs.defaultFS</name><value>hdfs://node1:8020</value></property><!-- 指定 hadoop 数据的存储目录 --><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-3.2.4/data</value></property><!-- 配置 HDFS 网页登录使用的静态用户为 atguigu --><property><name>hadoop.http.staticuser.user</name><value>hduser</value></property></configuration>

图片59

(2)HDFS 配置文件

配置 hdfs-site.xml

vim hdfs-site.xml

文件内容如下:

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><!-- nn web 端访问地址--><property><name>dfs.namenode.http-address</name><value>node1:9870</value></property><!-- 2nn web 端访问地址--><property><name>dfs.namenode.secondary.http-address</name><value>node3:9868</value></property></configuration>

图片60

(3)YARN 配置文件

配置 yarn-site.xml

vim yarn-site.xml

文件内容如下:

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><!-- 指定 MR 走 shuffle --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定 ResourceManager 的地址--><property><name>yarn.resourcemanager.hostname</name><value>node2</value></property><!-- 环境变量的继承 --><property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value></property></configuration>

图片61

(4)MapReduce 配置文件

配置 mapred-site.xml

vim mapred-site.xml

文件内容如下:

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><!-- 指定 MapReduce 程序运行在 Yarn 上 --><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>

图片62

****5)****在集群上分发配置好的 Hadoop 配置文件

xsync /opt/module/hadoop- 3.2.4/etc/hadoop/

图片63

6)去 node2和 node3上查看文件分发情况

cat /opt/module/hadoop-3.2.4/etc/hadoop/core-site.xml

编辑workers文件

vim?/opt/module/hadoop-3.2.4/etc/hadoop/workers

在该文件中增加如下内容:

图片64

注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。

同步所有节点配置文件

xsync /opt/module/hadoop-3.2.4/etc

启动集群

(1)如果集群是第一次启动,需要在node1节点格式化NameNode(注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。)

[hduser@node1?hadoop-3.2.4]$ hdfs namenode -format

图片65

(2)启动HDFS

[hduser@node1?hadoop-3.2.4]$ sbin/start-dfs.sh

图片66

(3)****在配置了ResourceManager的节点(node2)****启动YARN

[hduser@node1?hadoop-3.2.4]$ sbin/start-yarn.sh

Web端查看HDFS的NameNode

浏览器中输入:http://node1:9870

(4)查看HDFS上存储的数据信息

Web端查看YARN的ResourceManager

浏览器中输入:http://node2:8088

(b)查看YARN上运行的Job信息

验证HDFS是否成功启动,可以使用jps命令查看Java进程,确认NameNode和DataNode等进程是否运行。

图片67

图片68

图片69

完全分布式搭建完成。

相关文章:

【分布式】Hadoop完全分布式的搭建(零基础)

Hadoop完全分布式的搭建 环境准备&#xff1a; &#xff08;1&#xff09;VMware Workstation Pro17&#xff08;其他也可&#xff09; &#xff08;2&#xff09;Centos7 &#xff08;3&#xff09;FinalShell &#xff08;一&#xff09;模型机配置 0****&#xff09;安…...

JavaScript 异步编程:Promise 与 await 的关联与使用

在 JavaScript 中&#xff0c;异步编程是处理耗时操作&#xff08;如网络请求、文件读写等&#xff09;的核心机制。Promise 和 await 是两种常用的异步编程工具&#xff0c;它们密切相关&#xff0c;但又有各自的特点和适用场景。本文将深入探讨它们的关联、区别以及如何在实际…...

体验用ai做了个python小游戏

体验用ai做了个python小游戏 写在前面使用的工具2.增加功能1.要求增加视频作为背景。2.我让增加了一个欢迎页面。3.我发现中文显示有问题。4.我提出了背景修改意见&#xff0c;欢迎页面和结束页面背景是视频&#xff0c;游戏页面背景是静态图片。5.提出增加更多游戏元素。 总结…...

golang常用库之-swaggo/swag根据注释生成接口文档

文章目录 golang常用库之-swaggo/swag库根据注释生成接口文档什么是swaggo/swag golang常用库之-swaggo/swag库根据注释生成接口文档 什么是swaggo/swag github&#xff1a;https://github.com/swaggo/swag 参考文档&#xff1a;https://golang.halfiisland.com/community/pk…...

【可实战】Linux 常用统计命令:排序sort、去重uniq、统计wc

在 Linux 系统中&#xff0c;有一些常用的命令可以用来收集和统计数据。 一、常用统计命令的使用场景 日志分析和监控&#xff1a;通过使用 Linux 统计命令&#xff0c;可以实时监控和分析系统日志文件&#xff0c;了解系统的运行状况和性能指标。例如&#xff0c;使用 tail 命…...

【设计模式】【创建型模式】建造者模式(Builder)

&#x1f44b;hi&#xff0c;我不是一名外包公司的员工&#xff0c;也不会偷吃茶水间的零食&#xff0c;我的梦想是能写高端CRUD &#x1f525; 2025本人正在沉淀中… 博客更新速度 &#x1f44d; 欢迎点赞、收藏、关注&#xff0c;跟上我的更新节奏 &#x1f3b5; 当你的天空突…...

UE5.3 C++ 通过Spline样条实现三维连线,自己UV贴图。

一.制作了基于USplineComponent的画线插件&#xff0c;就是我们常说的样条线。 直接看怎么用&#xff0c;关于插件实现细节&#xff0c;后续会更新&#xff0c;看思路就行。通过ID,管理每一条线。移除删掉上一帧的线条Mesh。第一个点&#xff0c;是本身直接放过去。第二个点是…...

每日学习Java之一万个为什么

9.Class <?> class1 Myclass.class 为什么要有通配符&#xff1f;传给谁用的&#xff1f; 首先&#xff0c;这里的class特指某个对象在JVM中的元数据集合。 有普通、接口、数组、基本类型、 void 类型、局部类、匿名类、枚举、注解 1.类型安全&#xff1a;通配符允许…...

4、IP查找工具-Angry IP Scanner

在前序文章中&#xff0c;提到了多种IP查找方法&#xff0c;可能回存在不同场景需要使用不同的查找命令&#xff0c;有些不容易记忆&#xff0c;本文将介绍一个比较优秀的IP查找工具&#xff0c;可以应用在连接树莓派或查找IP的其他场景中。供大家参考。 Angry IP Scanner下载…...

华为昇腾920b服务器部署DeepSeek翻车现场

最近到祸一台HUAWEI Kunpeng 920 5250&#xff0c;先看看配置。之前是部署的讯飞大模型&#xff0c;发现资源利用率太低了。把5台减少到3台&#xff0c;就出了他 硬件配置信息 基本硬件信息 按照惯例先来看看配置。一共3块盘&#xff0c;500G的系统盘&#xff0c; 2块3T固态…...

一周学会Flask3 Python Web开发-http响应状态码

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 在Flask程序中&#xff0c;客户端发出的请求触发相应的视图函数&#xff0c;获取返回值会作为响应的主体&#xff0c;最后生成…...

Javascript网页设计实例:通过JS实现上传Markdown转化为脑图并下载脑图

功能预览 深度与密度测试 对于测试部分&#xff0c;分别对深度和密度进行了测试&#xff1a; 注意&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;只实现了识别Markdown中的#代表的层级&#xff0c;所以不能使用其余标识符&#xff0…...

【Spring生命周期】Bean元信息配置阶段

引言 本系列将详细讲解Spring生命周期的13个阶段&#xff0c;从源码角度帮助我们更好的理解Spring框架和bean生命周期全流程 Bean信息定义4种方式 API的方式Xml文件方式properties文件的方式注解的方式 在 Spring 框架中&#xff0c;Bean 元信息配置阶段是整个 Bean 生命周…...

【iOS】SwiftUI状态管理

State ObservedObject StateObject 的使用 import SwiftUIclass CountModel: ObservableObject {Published var count: Int 0 // 通过 Published 标记的变量会触发视图更新init() {print("TimerModel initialized at \(count)")} }struct ContentView: View {State…...

ubuntu上如何查看coredump文件默认保存在哪个路径?

在 Ubuntu 系统中&#xff0c;可以通过以下几种方式来查看 coredump 文件默认保存的路径&#xff1a; 1. 查看core_pattern配置 core_pattern是一个内核参数&#xff0c;它决定了 coredump 文件的保存位置和命名规则。可以通过以下命令查看其当前值&#xff1a; cat /proc/s…...

技术总结汇总

目录 数据库 数据库系统原理 MySQL Redis Java Java 基础 Java 容器 Java 并发 Java 虚拟机 Java I/O 系统设计 系统设计基础 微服务 分布式 集群和负载均衡 灾备和故障转移 限流 降级和熔断 缓存 消息队列 设计模式 DDD领域驱动设计 开发框架和中间件…...

Java-如何将其他地方拉取的jar包导入本地maven环境

背景 公司的一个老旧二开项目&#xff0c;原项目维护方不合作了&#xff0c;提供的项目源码提供给到公司。项目中用到了一些原维护方内部的jar包&#xff0c;导致二开时依赖的这些部分全部报错。虽然在项目中直接导入此jar包可以解决报红报错问题&#xff0c;但是在使用maven打…...

Unity 聊天气泡根据文本内容适配

第一步 拼接UI 1、对气泡图进行九宫图切割 2、设置底图pivot位置和对齐方式 pivot位置&#xff1a;&#xff08;0&#xff0c;1&#xff09; 对齐方式&#xff1a;左上对齐 3、设置文本pivot位置和对齐方式&#xff0c;并挂上布局组件 pivot设置和对齐方式和底图一样&#…...

【组态PLC】基于博图V16和组态王六层双部电梯组态设计【含PLC组态源码 M008期】

控制要求 1&#xff09;两台电梯同时运行时&#xff0c;共同享用一套外呼按钮。 2&#xff09;当两台电梯同时去响应外呼信号时&#xff0c;两台电梯自动定向启动前往相应的楼层&#xff0c;当某一台电梯先行到达指定层楼时&#xff0c;另外一台电梯必须就近停靠平层&#xf…...

Python--数据类型(中)

1. 列表&#xff08;list&#xff09; 1.1 定义与特性 定义&#xff1a;有序、可变的容器&#xff0c;支持多种数据类型混合存储。 user_list ["奥力给", 98, True] empty_list [] # 空列表可变性&#xff1a;列表内部元素可修改&#xff0c;区别于字符串和元组。…...

学习总结2.19

首先就是对dfs和bfs的熟悉&#xff0c;dfs是一种递归函数&#xff0c;通过不断深搜来达到目的&#xff0c;通常用于寻找多少未知量&#xff0c;相较于bfs&#xff0c;编译难度更低一点&#xff1b;bfs多用于寻找最短路径之类&#xff0c;相较于dfs代码多了一部分队列的代码&…...

[Vivado报错] [Runs 36-527] DCP does not exist

一、错误原因解析 此错误表明Vivado在指定路径未找到.dcp&#xff08;Design Checkpoint&#xff09;文件&#xff0c;通常由以下原因导致&#xff1a; 路径过长或特殊字符&#xff1a;Windows系统路径长度限制&#xff08;260字符&#xff09;可能导致文件生成失败&#xff…...

深度学习的集装箱箱号OCR识别技术,识别率99.9%

集装箱箱号OCR识别技术是一项结合计算机视觉和规则校验的复杂任务&#xff0c;以下是其关键要点及实现思路的总结&#xff1a; 1、集装箱号结构&#xff1a;11位字符&#xff0c;格式为公司代码(3字母)和序列号(6数字)以及校验码(1数字)和尺寸/类型代码(可选)&#xff0c;例如…...

基于java新闻管理系统,推荐一款开源cms内容管理系统ruoyi-fast-cms

一、项目概述 1.1 项目背景 在信息高速流通的当下&#xff0c;新闻媒体行业每天都要处理和传播海量信息。传统的新闻管理模式依赖人工操作&#xff0c;在新闻采集、编辑、发布以及后续管理等环节中&#xff0c;不仅效率低下&#xff0c;而且容易出现人为失误。同时&#xff0…...

网络安全要学python 、爬虫吗

网络安全其实并不复杂&#xff0c;只是比普通开发岗位要学习的内容多一点。无论是有过编程基础还是零基础的都可以学习的。网络安全目前可就业的岗位从技术上可分为两部分&#xff1a;web安全和二进制逆向安全。web安全是网络安全的入门方向&#xff0c;内容简单&#xff0c;就…...

ChatGPT行业热门应用提示词案例-AI绘画类

AI 绘画指令是一段用于指导 AI 绘画工具&#xff08;如 DALLE、Midjourney 等&#xff09;生成特定图像的文本描述。它通常包含场景、主体、风格、色彩、氛围等关键信息&#xff0c;帮助 AI 理解创作者的意图&#xff0c;从而生成符合要求的绘画作品。 ChatGPT 拥有海量的知识…...

网络安全钓鱼邮件测试 网络安全 钓鱼

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 如今&#xff0c;网络安全是一个备受关注的话题&#xff0c;“网络钓鱼”这个词也被广泛使用。 即使您对病毒、恶意软件或如何在线保护自己一无所知&#xff0c;您…...

写一个python组件

写一个python组件 核心功能代码命令行接口打包配置安装与测试注意 写一个python组件&#xff0c;具体的&#xff1a;项目结构设计&#xff1a;定义你的项目的目录结构。编写核心功能代码&#xff1a;实现你想要的功能。创建命令行接口(CLI)&#xff1a;使用argparse或click库来…...

deepseek-v3在阿里云和腾讯云的使用中的差异

随着deepseek在各大云商上线&#xff0c;试用了下阿里云和腾讯云的deepseek服务&#xff0c;在回答经典数学问题9.9和9.11谁大时&#xff0c;发现还是有差异的。将相关的问题记录如下。 1、问题表现 笔者使用的openai的官方sdk go-openai。 因本文中测验主要使用阿里云和腾讯…...

DevOps自动化部署详解:从理念到实践

在软件开发日益快速迭代的今天&#xff0c;如何以高效、稳定且可重复的方式将代码变更从开发环境自动部署到生产环境成为企业竞争的重要因素。DevOps 正是在这一背景下应运而生&#xff0c;它打破开发、测试、运维之间的壁垒&#xff0c;通过自动化工具和流程&#xff0c;实现持…...

systemverilog刷题小记

1、systemverilog的队列特性 1.1队列的基础操作 方法语法时间复杂度示例结果头部插入q.push_front(item)O(1)q.push_front(5)[5, ...]尾部插入q.push_back(item)O(1)q.push_back(8)[..., 8]头部删除q.pop_front()O(1)x q.pop_front()[...]尾部删除q.pop_back()O(1)x q.pop_…...

jetbrains IDEA集成大语言模型

一、CodeGPT ‌CodeGPT‌是由CSDN打造的一款生成式AI产品&#xff0c;专为开发者量身定制。它能够提供强大的技术支持&#xff0c;帮助开发者在学习新技术或解决实际工作中的各种计算机和开发难题‌1。 idea集成 1.在线安装&#xff1a;直接在线安装 2.离线安装 JetBrains Mar…...

23. AI-大语言模型-DeepSeek赋能开发-Spring AI集成

文章目录 前言一、Spring AI 集成 DeepSeek1. 开发AI程序2. DeepSeek 大模型3. 集成 DeepSeek 大模型1. 接入前准备2. 引入依赖3. 工程配置4. 调用示例5. 小结 4. 集成第三方平台&#xff08;已集成 DeepSeek 大模型&#xff09;1. 接入前准备2. POM依赖3. 工程配置4. 调用示例…...

Ubuntu学习备忘

1. 打开Terminal快捷键 ctrl alt t 2.Ubuntu22.04的root没有默认初始密码&#xff0c; 为root设置密码&#xff0c;下面链接的step1, How to allow GUI root login on Ubuntu 22.04 Jammy Jellyfish Linux - LinuxConfig...

AI 编程助手 cursor的系统提示词 prompt

# Role 你是一名极其优秀具有10年经验的产品经理和精通java编程语言的架构师。与你交流的用户是不懂代码的初中生&#xff0c;不善于表达产品和代码需求。你的工作对用户来说非常重要&#xff0c;完成后将获得10000美元奖励。 # Goal 你的目标是帮助用户以他容易理解的…...

DAO设计模式

DAO设计模式 1.概念 ​ DAO&#xff08;Data Access Object&#xff09;模式是一种用于分离业务逻辑与数据访问逻辑的设计模式&#xff0c;其核心思想是通过抽象接口屏蔽底层数据操作细节&#xff0c;提升代码的可维护性和扩展性。 2.DAO模式的定义与核心思想 DAO模式属于J…...

为什么外贸办公需要跨境专线网络?

你好&#xff0c;今天我们来聊聊SD-WAN技术在出海企业办公中的应用以及其带来的诸多优势。当今出海企业在与海外分支机构或合作伙伴开展高效的网络通讯和数据传输时&#xff0c;面临着许多挑战。此时&#xff0c;SD-WAN作为一种新兴的网络优化技术&#xff0c;正在改变这些企业…...

挪车小程序挪车二维码php+uniapp

一款基于FastAdminThinkPHP开发的匿名通知车主挪车微信小程序&#xff0c;采用匿名通话的方式&#xff0c;用户只能在有效期内拨打车主电话&#xff0c;过期失效&#xff0c;从而保护车主和用户隐私。提供微信小程序端和服务端源码&#xff0c;支持私有化部署。 更新日志 V1.0…...

【Pandas】pandas Series reindex

Pandas2.2 Series Computations descriptive stats 方法描述Series.align(other[, join, axis, level, …])用于将两个 Series 对齐&#xff0c;使其具有相同的索引Series.case_when(caselist)用于根据条件列表对 Series 中的元素进行条件判断并返回相应的值Series.drop([lab…...

HTML/CSS中并集选择器

1.作用:选中多个选择器对应的元素,又称:分组选择器 所谓并集就是或者的含义. 2.语法:选择器1,选择器2,选择器3,......选择器n 多个选择器通过,连接,此处,的含义就是:或. .rich,.beauty{color: blue;} 3.注意事项 1.并集选择器,我们一般竖着写 2.任何形式的选择器,都可以作为并…...

一台服务器将docker image打包去另一天服务器安装这个镜像

一台服务器将docker image打到去另一天服务器安装这个镜像 1. 打包2.另一台服务器执行 1. 打包 docker save -o nebula-graph-studio.tar harbor1.vm.example.lan/dockerio/vesoft/nebula-graph-studioxxx.tar 是打包好的文件 后面的是 docker image 2.另一台服务器执行 docke…...

【分布式理论14】分布式数据库存储:分表分库、主从复制与数据扩容策略

文章目录 一、分表分库1. 数据分表的必要性与方式2. 数据分库原则与优势 二、主从复制1. 读写分离架构设计2. 数据复制方式3. MySQL实现主从复制4. MySQL主从复制实践与高可用方案 三、数据扩容 随着业务的不断发展和数据量的增长&#xff0c;传统的单机关系型数据库已经逐渐不…...

SIM盾构建安全底座的可行性分析

一、背景 1.1安全需求现状 在数字化时代&#xff0c;信息安全面临着日益严峻的挑战。各类网络攻击手段层出不穷&#xff0c;如数据泄露、恶意软件攻击、网络诈骗等&#xff0c;给个人、企业和社会带来了巨大的损失。为了保障信息系统的安全性&#xff0c;需要构建一个可靠的安…...

ai大模型加本地知识库

cherrystudio 搭建本地知识库&#xff0c;并配置Ollama 本地部署的DS模型&#xff0c;或在线的千问模型 千问文本模型推荐&#xff1a;...

DeepSeek核心算法解析:如何打造比肩ChatGPT的国产大模型

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》&#xff08;人工智能科学与技术丛书&#xff09;【陈敬雷编著】【清华大学出版社】 文章目录 DeepSeek大模型技术系列一DeepSeek核心算法解析&#xff1a;如何…...

【插件】前端生成word 文件

文章目录 1、背景2、方式一&#xff1a;html-docx-js2.1 具体代码2.2 前端生成word文件的样式2.3 总结 3、方式二&#xff1a;pizzip docxtemplater3.1 具体代码3.2 前端生成word文件的样式3.3 总结 4、参考链接 1、背景 在实际开发中&#xff0c;业务需要&#xff0c;需要把数…...

软件测试用例设计方法之正交表

一、概念 能够使用最小的测试过程集合获得最大的测试覆盖率&#xff0c;从全面试验中挑选出有代表性的点进行测试。适用于配置类软件&#xff0c;组合比较多的情况。 正交表Ln(m^k)&#xff1a; 特点&#xff1a;均匀分散、整齐可比、高效、快速、经济 n&#xff1a;正交表的…...

数组和对象深浅拷贝

对象浅拷贝 方法一&#xff1a;使用 Object.assign() Object.assign() 方法用于将一个或多个源对象的所有可枚举属性复制到目标对象。它会返回目标对象。 const originalObj {name: John,age: 30,hobbies: [reading, running] };const shallowCopy Object.assign({}, orig…...

NPM环境搭建指南

NPM&#xff08;Node Package Manager&#xff09;是 Node.js 的包管理工具&#xff0c;堪称前端开发的基石。本文将手把手教你 在Mac、Windows、Linux三大系统上快速搭建NPM环境&#xff0c;并验证是否成功。 一、Mac系统安装NPM 方法1&#xff1a;通过Homebrew安装&#xff…...

C#功能测试

List 内部元素为引用 src[0]为"11" List<Source> src new List<Source>(); src.Add(new Source() { Name "1", Age 1, Description "1" }); src.Add(new Source() { Name "2", Age 2, Description "2"…...