01-Hadoop概述及基礎環境搭建

来源:https://www.cnblogs.com/zss0520/archive/2019/05/01/10801001.html
-Advertisement-
Play Games

1 hadoop概述 1.1 為什麼會有大數據處理 1 hadoop概述 1.1 為什麼會有大數據處理 傳統模式已經滿足不了大數據的增長 1)存儲問題 傳統資料庫:存儲億級別的數據,需要高性能的伺服器;並且解決不了本質問題;只能存結構化數據 大數據存儲:通過分散式存儲,將數據存到一臺機器的同時,還可 ...


1 hadoop概述

 

1.1 為什麼會有大數據處理

 

傳統模式已經滿足不了大數據的增長 1)存儲問題
  • 傳統資料庫:存儲億級別的數據,需要高性能的伺服器;並且解決不了本質問題;只能存結構化數據
  • 大數據存儲:通過分散式存儲,將數據存到一臺機器的同時,還可以備份到其他機器上,這樣當某台機器掛掉了或磁碟壞掉了,在其他機器上可以拿到該數據,數據不會丟失(可備份)
  • 磁碟不夠掛磁碟,機器不夠加機器(可橫行擴展)
  2)分析數據問題
  • 傳統資料庫: 當資料庫存儲億級別的數據後,查詢效率也下降的很快,查詢不能秒級返回
  • 大數據分析:分散式計算。也可以橫行擴展
                              MapReduce:(批處理)多次與磁碟進行交互,運行比較慢                                                        運算的數據是有範圍的,運算完一次,就代表該批次處理完成                               實時計算:     (流處理)對時間的要求很高,基本可以快速處理完成                實時計算的數據,沒有範圍的,會根據某個時間的範圍進行計算。spark streaming  ,storm,  flink

 

1.2 什麼是hadoop?

 

Hadoop項目是以可靠、可擴展和分散式計算為目的而發展的開源軟體 Hadoop 是Apache的頂級項目 Apache:APACHE軟體基金會,支持Apache的開源軟體社區項目,為公眾提供好的軟體產品 項目主頁:http://hadoop.apache.org

 

大數據的主要特點(4V)
  • 數據容量大(Volume)。從TB級別,躍升到PB級別
  • 數據類型繁多(Variety)。包括網路日誌、音頻、視頻、圖片、地理位置信息等,這些多類型的數據對數據的處理能力提出了更高要求
  • 商業價值高(Value)。客戶群體細分,提供定製化服務;發掘新的需求同時提高投資的回報率;降低服務成本
  • 處理速度快(Velocity)。這是大數據區分於傳統數據挖掘的最顯著特征。預計到2020年,全球數據使用量將達到35.2ZB。在如此海量的數據面前,處理數據的效率就是企業的生命
  hadoop的歷史起源 創始人: Doug Cutting  和 Mike Cafarella  2002開始,兩位創始人開發開源搜索引擎解決方案: Nutch 2004年受Google Lab 開發的 Map/Reduce 和 Google File System(GFS) 的啟發,NDFS( Nutch Distributed File System )引入Nutch 2006年 在Yahoo!工作的Doug Cutting將這套大數據處理軟體命名為Hadoop

 

hadoop核心組件 用於解決兩個核心問題:存儲和計算 核心組件 1)Hadoop Common:一組分散式文件系統和通用I/O的組件與介面(序列化、Java RPC和持久化數據結構) 2)Hadoop Distributed FileSystem(Hadoop分散式文件系統HDFS)         分散式存儲, 有備份, 可擴展 3)Hadoop MapReduce(分散式計算框架)         分散式計算,多台機器同時計算一部分,得到部分結果,再將部分結果彙總,得到總體的結果(可擴展) 4)Hadoop YARN(分散式資源管理器)         MapReduce任務計算的時候,運行在yarn上,yarn提供資源
  hadoop的框架演變

Hadoop1.0 的 MapReduce(MR1):集資源管理和任務調用、計算功能綁在一起,擴展性較差,不支持多計算框架

Hadoop2.0 的Yarn(MRv2):將資源管理和任務調用兩個功能分開,提高擴展性,並支持多計算框架   hadoop生態圈  

 

1)HDFS(Hadoop分散式文件系統)         HDFS是一種數據分散式保存機制,數據被保存在電腦集群上。數據寫入一次,讀取多次。HDFS 為hive、HBase等工具提供了基礎   2)MapReduce(分散式計算框架)         MapReduce是一種分散式計算模型,用以進行大數據量的計算,是一種離線計算框架         這個 MapReduce 的計算過程簡而言之,就是將大數據集分解為成若幹個小數據集,每個(或若幹個)數據集分別由集群中的一個結點(一般就是一臺主機)進行處理並生成中間結果,然後將每個結點的中間結果進行合併, 形成最終結果   3)HBASE(分散式列存資料庫)         HBase是一個建立在HDFS之上,面向列的NoSQL資料庫,用於快速讀/寫大量數據。HBase使用Zookeeper進行管理,確保所有組件都正常運行
  4)Sqoop(數據ETL/同步工具)         Sqoop是SQL-to-Hadoop的縮寫,主要用於傳統資料庫和Hadoop之間傳輸數據   5)flume(分散式日誌收集系統)         Flume是一個分散式、可靠、和高可用的海量日誌聚合的系統,如日誌數據從各種網站伺服器上彙集起來存儲到HDFS,HBase等集中存儲器中   6)Storm(流示計算、實時計算)         Storm是一個免費開源、分散式、高容錯的實時計算系統。Storm令持續不斷的流計算變得容易,彌補了Hadoop批處理所不能滿足的實時要求。Storm經常用於在實時分析、線上機器學習、持續計算、分散式遠程調用和ETL等領域   7)Zookeeper(分散式協作服務)         Hadoop的許多組件依賴於Zookeeper,它運行在電腦集群上面,用於管理Hadoop操作         作用:解決分散式環境下的數據管理問題:統一命名,狀態同步,集群管理,配置同步等   8)Pig(ad-hoc腳本)         Pig定義了一種數據流語言—Pig Latin,它是MapReduce編程的複雜性的抽象,Pig平臺包括運行環境和用於分析Hadoop數據集的腳本語言(Pig Latin)         其編譯器將Pig Latin 翻譯成MapReduce 程式序列將腳本轉換為MapReduce任務在Hadoop上執行。通常用於進行離線分析   9)Hive(數據倉庫)         Hive定義了一種類似SQL的查詢語言(HQL),將SQL轉化為MapReduce任務在Hadoop上執行。通常用於離線分析         HQL用於運行存儲在Hadoop上的查詢語句,Hive讓不熟悉MapReduce開發人員也能編寫數據查詢語句,然後這些語句被翻譯為Hadoop上面的MapReduce任務   10)Spark(記憶體計算模型)         Spark提供了一個更快、更通用的數據處理平臺。和Hadoop相比,Spark可以讓你的程式在記憶體中運行時速度提升100倍,或者在磁碟上運行時速度提升10倍。   11)Oozie(工作流調度器)         Oozi可以把多個Map/Reduce作業組合到一個邏輯工作單元中,從而完成更大型的任務
  12)Mahout(數據挖掘演算法庫)         Mahout的主要目標是創建一些可擴展的機器學習領域經典演算法的實現,旨在幫助開發人員更加方便快捷地創建智能應用程式   13)Hadoop YARN(分散式資源管理器)         YARN是下一代MapReduce,即MRv2,是在第一代MapReduce基礎上演變而來的,主要是為瞭解決原始Hadoop擴展性較差,不支持多計算框架而提出的         其核心思想:                 將MR1中JobTracker的資源管理和作業調用兩個功能分開,分別由ResourceManager和ApplicationMaster進程來實現                 1)ResourceManager:負責整個集群的資源管理和調度                 2)ApplicationMaster:負責應用程式相關事務,比如任務調度、任務監控和容錯等   14)Tez(DAG計算模型)         一個運行在YARN之上支持DAG(有向無環圖)作業的計算框架         Tez的目的就是幫助Hadoop處理這些MapReduce處理不了的用例場景,如機器學習   什麼是集群,集群和服務的關係。

 

  集群規劃: 一個主節點:nn1.hadoop, 一個從節點:nn2.hadoop, 三個工作節點:s1.hadoop、s2.hadoop、s3.hadoop   網路規劃:  nn1.hadoop   192.168.174.160 nn2.hadoop    192.168.174.161 s1.hadoop      192.168.174.162 s2.hadoop      192.168.174.163 s3.hadoop      192.168.174.164   在企業里還應有操作機(跳板機)

 

2 基礎環境搭建

 

配置網路
 1 // 查看網卡配置文件是否一致
 2 vim /etc/sysconfig/network-scripts/ifcfg-ens33
 3  4 // 文件配置如下:
 5 TYPE="Ethernet"
 6 BOOTPROTO=static
 7 DEFROUTE="yes"
 8 IPV4_FAILURE_FATAL="no"
 9 IPV6INIT="yes"
10 IPV6_AUTOCONF="yes"
11 IPV6_DEFROUTE="yes"
12 IPV6_FAILURE_FATAL="no"
13 NAME="eno16777736"
14 UUID="cb7a79a9-8114-482b-93f0-fce73bcef88b"
15 DEVICE="eno16777736"
16 ONBOOT="yes"
17 IPADDR=192.168.142.200
18 PREFIX=24
19 GATEWAY=192.168.142.2
20 DNS1=192.168.142.2
21 DNS2=8.8.8.8
22     
23 // 重啟網路
24 systemctl restart network.service  或   service network restart
25 // ping 百度,測試網路是否正常
26 ping www.baidu.com 

 

2.1 配置阿裡雲 yum 源

 

1)安裝sz rz工具,用於以後用rz sz上傳下載文件
yum install -y lrzsz

 

2)下載 repo 文件 文件下載地址: http://mirrors.aliyun.com/repo/Centos-7.repo   3)用 rz 將下載的 Centos-7.repo 文件上傳到Linux系統的某個目錄下   4)備份並替換系統的repo文件
1 mv Centos-7.repo /etc/yum.repos.d/ 
2 cd /etc/yum.repos.d/ 
3 mv CentOS-Base.repo CentOS-Base.repo.bak
4 mv Centos-7.repo CentOS-Base.repo

 

5)執行yum源更新命令  
yum clean all 
# 伺服器的包信息下載到本地電腦緩存起來
yum makecache 
yum update -y

配置完畢。

 

2.2 安裝常用軟體

 

1 yum install -y openssh-server vim gcc gcc-c++ glibc-headers bzip2-devel lzo-devel curl wget openssh-clients zlib-devel autoconf automake cmake libtool openssl-devel fuse-devel snappy-devel telnet unzip zip net-tools.x86_64 firewalld systemd

 

2.3 關閉防火牆

 

查看防火牆狀態:firewall-cmd --state 關閉防火牆:systemctl stop firewalld.service 禁止防火牆開機啟動: systemctl disable firewalld.service 查看服務是否開機啟動: systemctl is-enabled firewalld.service  

2.4 關閉SELinux

 

查看關閉狀態 /usr/sbin/sestatus -v 關閉方法 vim /etc/selinux/config 把文件里的SELINUX=disabled   重啟伺服器 reboot 啟動之後用 /usr/sbin/sestatus -v 查看selinux的修改狀態  

2.5 安裝JDK

 

1)JDK 下載地址 地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

2)安裝JDK 用 rz 命令將安裝文件上傳Linux 系統 rpm -ivh jdk-8u144-linux-x64.rpm   3)配置JDK 環境變數 修改系統環境變數文件 /etc/profile,在文件尾部追加以下內容
1 export JAVA_HOME=/usr/java/jdk1.8.0_144
2 export JRE_HOME=$JAVA_HOME/jre
3 export PATH=$PATH:$JAVA_HOME/bin
4 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 

export 設置或顯示環境變數 用export修飾一個變數,A腳本中調用B腳本,B腳本也能拿到這個變數

 

4)使修改生效,並配置JDK
1 #使修改生效
2 source /etc/profile
3 #查看系統變數值
4 env | grep PATH
5 #檢查JDK 配置情況
6 env | grep JAVA_HOME

 

2.6 修改主安裝常用軟體主機名

 

1 hostnamectl set-hostname nn1.hadoop
2 #修改完後用hostname可查看當前主機名
3 hostname

 

2.7 創建hadoop 用戶並設置 hadoop 用戶密碼

 

1 #創建hadoop用戶
2 useradd hadoop
3 4 #給hadoop用戶設置密碼
5 hadoop000

 

2.8 給hadoop用戶,配置SSH密鑰

 

配置SSH密鑰的目的:使得多台機器間可以免密登錄。 實現原理: 使用ssh-keygen在linux01 上生成private和public密鑰,將生成的public密鑰拷貝到遠程機器linux02 上後,就可以使用ssh命令無需密碼登錄到另外一臺機器linux02上。如果想互相登錄,則要把公鑰私鑰都拷貝到遠程機器linux02 上。 實現步驟:
 1 #切換到hadoop用戶
 2 su – hadoop                      
 3 #創建.ssh目錄
 4 mkdir ~/.ssh   
 5 #生成ssh公私鑰                         
 6 ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''    
 7 #輸出公鑰文件內容並且重新輸入到~/.ssh/authorized_keys文件中        
 8 cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys 
 9 #給~/.ssh文件加上700許可權
10 chmod 700 ~/.ssh       
11 #給~/.ssh/authorized_keys加上600許可權       
12 chmod 600 ~/.ssh/authorized_keys 

 

2.9 禁止非 whell 組用戶切換到root,配置免密切換root

 

通常情況下,一般用戶通過執行“su -”命令、輸入正確的root密碼,可以登錄為root用戶來對系統進行管理員級別的配置。 但是,為了更進一步加強系統的安全性,有必要建立一個管理員的組,只允許這個組的用戶來執行 “su -” 命令登錄為 root 用戶,而讓其他組的用戶即使執行 “su -” 、輸入了正確的 root 密碼,也無法登錄為 root 用戶。在UNIX和Linux下,這個組的名稱通常為 “wheel” 。   回到root用戶 1)修改/etc/pam.d/su配置 su 時要求用戶加入到wheel組 修改/etc/pam.d/su文件,將“#auth        required    pam_wheel.so”替換成“auth        required    pam_wheel.so” 修改/etc/pam.d/su文件,將“#auth        sufficient    pam_wheel.so”替換成“auth        sufficient    pam_wheel.so”

 

2)修改/etc/login.defs文件 只有wheel組可以su 到root cp /etc/login.defs /etc/login.defs_back      先做個備份 tail /etc/login.defs                                      從文件底部查看

 

3) 添加用戶到管理員,禁止普通用戶su 到 root
1 #把hadoop用戶加到wheel組裡
2 [root@nn1 ~]# gpasswd -a hadoop wheel
3 #查看wheel組裡是否有hadoop用戶
4 [root@nn1 ~]# cat /etc/group | grep wheel

 

4)用 hadoop 用戶驗證一下,由於 hadoop 沒有在wheel 組裡,所以沒有 su - root 許可權。

 

5)修改/etc/pam.d/su文件(上面已經配好) 將字元串“#auth        sufficient    pam_wheel.so”替換成“auth    sufficient    pam_wheel.so”  

2.10 配置hosts 文件

 

在克隆機器前,配置nn1 機器的 /etc/hosts 文件,文件內需要配置nn1、nn2、s1、s2、s3 所有機器的IP 和 主機名。

修改/etc/hosts文件,追加以下內容。vim /etc/hosts
1 192.168.174.160 nn1.hadoop
2 192.168.174.161 nn2.hadoop
3 192.168.174.162 s1.hadoop
4 192.168.174.163 s2.hadoop
5 192.168.174.164 s3.hadoop

 

2.11 克隆4台機器

 

執行完上面的命令,一個基礎的linux系統就配置好了。然後再根據這個虛擬機克隆出 4個linux系統

其中:nn2.hadoop: 從節點

           s1.hadoop、s2.hadoop、s3.hadoop:三個工作節點

並用hadoop用戶,測試彼此之間是否能進行ssh通信

1) 虛擬機克隆

右鍵 nn1 機器→ 管理 → 克隆。

克隆完成後,需要給克隆的虛擬機配置靜態IP。

2)配置靜態IP

1)查看網卡硬體名稱和基本信息  ip add 

虛擬機會給每個克隆的虛擬機創建新網卡,如上面的 ens33 。 如果網卡設備信息中沒有顯示IP,則需要配置配置文件 cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33  service network restart ifcfg-xxx 中的xxx 與網卡名相同後,配置ifcfg-xxx 文件
 1 TYPE="Ethernet"
 2 BOOTPROTO="static"
 3 DEFROUTE="yes"
 4 PEERDNS="yes"
 5 PEERROUTES="yes"
 6 IPV4_FAILURE_FATAL="no"
 7 IPV6INIT="yes"
 8 IPV6_AUTOCONF="yes"
 9 IPV6_DEFROUTE="yes"
10 IPV6_PEERDNS="yes"
11 IPV6_PEERROUTES="yes"
12 IPV6_FAILURE_FATAL="no"
13 NAME="ens33"
14 UUID="d15377eb-6ffa-44c9-a06d-f7eb00f49f44"
15 DEVICE="ens33"
16 ONBOOT="yes"
17 IPADDR=192.168.142.133
18 PREFIX=24
19 GATEWAY=192.168.142.2
20 DNS1=192.168.142.2
21 DNS2=8.8.8.8

 

需要修改的內容,配置完的網卡文件

 

配置完後,用systemctl restart network.service重啟網路服務,當前的ssh就連接不上了,是因為網路IP被改變成你自己設置的靜態IP。 用 ip add 查看網卡信息   用 ping www.baidu.com 看是否能連接外網。
1 hostnamectl set-hostname nn1.hadoop
2 #修改完後用hostname可查看當前主機名
3 hostname

 

如果上不了網執行以下操作   3)配置 /etc/resolv.conf  的 nameserver cat /etc/resolv.conf    查看nameserver是否被設置正確  vim /etc/resolv.conf 修改文件,如果不存在nameserver就在文件下麵添加,如果存在就修改,把nameserver 設置成自己對應的DNS。   4)停止掉NetworkManager服務 五台一起執行
1 // 停止NetworkManager服務
2 systemctl stop NetworkManager.service
3 // 並設置成開機不啟動
4 systemctl disable NetworkManager.service
5 // 之後重啟網路服務
6 systemctl restart network.service

 

5)修改每個機器的主機名
1 hostnamectl set-hostname nn2.hadoop
2 hostnamectl set-hostname s1.hadoop
3 hostnamectl set-hostname s2.hadoop
4 hostnamectl set-hostname s3.hadoop

 

批量腳本說明及使用

 

3.1 批量腳本說明

 

執行腳本要給腳本加上可執行許可權
1 chmod -R +x ~/hadoop_op

 

exe.sh : 執行su 命令,與ssh_root.sh 配套使用 ips :用於存放要操作的主機列表,用回車或空格隔開 scp_all.sh  :用hadoop用戶拷貝當前機器的文件到其他操作機 ssh_all.sh  :用hadoop 用戶可登陸其他操作機執行相應操作 ssh_root.sh : 用hadoop 用戶登錄其他操作機,並su 到 root 用戶,以root 用戶執行相應操作,與exe.sh 配套使用   1)ips

 

 2)ssh_all.sh

 

 3)ssh_root.sh

 

 4)exe.sh

 

 5)scp_all.sh    

3.2 批量腳本的使用

 

1)將批量腳本上傳到機器上 把hadoop_op.zip文件用 rz 命令上傳到 nn1.hadoop 機器上   2)解壓批量腳本,並修改批量腳本許可權 一般先切換到當前使用用戶的home目錄下 解壓:        unzip hadoop_op.zip     修改許可權:chmod -R 775 ./hadoop_op   3)測試批量SSH命令 ./ssh_all.sh hostname   4)測試批量傳文件     如果想將nn1.hadoop 機器上/root下的s1 文件,分發到其他機器的/root/dir/ 目錄下,該如何操作? 1)nn1.hadoop:將/root/s1 文件拷貝到hadoop家目錄下

 

2)多機分發腳本,將s1文件分發到其他機器的hadoop家目錄

  這步一般的是分發到/tmp 臨時目錄下,這個目錄linux會定期刪除 3)執行ssh_root.sh  在root家目錄下創建dir目錄

  4)執行ssh_root.sh 將每台機器的hadoop用戶家目錄下的s1文件拷貝到/root/dir目錄下

 

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

-Advertisement-
Play Games
更多相關文章
  • 本篇是對EFCore 進行下封裝並實現基本的增刪改查的同步非同步方法及針對不同資料庫的批量插入、sql語句直接操作資料庫; 一、 先定義基礎倉儲介面IRepository 二、實現IRepository介面 三、BaseRepository是個抽象類,有些比較複雜的sql語句通過EF來處理比較麻煩,還 ...
  • 項目開始設計的是運行在windows下,所以一開始採用的是windows服務模式來獲取多媒體文件信息,後來要求調整為可以在Linux下運行,經過這兩天的資料查找,實現了Linux下通過.NET來獲取多媒體文件信息的功能。詳情如下: 1、運行環境是CentOS 7 2、編譯環境是VS2017+.NET ...
  • 為什麼說是最佳實踐呢?因為在實際開發中踩坑了,而且發現網上大多數文章給出的解決方法都不能很好地解決問題。尤其是在獲取類型為 ,輸出為: 數據的時候。網上千篇一律的說寫一個 的擴展。但是給出的代碼 中對於 方法都沒有貼出代碼或者 方法的書寫存在一定的問題。這就導致了,如果你執行一個Oracle存儲過程 ...
  • 在接觸supervisor進程管理工具之前,使用springboot打包部署到linux伺服器的流程是這樣子的,如下圖所示: 上圖展示的就是最一般的流程,如果項目是小項目或者demo可以這樣子去部署,但是實際生產中會有各種各樣的問題存在,比如: 1. 項目發佈之後,由於各種可能的原因,伺服器宕機或者 ...
  • bios必須設置u盤為第一啟動項 編輯E:\EFI\BOOT\grub.cfg中所有inst.stage2=hd:LABEL=*與捲標名稱一致(區分大小寫)(linux系統寫入鏡像無需修改) inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 ...
  • 格式: echo -e "\033[字背景顏色;字體顏色m字元串\033[0m" 轉義序列要是通過彩色化提示符來增加個性化,就要用到轉義序列。 轉義序列就是一個讓 shell 執行一個特殊步驟的控制指令。 轉義序列通常都是以 ESC 開頭(這也是它的命名原因)。 在 shell 里表示為 ^[。這種 ...
  • 安裝Linux操作系統的5種方法以及心得這幾天沒有調別的東西,想起自己還不太會在沒有安裝光碟的時候安裝Linux,於是試了一下Linux的五種安裝方法,下麵是我的一些 篇一:安裝Linux操作系統的5種方法以及心得 這幾天沒有調別的東西,想起自己還不太會在沒有安裝光碟的時候安裝Linux,於是試了一 ...
  • Linux 編寫安全巡檢腳本 檢測/etc/passwd,/etc/shadow文件是否鎖定 檢測/etc/login.defs配置文件中密碼有效期設置是否得當 檢查所有用戶賬戶(非系統賬戶)中是否存在密碼永久有效問題(檢查/etc/shadow文件每一行中的密碼期限值) 檢查系統預設歷史命令記錄條 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...