五、ZooKeeper、Kafka、Hadoop、HBase、Spark、Flink集群化软件的部署

五、ZooKeeper、Kafka、Hadoop、HBase、Spark、Flink集群化软件的部署

文章目录

  • 五、ZooKeeper、Kafka、Hadoop、HBase、Spark、Flink集群化软件的部署
  • 1.作用
    • 主要作用(通俗说法)
    • 对实战项目有什么用?(直接举例)
  • 2.集群化软件
  • 3.集群化环境前置准备
    • 配置多台/Linux虚拟机
    • 准备主机映射名
    • 配置 SSH 免密登录(key 方式)
    • 安装JDK环境(之前有写过)
    • scp命令
  • 4.约定与准备
      • 通用基线(一次执行,后面所有组件通用)
    • ZooKeeper(单机先跑通)
    • Kafka(KRaft 模式,不依赖 ZK,最省心)
    • Hadoop(HDFS + YARN,单机伪分布式)
    • HBase(先用 Standalone,最快上手)
    • Spark(Standalone)
    • Flink(Standalone)
    • 常见坑与秒级排查

1.作用

一句话:集群=把多台 Linux 服务器拧成“一台大机器”,让系统更稳、更快、能随时加机器顶住流量,还能不停机维护。

主要作用(通俗说法)

  • 不怕宕机(高可用):一台挂了,其他顶上;服务不中断。
  • 能扛流量(横向扩展):来了更多用户,就多加几台机器分担。
  • 跑得更快(并行/分片):把任务或数据切成多份同时处理。
  • 维护不打扰(滚动升级):一台台升级、发版,用户基本无感。
  • 数据更安全(多副本/容灾):同一份数据放多处,单点坏了不丢。

对实战项目有什么用?(直接举例)

  • Web/接口服务:Nginx/HAProxy 做负载均衡,多副本应用 → 高并发不炸。
  • 缓存:Redis Sentinel/Cluster → 会话共享、热点数据加速且可自动切主。
  • 消息队列:RabbitMQ 集群 + quorum 队列 → 异步削峰,节点故障不丢消息。
  • 搜索/日志:Elasticsearch 多节点 → 搜索快、日志检索稳定不怕单点。
  • 数据库主备/读写分离:MySQL 主从或集群 → 宕机可切换,读性能提升。

2.集群化软件

分类主要用途(一句话)常见软件(代表)典型场景
计算/调度统一调度作业与资源、弹性伸缩Kubernetes、YARN、Ray、Dask应用编排、批处理/AI 任务调度
消息与流解耦与削峰、流式数据管道Kafka、Pulsar、RocketMQ日志/埋点、订单事件、实时 ETL
批处理/交互式 SQL大数据 SQL 查询与离线分析Hive、Trino(Presto)、Impala数仓离线报表、即席查询
实时计算低延迟流计算与复杂事件处理Flink、Spark Streaming、Storm实时看板、风控、告警
分布式存储/数据库海量数据存储与高并发读写/分析HDFS、Ceph/MinIO、ClickHouse/Doris、Cassandra/TiDB数据湖文件、OLAP 分析、弹性数据库
数据湖表格式为数据湖提供 ACID/时光回溯/模式演进Iceberg、Delta Lake、Hudi统一湖仓表、增量写入与回滚
数据集成/采集/CDC异构系统数据同步与变更捕获Kafka Connect/Debezium/Flink CDC、NiFi、Logstash/Fluentd/Filebeat库表同步、日志采集、实时入湖
元数据/权限/安全数据资产、血缘与权限治理Hive Metastore、Atlas/DataHub、Ranger、Kerberos数据目录、合规审计、统一认证
协调/注册/配置一致性、服务发现与配置中心ZooKeeper、etcd、Consul、Nacos/Apollo分布式锁、服务注册、动态配置
网关/负载均衡/服务网格北向入口与流量治理Nginx、HAProxy、Envoy、Istio反向代理、限流熔断、灰度发布
监控/日志/可观测指标监控、日志检索与告警Prometheus+Grafana、ELK/EFK、Loki系统健康、故障定位、告警联动

3.集群化环境前置准备

配置多台/Linux虚拟机

  • 虚拟机关机,左侧栏新建一个名为“虚拟机集群”的文件夹,右键,选择管理中的克隆,创建出一个完整的克隆虚拟机(状态任选,按它默认给的就可以但要选择完整克隆),命名按序号(node1)就可以。创建成功后放入刚刚新建的文件夹中。

  • 克隆出两台虚拟机:node2node3(左侧目录显示 node1 / node2 / node3)。

  • 启动 node1,把主机名改为 node1,并把 IP 固定为 192.168.88.131

    hostnamectl set-hostname node1
    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    # 在文件中设置:
    IPADDR="192.168.88.131"# 重启网络
    systemctl restart network
    # 或:
    systemctl stop network && systemctl start network
    
  • 启动 node2node3,做相同配置:
    node2 主机名 node2,IP 192.168.88.132
    node3 主机名 node3,IP 192.168.88.133

  • FinalShell 中分别创建到 node1、node2、node3 的连接;提示里建议为了简单起见使用 root 用户登录。

准备主机映射名

1)Windows 上添加(如果你用 Windows 作为运维机)

  • 管理员身份打开记事本,编辑:
C:\Windows\System32\drivers\etc\hosts
  • 追加三行:
192.168.88.131  node1
192.168.88.132  node2
192.168.88.133  node3
  • 保存即可(若权限不够,先把文件拷到桌面改好再拷回去并覆盖)。这里是你自己设置的固定ip地址

2)Linux 上添加(3 台都要加)

sudo -i
cat >> /etc/hosts <<'EOF'
192.168.88.131  node1
192.168.88.132  node2
192.168.88.133  node3
EOF

3)设置每台机器的主机名(可选但推荐)

在 node1/node2/node3 分别执行对应主机名:

# node1 上
hostnamectl set-hostname node1
# node2 上
hostnamectl set-hostname node2
# node3 上
hostnamectl set-hostname node3

重新登录后 hostname 应显示正确。

4)验证

ping -c 2 node1
ping -c 2 node2
ping -c 2 node3

能通就说明映射生效。


配置 SSH 免密登录(key 方式)

  • SSH服务是一种用于远程登录的安全认证协议
  • 通过Finalshell远程连接到Linux,就是使用SSH服务

假设你想从 node1 免密到 node2、node3(也可以反向同理)。

1)在 node1 生成密钥(用哪个账号免密就在哪个账号执行)

# 不要设置密码短语,全部回车即可
ssh-keygen -t ed25519 -C "node1-key"
# 如果系统太老不支持 ed25519,用:
# ssh-keygen -t rsa -b 4096 -C "node1-key"

2)把公钥拷到 node2、node3

ssh-copy-id -i ~/.ssh/id_ed25519.pub root@node2
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@node3
# 若是普通用户,替换 root 为你的用户名

如果没有 ssh-copy-id,用手动方式:

# 在 node1 上
cat ~/.ssh/id_ed25519.pub
# 复制输出的整行,粘贴到 node2/node3 的 ~/.ssh/authorized_keys 里
# 并在 node2/node3 上确保权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

3)测试免密

ssh node2  # 应该直接登录而不再要密码
exit
ssh node3
exit

三、常见问题排查

  • 权限问题(最常见)
    在目标机(被登录的那台)确保:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    chown -R $(whoami):$(whoami) ~/.ssh
    
  • sshd 配置禁止了密码或公钥
    查看 /etc/ssh/sshd_config

    PubkeyAuthentication yes
    PasswordAuthentication yes   # 你已能免密后可改为 no 提升安全
    PermitRootLogin yes          # 若用 root 登录才需要;生产建议禁用
    

    修改后重启:

    # CentOS/Rocky/AlmaLinux
    systemctl restart sshd
    # Ubuntu/Debian
    systemctl restart ssh
    
  • 防火墙/SELinux

    • 端口 22 要放行(或你修改的端口):

      # firewalld
      firewall-cmd --add-service=ssh --permanent
      firewall-cmd --reload
      
    • SELinux 先确认状态:

      getenforce
      

      若为 Enforcing 且你做了自定义目录存放 .ssh,需正确上下文或暂时设为 Permissive 进行排查(生产环境建议按规范修正上下文)。

  • known_hosts 冲突:IP/主机名复用导致警告,按提示到 ~/.ssh/known_hosts 删除对应行或:

    ssh-keygen -R node2
    ssh-keygen -R 192.168.88.132
    
  • 端口非 22:连接时加 -p PORT,或在 ~/.ssh/config 中写别名:

    cat >> ~/.ssh/config <<'EOF'
    Host node2HostName 192.168.88.132User rootPort 22
    Host node3HostName 192.168.88.133User rootPort 22
    EOF
    chmod 600 ~/.ssh/config
    

安装JDK环境(之前有写过)

scp命令

本地 -> 远程scp [选项] local_path  user@host:/remote/path远程 -> 本地scp [选项] user@host:/remote/path  local_path远程A -> 远程B(走本机中转)scp -3 [选项] userA@hostA:/path  userB@hostB:/path
选项作用典型用法备注/注意
-r递归复制目录scp -r ./conf root@h:/etc/app/最常用;别忘了目标目录要有写权限
-P <port>指定 SSH 端口(大写 P)scp -P 2222 file root@h:/opt/常被写成小写 -p(那是“保留属性”)
-i <key>指定私钥scp -i ~/.ssh/id_rsa pkg.tgz root@h:/opt/等价于 -o IdentityFile=...
-C压缩传输scp -C big.iso root@h:/data/慢链路有用;会增加 CPU 消耗
-p保留时间戳/权限/ACLscp -p app.sh root@h:/usr/local/bin/rsync -a 类似的效果之一
-q静默模式scp -q file root@h:/tmp/关掉进度条/提示
-o <k=v>传递任意 SSH 配置项scp -o StrictHostKeyChecking=no file root@h:/opt/可设置 ConnectTimeoutProxyCommandForwardAgent
-J <jump>跳板机(ProxyJump)scp -J bastion@10.0.0.10 pkg.tgz root@10.0.0.21:/opt/支持多跳:-J a,b,c
-l <kbps>限速(Kbit/s)scp -l 5000 file root@h:/data/5000≈5Mb/s≈0.625MB/s
-v调试输出(可叠加)scp -vvv file root@h:/opt/排查“连不上/卡住”很有用
-4 / -6强制用 IPv4 / IPv6scp -4 file root@h:/opt/解决 DNS 双栈解析导致的连接问题
-F <file>指定 ssh_configscp -F ./ssh_config file hostA:/opt/配合项目专用配置
-S <ssh_path>指定 ssh 程序scp -S /usr/local/bin/ssh file host:/罕用;自定义 ssh 客户端
-3远程A→远程B,经由本机中转scp -3 user1@A:/a.log user2@B:/tmp/走两段链路,;但不需两端互通
-T关闭严格文件名检查scp -T host:'~/dir/*' .允许远端通配符展开;有风险(谨慎)
-c <cipher>指定加密算法scp -c aes128-gcm@openssh.com ...极少用;一般让 ssh 自协商即可
-B批处理模式(禁止交互)scp -B file host:/opt/常与密钥/Agent 搭配,脚本中用
-O使用旧版 SCP 协议scp -O file host:/opt/新版 OpenSSH 默认走 SFTP;兼容老服务器时用
  • 远程到远程时若想不经本机中转,用 rsync -e ssh 的“pull/push”到一端执行,会更快;或在一端使用 scp 拉/推另一端。
  • 需要断点续传/只传差异时,选 rsync -avzP 更合适;scp 不支持续传。
  • 路径含空格请用引号:"path with space";远端路径也要加引号:host:"/tmp/my file.txt"

4.约定与准备

  • 软件装到 /opt,数据放 /data
  • 使用 Apache 官方存档源(稳定、可复现)。
  • 需要可访问外网。
  • 版本:ZooKeeper 3.8.4、Kafka 3.6.1(KRaft)、Hadoop 3.3.6、HBase 2.4.17、Spark 3.5.1(hadoop3)、Flink 1.17.2(scala_2.12)。

通用基线(一次执行,后面所有组件通用)

做什么:装工具+JDK、创建目录、加环境变量(PATH)。

yum -y install epel-release wget curl tar xz unzip java-1.8.0-openjdk java-1.8.0-openjdk-devel lsof net-tools nc
mkdir -p /opt /datacat >/etc/profile.d/bigdata.sh <<'ENV'
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export ZK_HOME=/opt/zookeeper
export KAFKA_HOME=/opt/kafka
export HADOOP_HOME=/opt/hadoop
export HBASE_HOME=/opt/hbase
export SPARK_HOME=/opt/spark
export FLINK_HOME=/opt/flink
export PATH=$ZK_HOME/bin:$KAFKA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$FLINK_HOME/bin:$PATH
ENV
source /etc/profile.d/bigdata.sh

小贴士:如果有防火墙,需要按端口清单放行:ZK(2181)、Kafka(9092)、Hadoop(9870/8088)、HBase(16010)、Spark(7077/8080)、Flink(8081)。


ZooKeeper(单机先跑通)

做什么:下载→配置→启动→验证。

cd /opt
wget -q https://archive.apache.org/dist/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
tar -xzf apache-zookeeper-3.8.4-bin.tar.gz && mv apache-zookeeper-3.8.4-bin zookeeper
mkdir -p /data/zkcat > /opt/zookeeper/conf/zoo.cfg <<'EOF'
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zk
clientPort=2181
EOF/opt/zookeeper/bin/zkServer.sh start
echo ruok | nc 127.0.0.1 2181   # 返回 imok 即成功

变成三节点怎么做:在 zoo.cfg 末尾加

server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

并在每台写入 /data/zk/myid(分别是 1/2/3),然后分别启动。


Kafka(KRaft 模式,不依赖 ZK,最省心)

做什么:下载→改监听地址→初始化存储→启动→发消息测试。

cd /opt
wget -q https://archive.apache.org/dist/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -xzf kafka_2.13-3.6.1.tgz && mv kafka_2.13-3.6.1 kafka
mkdir -p /data/kafka
IP=$(hostname -I | awk '{print $1}')
CFG=/opt/kafka/config/kraft/server.properties
cp -f $CFG $CFG.bak# 关键配置:监听与对外通告地址、日志目录
sed -ri "s@^#?listeners=.*@listeners=PLAINTEXT://${IP}:9092@" $CFG
sed -ri "s@^#?advertised.listeners=.*@advertised.listeners=PLAINTEXT://${IP}:9092@" $CFG
sed -ri "s@^log.dirs=.*@log.dirs=/data/kafka/logs@" $CFG# 初始化元数据(只第一次)
CID=$(/opt/kafka/bin/kafka-storage.sh random-uuid)
echo "$CID" >/data/kafka/cluster-id
/opt/kafka/bin/kafka-storage.sh format -t "$CID" -c $CFG# 启动(后台)
nohup /opt/kafka/bin/kafka-server-start.sh $CFG >/var/log/kafka.out 2>&1 &# 验证:建 topic,发/收消息
/opt/kafka/bin/kafka-topics.sh --bootstrap-server ${IP}:9092 --create --topic demo --partitions 1 --replication-factor 1
/opt/kafka/bin/kafka-console-producer.sh --broker-list ${IP}:9092 --topic demo &
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server ${IP}:9092 --topic demo --from-beginning

变成三节点怎么做:三台都按上面装;server.properties 中设置唯一的 node.idcontroller.quorum.voters(KRaft 集群参数),或直接用“依赖 ZK 的老模式”,在每台把 zookeeper.connect 指向你的 ZK 集群。


Hadoop(HDFS + YARN,单机伪分布式)

做什么:下载→设置 JAVA_HOME→写 4 个配置→格式化→启动→验证。

cd /opt
wget -q https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzf hadoop-3.3.6.tar.gz && mv hadoop-3.3.6 hadoop
echo "export JAVA_HOME=$JAVA_HOME" >> /opt/hadoop/etc/hadoop/hadoop-env.sh
mkdir -p /data/hadoop/nn /data/hadoop/dncat >/opt/hadoop/etc/hadoop/core-site.xml <<'EOF'
<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
</configuration>
EOFcat >/opt/hadoop/etc/hadoop/hdfs-site.xml <<'EOF'
<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:/data/hadoop/nn</value></property><property><name>dfs.datanode.data.dir</name><value>file:/data/hadoop/dn</value></property>
</configuration>
EOFcat >/opt/hadoop/etc/hadoop/yarn-site.xml <<'EOF'
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>
EOFcat >/opt/hadoop/etc/hadoop/mapred-site.xml <<'EOF'
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>
EOF/opt/hadoop/bin/hdfs namenode -format -force
/opt/hadoop/sbin/hadoop-daemon.sh start namenode
/opt/hadoop/sbin/hadoop-daemon.sh start datanode
/opt/hadoop/sbin/yarn-daemon.sh start resourcemanager
/opt/hadoop/sbin/yarn-daemon.sh start nodemanager# 验证:能不能在 HDFS 操作目录;能否打开 Web UI
/opt/hadoop/bin/hdfs dfs -mkdir -p /tmp && /opt/hadoop/bin/hdfs dfs -ls /
# NameNode UI: http://localhost:9870
# YARN UI:     http://localhost:8088

变成三节点怎么做:把 fs.defaultFS 写成 hdfs://node1:9000,在 node1workers 列出三台主机;再用 start-dfs.sh/start-yarn.sh(需要 SSH 免密)。


HBase(先用 Standalone,最快上手)

做什么:下载→简单配置→启动→用 shell 验证。

cd /opt
wget -q https://archive.apache.org/dist/hbase/2.4.17/hbase-2.4.17-bin.tar.gz
tar -xzf hbase-2.4.17-bin.tar.gz && mv hbase-2.4.17 hbase
cat >/opt/hbase/conf/hbase-site.xml <<'EOF'
<configuration><property><name>hbase.cluster.distributed</name><value>false</value></property>
</configuration>
EOF/opt/hbase/bin/start-hbase.sh
echo "status" | /opt/hbase/bin/hbase shell
# 试写一行
echo "create 't1','cf'; put 't1','r1','cf:c1','v'; scan 't1'" | /opt/hbase/bin/hbase shell

变成分布式怎么做:先跑好 HDFS + ZooKeeper,把 hbase-site.xml 改为:

ini复制编辑hbase.rootdir = hdfs://node1:9000/hbase
hbase.cluster.distributed = true
hbase.zookeeper.quorum = node1,node2,node3

然后 start-hbase.sh


Spark(Standalone)

做什么:下载→启动 master+worker→跑官方示例。

cd /opt
wget -q https://archive.apache.org/dist/spark/spark-3.5.1/spark-3.5.1-bin-hadoop3.tgz
tar -xzf spark-3.5.1-bin-hadoop3.tgz && mv spark-3.5.1-bin-hadoop3 spark/opt/spark/sbin/start-master.sh
/opt/spark/sbin/start-worker.sh spark://localhost:7077/opt/spark/bin/spark-submit --master spark://localhost:7077 \--class org.apache.spark.examples.SparkPi \/opt/spark/examples/jars/spark-examples_2.12-3.5.1.jar 100
# Master UI: http://localhost:8080

变成三节点怎么做:在 node1/opt/spark/conf/slaves 写上 node2node3,三台都装好后在 node1 执行 start-master.sh + start-slaves.sh


Flink(Standalone)

做什么:下载→配置 masters/workers→启动→跑示例。

cd /opt
wget -q https://archive.apache.org/dist/flink/flink-1.17.2/flink-1.17.2-bin-scala_2.12.tgz
tar -xzf flink-1.17.2-bin-scala_2.12.tgz && mv flink-1.17.2 flinkecho "localhost:8081" > /opt/flink/conf/masters
echo "localhost"      > /opt/flink/conf/workers/opt/flink/bin/start-cluster.sh
/opt/flink/bin/flink run /opt/flink/examples/batch/WordCount.jar \--input /opt/flink/README.txt --output /tmp/wc.out
# Dashboard: http://localhost:8081

变成三节点怎么做:在 mastersnode1:8081,在 workersnode2node3,三台都装好后在 node1 执行 start-cluster.sh


常见坑与秒级排查

  • 端口不通:ss -lntp | egrep '2181|9092|9870|8088|16010|7077|8080|8081' 看监听;放行防火墙。
  • Kafka 外网/跨机连不上:advertised.listeners 要写别人能访问到的 IP/域名
  • Hadoop 报 JAVA_HOME:确认已写入 hadoop-env.sh
  • HBase 分布式连不上:确认 HDFS、ZK 正常,hbase.rootdirquorum 写对。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/93158.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/93158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

下载及交叉编译glib,记录

下载及交叉编译glib&#xff0c;记录 编译参见这篇博客 嵌入式arm交叉编译移植bluez5.0最新教程_bluez移植-CSDN博客 编译命令有更新&#xff1a; make -j4 CFLAGS"-Wno-format-overflow" glib库的作用&#xff1a; glib 是 GNOME 项目下的一个基础库&#xff0c…

从 0 到 1 玩转Claude code(蓝耘UI界面版本):AI 编程助手的服务器部署与实战指南

前言 蓝耘 Coding UI 作为基于 Claude Code 的可视化工具&#xff0c;凭借对本地项目的深度掌控、与 Git 仓库的无缝衔接以及直观的交互界面&#xff0c;正在重构开发者的工作流。本文将带你一步步完成从环境搭建到实战使用的全流程&#xff0c;让这款工具真正成为你的编程「副…

docker使用指定的MAC地址启动podman使用指定的MAC地址启动

docker指定固定的mac地址 1】创建自定义桥接网络并配置 MAC 地址保留 docker network create --driver bridge custom_bridge2】启动容器并指定使用自定义网络 docker run -it --name your-container --network custom_bridge --mac-address 02:42:ac:11:00:02 your-image--mac…

抽奖程序web程序

使用html实现抽奖程序&#xff0c;没有后台&#xff0c;如果需要后续写个后台可以配置&#xff0c;没有过多的介绍&#xff0c;看代码吧 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><title>婚礼抽奖</…

【Python办公】Excel转json(极速版)-可自定义累加字段(如有重复KEY)

目录 专栏导读 🎯 亮点特性 ⚙️ 安装与运行 🖥️ 界面与区域说明 🚀 使用示例 💡 使用建议 ❓ 常见问题(FAQ) 🧱 技术要点 完整代码 🏁 结语 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——…

JavaScript 防抖(Debounce)与节流(Throttle)

在 JavaScript 前端开发中&#xff0c;处理高频率事件&#xff08;如窗口调整、输入框输入、页面滚动&#xff09;时&#xff0c;如果不加以控制&#xff0c;会导致性能问题&#xff0c;如页面卡顿或资源浪费。防抖&#xff08;Debounce&#xff09;和节流&#xff08;Throttle…

探索无人机图传技术:创新视野与无限可能

近年来&#xff0c;无人机技术的飞速发展不仅改变了航空行业的格局&#xff0c;还深刻影响了多个领域的日常运作。无人机图传技术作为无人机的核心技术之一&#xff0c;凭借其精准的图像传输能力和高效的远程操作特性&#xff0c;正在成为各行各业的得力助手。从空中拍摄到实时…

Comfyui进入python虚拟环境

如果你的 Python 可执行文件&#xff08;python.exe&#xff09;位于 C:\comfyui\.venv\Scripts&#xff0c;那么 .venv 本身已经是一个虚拟环境&#xff0c;你只需要 激活它&#xff0c;而无需再创建一个新的虚拟环境。如何激活这个已有的虚拟环境&#xff1f; 1. 打开终端&am…

秋招春招实习百度笔试百度管培生笔试题库百度非技术岗笔试|笔试解析和攻略|题库分享

笔试介绍 百度非技术岗笔试采用的是规定时间统一笔试形式&#xff0c;管培生会有两场考试分别是7月底和8月中旬&#xff0c;其他非技术类岗位一般在8月中旬开始。 行测题必考&#xff0c;有些岗位考简答题&#xff0c;比如管培生以及产品经理等岗位。 笔试内容 笔试内容一…

低资源语言翻译:数据增强与跨语言迁移学习策略

文章目录一、低资源语言翻译的挑战1.1 数据稀缺性1.2 语言特性复杂1.3 评估困难二、数据增强策略&#xff08;Data Augmentation&#xff09;2.1 基于单语数据的增强2.2 基于平行数据的增强2.3 多模态数据增强三、跨语言迁移学习策略&#xff08;Cross-Lingual Transfer Learni…

【每天一个知识点】时间序列聚类

一、什么是时间序列聚类&#xff1f;如果把数据比作一本书&#xff0c;那么时间序列&#xff08;Time Series&#xff09;就是一本按时间顺序记录事件的日记。它可能是股票每天的价格波动、某台机器的温度曲线、一个城市的空气质量变化&#xff0c;甚至是人的心电信号。时间序列…

对抗损失(GAN)【生成器+判断器】

这个是啥呢&#xff0c;搞图片生成用的。我搜了下&#xff0c;把整体流程记录下&#xff0c;过程中会用到GAN准备数据集&#xff08;真实图像素材&#xff09; 目标生成人脸的&#xff0c;你像游戏注册时选一个脸。捏脸。那么准备真实人脸图片老规矩&#xff0c;缩放裁剪…

5分钟入门C++

这是5分钟入门 C 的精简 Demo&#xff0c;尽量涵盖核心概念&#xff1a;变量、函数、类、控制流、STL 容器&#xff0c;让你快速理解 C 的基本用法。#include <iostream> // 输入输出 #include <vector> // 动态数组 #include <algorithm> // 常用算法…

java注释功能

为了优化代码的使用&#xff0c;分享记录相关注释功能。 单行注释 // 这是单行注释文字多行注释 /* 这是多行注释文字 这是多行注释文字 注意&#xff1a;多行注释不能嵌套使用。 */文档注释 /**- 这是文档注释文字- */注释的作用 描述类或方法的功能&#xff0c;方便别人和自…

(论文速读)DiffusionDet - 扩散模型在目标检测中的开创性应用

论文题目&#xff1a;DiffusionDet: Diffusion Model for Object Detection&#xff08;DiffusionDet:物体检测的扩散模型&#xff09;会议&#xff1a;ICCV2023摘要&#xff1a;我们提出了DiffusionDet&#xff0c;这是一个新的框架&#xff0c;它将物体检测描述为从噪声盒到目…

LangChain简介

LangChain 是一个用于构建基于大语言模型&#xff08;LLM&#xff09;的应用程序的开源框架&#xff0c;它提供了一套工具、组件和接口&#xff0c; 可以将 LLM 模型、向量数据库、交互层 Prompt、外部知识、外部工具整合到一起&#xff0c;进而可以自由构建 LLM 应用。 LangCh…

为什么哈希表(字典)的查询速度有时会突然变慢

哈希表&#xff08;在许多语言中被称为“字典”或“关联数组”&#xff09;的查询速度&#xff0c;在理想情况下&#xff0c;应是接近“瞬时”的常数时间&#xff0c;然而&#xff0c;在特定场景下&#xff0c;其性能之所以会突然、无征兆地变慢&#xff0c;其根源&#xff0c;…

whisper 语种检测学习笔记

目录 transformers推理&#xff1a; transformers 源代码 网上的语种检测调用例子&#xff1a; 语种检测 api transformers推理&#xff1a; https://github.com/openai/whisper/blob/c0d2f624c09dc18e709e37c2ad90c039a4eb72a2/whisper/decoding.py waveform, sample_rat…

第1节 从函数到神经网络:AI思路的逆袭之路

&#x1f914; 开篇灵魂拷问 是不是觉得AI知识体系庞大到吓人&#xff1f;看了一堆快餐视频还是云里雾里&#xff1f;别慌&#xff01;这个系列就是要帮你打通任督二脉&#xff0c;用"既快又慢、既深入又肤浅、既有趣又严肃"的方式讲透AI基础知识&#xff01; &…

【科研绘图系列】R语言绘制多种饼图

文章目录 介绍 加载R包 数据下载 导入数据 数据预处理 画图1 画图2 画图3 画图4 画图5 画图6 系统信息 参考 介绍 【科研绘图系列】R语言绘制多种饼图 加载R包 rm(list = ls()) library(ggstatsplot) library(ggplot2) library(plotrix) library(ggpubr