1.4 Apache Hadoop完全分散式集群搭建-hadoop-最全最完整的保姆級的java大數據學習資料

来源:https://www.cnblogs.com/gitBook/archive/2022/12/05/16951456.html
-Advertisement-
Play Games

1.4 Apache Hadoop 完全分散式集群搭建 軟體和操作系統版本 Hadoop框架是採用Java語言編寫,需要java環境(jvm) JDK版本:JDK8版本 集群: 知識點學習:統一使用vmware虛擬機虛擬三台linux節點,linux操作系統:Centos7 生產階段:建議最少5台服 ...


目錄

1.4 Apache Hadoop 完全分散式集群搭建

  • 軟體和操作系統版本
    Hadoop框架是採用Java語言編寫,需要java環境(jvm)
    JDK版本:JDK8版本
    集群:
    知識點學習:統一使用vmware虛擬機虛擬三台linux節點,linux操作系統:Centos7
    生產階段:建議最少5台伺服器節點
  • Hadoop搭建方式
    單機模式:單節點模式,非集群,生產不會使用這種方式
    單機偽分散式模式:單節點,多線程模擬集群的效果,生產不會使用這種方式
    完全分散式模式:多台節點,真正的分散式Hadoop集群的搭建(生產環境建議使用這種方式)

1.4.1 虛擬機環境準備

  1. 三台虛擬機(靜態IP,關閉防火牆,修改主機名,配置免密登錄,集群時間同步)
  2. 在/opt目錄下創建文件夾
#軟體安裝包存放目錄
mkdir -p /opt/lagou/software
#軟體安裝目錄
mkdir -p /opt/lagou/servers
  1. Hadoop下載地址:

https://archive.apache.org/dist/hadoop/common/hadoop-2.9.2/

​ Hadoop官網地址:

http://hadoop.apache.org/

  1. 上傳hadoop安裝文件到/opt/lagou/software

1.4.2 集群規劃

框架 linux121 linux122 linux123
HDFS NameNode、DataNode DataNode SecondaryNameNode、DataNode
YARN NodeManager NodeManager NodeManager、ResourceManager

1.4.3 安裝Hadoop

  • 登錄linux121節點;進入/opt/lagou/software,解壓安裝文件到/opt/lagou/servers
tar -zxvf hadoop-2.9.2.tar.gz -C /opt/lagou/servers
  • 查看是否解壓成功
ll /opt/lagou/servers/hadoop-2.9.2
  • 添加Hadoop到環境變數 vim /etc/profile
#HADOOP_HOME 
export HADOOP_HOME=/opt/lagou/servers/hadoop-2.9.2 export PATH=$PATH:$HADOOP_HOME/bin 
export PATH=$PATH:$HADOOP_HOME/sbin
  • 使環境變數生效
source /etc/profile
  • 驗證hadoop
hadoop version

​ 校驗結果:
在這裡插入圖片描述

  • hadoop目錄
    在這裡插入圖片描述
  1. bin目錄:對Hadoop進行操作的相關命令,如hadoop,hdfs等
  2. etc目錄:Hadoop的配置文件目錄,如hdfs-site.xml,core-site.xml等
  3. lib目錄:Hadoop本地庫(解壓縮的依賴)
  4. sbin目錄:存放的是Hadoop集群啟動停止相關腳本,命令
  5. share目錄:Hadoop的一些jar,官方案例jar,文檔等

1.4.3.1 集群配置

Hadoop集群配置 = HDFS集群配置 + MapReduce集群配置 + Yarn集群配置

  • HDFS集群配置
    1. 將JDK路徑明確配置給HDFS(修改hadoop-env.sh)
    2. 指定NameNode節點以及數據存儲目錄(修改core-site.xml)
    3. 指定SecondaryNameNode節點(修改hdfs-site.xml)
    4. 指定DataNode從節點(修改etc/hadoop/slaves文件,每個節點配置信息占一行)
  • MapReduce集群配置
    1. 將JDK路徑明確配置給MapReduce(修改mapred-env.sh)
    2. 指定MapReduce計算框架運行Yarn資源調度框架(修改mapred-site.xml)
  • Yarn集群配置
    1. 將JDK路徑明確配置給Yarn(修改yarn-env.sh)
    2. 指定ResourceManager老大節點所在電腦節點(修改yarn-site.xml)
    3. 指定NodeManager節點(會通過slaves文件內容確定)

集群配置具體步驟:

1.4.3.1.1 HDFS集群配置
cd /opt/lagou/servers/hadoop-2.9.2/etc/hadoop
  • 配置:hadoop-env.sh

    將JDK路徑明確配置給HDFS

    vim hadoop-env.sh

export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_231
  • 指定NameNode節點以及數據存儲目錄(修改core-site.xml)

    vim core-site.xml

<!-- 指定HDFS中NameNode的地址 -->
<property> 
	<name>fs.defaultFS</name> 
	<value>hdfs://linux121:9000</value> 
</property> 
<!-- 指定Hadoop運行時產生文件的存儲目錄 --> 
<property> 
	<name>hadoop.tmp.dir</name> 
	<value>/opt/lagou/servers/hadoop-2.9.2/data/tmp</value>
</property>

core-site.xml的預設配置:

https://hadoop.apache.org/docs/r2.9.2/hadoop-project-dist/hadoop-common/core-default.xml

  • 指定secondarynamenode節點(修改hdfs-site.xml)

    vim hdfs-site.xml

<!-- 指定Hadoop輔助名稱節點主機配置 --> 
<property> 
	<name>dfs.namenode.secondary.http-address</name> 
    <value>linux123:50090</value> 
</property> 

<!-- 副本數量 --> 
<property> 
	<name>dfs.replication</name> 
	<value>3</value> 
</property>

官方預設配置
https://hadoop.apache.org/docs/r2.9.2/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

  • 指定datanode從節點(修改slaves文件,每個節點配置信息占一行)

​ vim slaves

linux121
linux122
linux123

註意:該文件中添加的內容結尾不允許有空格,文件中不允許有空行。

1.4.3.1.2 MapReduce集群配置
  • 指定MapReduce使用的jdk路徑(修改mapred-env.sh)

    vim mapred-env.sh

export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_231
  • 指定MapReduce計算框架運行Yarn資源調度框架(修改mapred-site.xml)
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<!-- 指定MR運行在Yarn上 --> 
<property> 
	<name>mapreduce.framework.name</name> 
	<value>yarn</value> 
</property>

mapred-site.xml預設配置

https://hadoop.apache.org/docs/r2.9.2/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

1.4.3.1.3 Yarn集群配置
  • 指定JDK路徑

​ vim yarn-env.sh

export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_231
  • 指定ResourceManager的master節點信息(修改yarn-site.xml)

​ vim yarn-site.xml

<!-- 指定YARN的ResourceManager的地址 --> 
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>linux123</value>
</property>

<!-- Reducer獲取數據的方式 --> 
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>

yarn-site.xml的預設配置

https://hadoop.apache.org/docs/r2.9.2/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

  • 指定NodeManager節點(slaves文件已修改)

註意:
Hadoop安裝目錄所屬用戶和所屬用戶組信息,預設是501 dialout,而我們操作Hadoop集群的用戶使用的是虛擬機的root用戶,所以為了避免出現信息混亂,修改Hadoop安裝目錄所屬用戶和用戶組!!!

chown -R root:root /opt/lagou/servers/hadoop-2.9.2

1.4.3.2 分發配置

編寫集群分發腳本rsync-script

  • rsync 遠程同步工具

rsync主要用於備份和鏡像。具有速度快、避免複製相同內容和支持符號鏈接的優點。

rsync和scp區別:用rsync做文件的複製要比scp的速度快,rsync只對差異文件做更新。scp是把所有文 件都複製過去。

  1. 基本語法
rsync   -rvl 		$pdir/$fname 	 $user@$host:$pdir/$fname

​ 命令 選項參數 要拷貝的文件路徑/名稱 目的用戶@主機:目的路徑/名稱

  1. 選項參數說明

表2-2

選項 功能
-r 遞歸
-v 顯示覆制過程
-l 拷貝符號連接
  • rsync案例

    1. 三台虛擬機安裝rsync (執行安裝需要保證機器聯網)
    [root@linux121 ~]# yum install -y rsync
    
    1. 把linux121機器上的/opt/lagou/software目錄同步到linux122伺服器的root用戶下的/opt/目錄
    [root@linux121 opt]$ rsync -rvl /opt/lagou/software/ root@linux122:/opt/lagou/software
    
  • 集群分發腳本編寫

    1. 需求:迴圈複製文件到集群所有節點的相同目錄下

      rsync命令原始拷貝:

      rsync  -rvl  	/opt/module 	root@linux123:/opt/
      
    2. 期望腳本
      腳本+要同步的文件名稱

    3. 說明:在/usr/local/bin這個目錄下存放的腳本,root用戶可以在系統任何地方直接執行。

    4. 腳本實現
      (1)在/usr/local/bin目錄下創建文件rsync-script,文件內容如下:

      [root@linux121 bin]$ touch rsync-script
      [root@linux121 bin]$ vim rsync-script
      

      在文件中編寫shell代碼

      #!/bin/bash
      
      #1 獲取命令輸入參數的個數,如果個數為0,直接退出命令 paramnum=$# 
      if((paramnum==0)); then 
      echo no params; 
      exit; 
      fi
        
      #2 根據傳入參數獲取文件名稱 
      p1=$1
      file_name=`basename $p1`
      echo fname=$file_name
        
      #3 獲取輸入參數的絕對路徑
      pdir=`cd -P $(dirname $p1); pwd`
      echo pdir=$pdir
        
      #4 獲取用戶名稱
      user=`whoami`
        
      #5 迴圈執行rsync 
      for((host=121; host<124; host++)); do 
      echo ------------------- linux$host -------------- 
      rsync -rvl $pdir/$file_name $user@linux$host:$pdir 
      done
      

      (2)修改腳本 rsync-script 具有執行許可權

      [root@linux121 bin]$ chmod 777 rsync-script
      

      (3)調用腳本形式:rsync-script 文件名稱

      [root@linux121 bin]$ rsync-script /home/root/bin
      

      (4)調用腳本分發Hadoop安裝目錄到其它節點

      [root@linux121 bin]$ rsync-script /opt/lagou/servers/hadoop-2.9.2
      

1.4.4 啟動集群

註意:如果集群是第一次啟動,需要在Namenode所在節點格式化NameNode,非第一次不用執行格式化Namenode操作!!!

1.4.4.1 單節點啟動

[root@linux121 hadoop-2.9.2]$ hadoop namenode -format

格式化命令執行效果:
在這裡插入圖片描述
格式化後創建的文件:/opt/lagou/servers/hadoop-2.9.2/data/tmp/dfs/name/current
在這裡插入圖片描述

  1. 在linux121上啟動NameNode

    [root@linux121 hadoop-2.9.2]$ hadoop-daemon.sh start namenode
    [root@linux121 hadoop-2.9.2]$ jps
    
  2. 在linux121、linux122以及linux123上分別啟動DataNode

    [root@linux121 hadoop-2.9.2]$ hadoop-daemon.sh start datanode
    [root@linux121 hadoop-2.9.2]$ jps
    3461 NameNode
    3608 Jps
    3561 DataNode
    
    [root@linux122 hadoop-2.9.2]$ hadoop-daemon.sh start datanode
    [root@linux122 hadoop-2.9.2]$ jps
    3190 DataNode
    3279 Jps
    
    [root@linux123 hadoop-2.9.2]$ hadoop-daemon.sh start datanode
    [root@linux123 hadoop-2.9.2]$ jps
    3237 Jps
    3163 DataNode
    
  3. web端查看hdfs界面

    http://linux121:50070/dfshealth.html#tab-overview

在這裡插入圖片描述

查看HDFS集群正常節點:

在這裡插入圖片描述

  1. Yarn集群單節點啟動

    [root@linux123 servers]# yarn-daemon.sh start resourcemanager
    [root@linux123 servers]# jps
    7881 ResourceManager 
    8094 Jps
    
    [root@linux122 servers]# yarn-daemon.sh start nodemanager
    [root@linux122 servers]# jps
    8166 NodeManager
    8223 Jps
    
    [root@linux121 servers]# yarn-daemon.sh start nodemanager
    [root@linux121 servers]# jps
    8166 NodeManager
    8223 Jps
    
  2. 思考:Hadoop集群每次需要一個一個節點的啟動,如果節點數增加到成千上萬個怎麼辦?

1.4.4.2 集群群起

  1. 如果已經單節點方式啟動了Hadoop,可以先停止之前的啟動的Namenode與Datanode進程,如果之前Namenode沒有執行格式化,這裡需要執行格式化!!!!

    hadoop namenode -format
    
  2. 啟動HDFS

    [root@linux121 hadoop-2.9.2]$ sbin/start-dfs.sh
    [root@linux121 hadoop-2.9.2]$ jps
    4166 NameNode
    4482 Jps
    4263 DataNode
    
    [root@linux122 hadoop-2.9.2]$ jps
    3218 DataNode
    3288 Jps
    
    [root@linux123 hadoop-2.9.2]$ jps
    3221 DataNode
    3283 SecondaryNameNode
    3364 Jps
    
  3. 啟動YARN

    [root@linux123 hadoop-2.9.2]$ sbin/start-yarn.sh
    

註意:NameNode和ResourceManger不是在同一臺機器,不能在NameNode上啟動 YARN,應該 在ResouceManager所在的機器上啟動YARN。

1.4.4.3 Hadoop集群啟動停止命令彙總

  1. 各個服務組件逐一啟動/停止

    1. 分別啟動/停止HDFS組件

      hadoop-daemon.sh  start / stop  namenode / datanode / secondarynamenode
      
    2. 啟動/停止YARN

      yarn-daemon.sh  start / stop  resourcemanager / nodemanager
      
  2. 各個模塊分開啟動/停止(配置ssh是前提)常用

    1. 整體啟動/停止HDFS

      start-dfs.sh  /  stop-dfs.sh
      
    2. 整體啟動/停止YARN

      start-yarn.sh  /  stop-yarn.sh
      

1.4.5 集群測試

  1. HDFS 分散式存儲初體驗

    從linux本地文件系統上傳下載文件驗證HDFS集群工作正常

    hdfs dfs -mkdir -p /test/input
    #本地hoome目錄創建一個文件
    cd /root
    
    vim test.txt
    
    hello hdfs
    
    #上傳linxu文件到Hdfs
    hdfs dfs -put /root/test.txt  /test/input
    
    #從Hdfs下載文件到linux本地
    hdfs dfs -get /test/input/test.txt
    
  2. MapReduce 分散式計算初體驗

    • 在HDFS文件系統根目錄下麵創建一個wcinput文件夾

      [root@linux121 hadoop-2.9.2]$ hdfs dfs -mkdir /wcinput
      
    • 在/root/目錄下創建一個wc.txt文件(本地文件系統)

      [root@linux121 hadoop-2.9.2]$ cd /root/
      [root@linux121 wcinput]$ touch wc.txt
      
    • 編輯wc.txt文件

      [root@linux121 wcinput]$ vi wc.txt
      
    • 在文件中輸入如下內容

      hadoop mapreduce yarn
      hdfs hadoop mapreduce
      mapreduce yarn lagou
      lagou
      lagou
      
    • 保存退出

      : wq! 
      
    • 上傳wc.txt到Hdfs目錄/wcinput下

      hdfs dfs -put wc.txt /wcinput
      
    • 回到Hadoop目錄/opt/lagou/servers/hadoop-2.9.2

    • 執行程式

      [root@linux121 hadoop-2.9.2]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /wcinput /wcoutput
      
    • 查看結果

      [root@linux121 hadoop-2.9.2]$ hdfs dfs -cat /wcoutput/part-r-00000
      
      hadoop 	 	2
      hdfs		1
      lagou 		3
      mapreduce	3
      yarn		2
      

1.4.6 配置歷史伺服器

在Yarn中運行的任務產生的日誌數據不能查看,為了查看程式的歷史運行情況,需要配置一下歷史日誌伺服器。具體配置步驟如下:

  1. 配置mapred-site.xml

    [root@linux121 hadoop]$ vi mapred-site.xml
    

    在該文件裡面增加如下配置。

    <!-- 歷史伺服器端地址 -->
    <property>
    	<name>mapreduce.jobhistory.address</name>
    	<value>linux121:10020</value>
    </property>
    <!-- 歷史伺服器web端地址 -->
    <property>
    	<name>mapreduce.jobhistory.webapp.address</name>
        <value>linux121:19888</value>
    </property>
    
  2. 分發mapred-site.xml到其它節點

    rsync-script mapred-site.xml
    
  3. 啟動歷史伺服器

    [root@linux121 hadoop-2.9.2]$ sbin/mr-jobhistory-daemon.sh start historyserver
    
  4. 查看歷史伺服器是否啟動

    [root@linux121 hadoop-2.9.2]$ jps
    
  5. 查看JobHistory
    http://linux121:19888/jobhistory

1.4.6.1 配置日誌的聚集

日誌聚集:應用(Job)運行完成以後,將應用運行日誌信息從各個task彙總上傳到HDFS系統上。

日誌聚集功能好處:可以方便的查看到程式運行詳情,方便開發調試。

註意:開啟日誌聚集功能,需要重新啟動NodeManager 、ResourceManager和 HistoryManager。

開啟日誌聚集功能具體步驟如下:

  1. 配置yarn-site.xml

    [root@linux121 hadoop]$ vi yarn-site.xml
    

    在該文件裡面增加如下配置。

    <!-- 日誌聚集功能開啟 -->
    <property>
    	<name>yarn.log-aggregation-enable</name>
    	<value>true</value>
    </property>
    <!-- 日誌保留時間設置7天 -->
    <property>
    	<name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    <property>
        <name>yarn.log.server.url</name>
        <value>http://linux121:19888/jobhistory/logs</value>
    </property>
    
  2. 分發yarn-site.xml到集群其它節點

    rsync-script yarn-site.xml
    
  3. 關閉NodeManager 、ResourceManager和HistoryManager

    [root@linux121 hadoop-2.9.2]$ sbin/yarn-daemon.sh stop resourcemanager
    
    [root@linux121 hadoop-2.9.2]$ sbin/yarn-daemon.sh stop nodemanager
    
    [root@linux121 hadoop-2.9.2]$ sbin/mr-jobhistory-daemon.sh stop historyserver
    
  4. 啟動NodeManager 、ResourceManager和HistoryManager

    [root@linux121 hadoop-2.9.2]$ sbin/yarn-daemon.sh start resourcemanager
    
    [root@linux121 hadoop-2.9.2]$ sbin/yarn-daemon.sh start nodemanager
    
    [root@linux121 hadoop-2.9.2]$ sbin/mr-jobhistory-daemon.sh start historyserver
    
  5. 刪除HDFS上已經存在的輸出文件

    [root@linux121 hadoop-2.9.2]$ bin/hdfs dfs -rm -R /wcoutput
    
  6. 執行WordCount程式

    [root@linux121 hadoop-2.9.2]$ hadoop jar share/hadoop/mapreduce/hadoop- mapreduce-examples-2.9.2.jar wordcount /wcinput /wcoutput
    
  7. 查看日誌,如圖所示

    http://linux121:19888/jobhistory

在這裡插入圖片描述在這裡插入圖片描述
在這裡插入圖片描述


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 從技術生態發展過程及理念、產品級解決方案理念、產品系統框架及主要功能介紹、產品系統二次開發和應用案例等5個方面進行了主題發言。 ...
  • 一:背景 1.講故事 這周有個朋友找到我,說他的程式出現了記憶體緩慢增長,沒有回頭的趨勢,讓我幫忙看下到底怎麼回事,據朋友說這個問題已經困擾他快一周了,還是沒能找到最終的問題,看樣子這個問題比較刁鑽,不管怎麼說,先祭出 WinDbg。 二:WinDbg 分析 1. 托管還是非托管泄露 一直關註這個系列 ...
  • 前言 本文藉鑒文章:https://www.yuque.com/dengfenglai-esbap/kb/mc4k41?#xOxNG 在此基礎上修改了一點(照著原來的做沒成功),感謝這位師傅給的資源。 1、環境準備 1、主機:伺服器CentOs7 2、Docker版本:20.10.2 3、Docke ...
  • 一、引子 我們都知道對指針( Pointer)的操作,實際上是對電腦記憶體地址的操作,通過訪問記憶體地址實現間接訪問該地址中保存的數據。其實就是CPU的定址方式中的間接定址。簡單概括正常使用指針時的3個步驟為: 定義指針變數 綁定指針即給指針變數賦值 解引用即間接訪問目標變數通過一個簡單的例子來看這3 ...
  • 11章 併發數據 瞭解併發需要先瞭解的概念: 1.資料庫是一個可以共用資源,可以多用戶同時使用一個資料庫,該資料庫稱為多用戶資料庫,如訂票系統、銀行系統 2.多事務執行方式: 1.事務串列執行 : 務執行完在執行下一個事務 - 缺點資源浪費 2.交叉併發方式 : 在單處理機系統中,事務的並行事務是提 ...
  • GreatSQL社區原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 GreatSQL是MySQL的國產分支版本,使用上與MySQL一致。 作者:王權富貴 1.概述 MySQL的分區表沒有禁止NULL值作為分區表達式的值,無論它是列值還是用戶提供的表達式的值,需要記住NULL值不是數字。My ...
  • 什麼是直方圖,在MySQL 8.0.3如何創建直方圖?MySQL的直方圖是如何影響執行計劃生成的?創建直方圖有哪些註意事項?直方圖和索引對優化器的選擇上有什麼差異,又該如何選擇?如何判斷直方圖對執行計劃的影響?MySQL官方blog的這篇文章用非常具體的示例回答了這一系列問題,let's go。原文 ...
  • 我國製造業擁有31個大類、179個中類和609個小類,是全球產業門類最齊全、產業體系最完整的製造業。二十大報告中強調:“堅持把發展經濟的著力點放在實體經濟上”“推動製造業高端化、智能化、綠色化發展”。這為中國製造邁向高質量發展指明瞭方向。 疫情發生以來,製造業面臨用工難、復產復工難、成本高、數據管理 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...