五、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
英文地址,請注明出處:http://en.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