一篇瞭解大數據架構及Hadoop生態圈

来源:https://www.cnblogs.com/smuxiaolei/archive/2019/05/11/10847236.html
-Advertisement-
Play Games

一篇瞭解大數據架構及Hadoop生態圈 閱讀建議,有一定基礎的閱讀順序為1,2,3,4節,沒有基礎的閱讀順序為2,3,4,1節。 第一節 集群規劃 大數據集群規劃(以CDH集群為例),參考鏈接: https://www.cloudera.com/documentation/enterprise/la ...


一篇瞭解大數據架構及Hadoop生態圈

閱讀建議,有一定基礎的閱讀順序為1,2,3,4節,沒有基礎的閱讀順序為2,3,4,1節。

第一節 集群規劃

大數據集群規劃(以CDH集群為例),參考鏈接:

https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_host_allocations.html

 

https://blog.csdn.net/xuefenxi/article/details/81563033

Cloudera(CDH)簡介

官方文檔https://www.cloudera.com/documentation/enterprise/latest.html

CDH(Clouder's Distribution Including Apache hadoop),基於web的用戶界面,支持大多數Hadoop組件,包括HDFS、MapReduce、Hive、pig、Hbase、Zookeeper、Sqoop,簡化了大數據平臺的安裝和使用難度。

Cloudera作為一個強大的商業版數據中心管理工具,提供了各種能夠快速穩定運行的數據計算框架。

 

CDH集群可以劃分為不同的角色,主要包括以下幾種:

  1. 管理節點(Master Hosts):主要用於運行Hadoop的管理進程,比如HDFS的NameNode,YARN的ResourceManager。
  2. 工具節點(Utility Hosts):主要用於運行非管理進程的其他進程,比如Cloudera Manager和Hive Metastore.
  3. 邊緣節點(Gateway Hosts):用於集群中啟動作業的客戶機器,邊緣節點的數量取決於工作負載的類型和數量。
  4. 工作節點(Worker Hosts):用戶運行DataNode以及其他分散式進程。

 

集群大小劃分:

    測試/開發集群(小於10台),小規模集群(10-20台),中小規模集群(20-50台),中等規模集群(50-100台),大型集群(100-200台),超大規模集群(200-500台),巨型規模集群(500台以上)。每台機器的大小通常為32G物理記憶體,1T磁碟大小。

 

測試開發集群(邏輯劃分):1台管理節點+1台工具節點/1台邊緣節點+N台工作節點。

  

Master Hosts

Utility Hosts

Gateway Hosts

Worker Hosts

Master Host 1:

  • NameNode
  • YARN ResourceManager
  • JobHistory Server
  • ZooKeeper
  • Kudu master
  • Spark History Server

One host for all Utility and Gateway roles:

  • Secondary NameNode
  • Cloudera Manager
  • Cloudera Manager Management Service
  • Hive Metastore
  • HiveServer2
  • Impala Catalog Server
  • Impala StateStore
  • Hue
  • Oozie
  • Flume
  • Gateway configuration

3 - 10 Worker Hosts:

  • DataNode
  • NodeManager
  • Impalad
  • Kudu tablet server

(可在Cloudera Manager界面查看,埠號:7180)

1台機器上部署管理節點,通常包括的角色:

NN: NameNode (HDFS);

SHS: Spark History Server (Spark);

RM: Resource Manager (YARN);

JHS: JobHistoryServer

ZK: Zookeeper;

KM: kudu Master

ISS: Impala Statestore

1台機器部署工具節點/邊緣節點:

工具節點通常包括的角色:

    CM: Cloudera Manager

    JN: JournalNode

    CMS: Cloudera Management service

    ICS: Impala Catelog service

    NMS: Navigator Metadata

    HMS: Hive Metadata

    NAS: Navigator Audit Srver

    ZK, Fluem, Sqoop, Hue, HttpFS

邊緣節點通常包括的角色:

    GW: Gateway configuration

    Hue, Sqoop, Flume, HiveServer

工作節點通常包括的角色:

    Impala Daemon, NodeManager, DataNode, Kudu Tablet Server

 

第二節 Hadoop生態圈

Hadoop生態體系中,HDFS提供文件存儲,YARN提供資源管理,在此基礎上,進行各種處理,包括mapreduce、Tez、Sprak、Storm等計算。

圖 Hadoop生態體系

 

hadoop基礎:https://blog.csdn.net/chengyuqiang/article/category/6905123/6

 

第三節 Hadoop三大核心組件

Hadoop集群具體來說包含兩個集群:HDFS集群和YARN集群,兩者邏輯上分離,但物理上常在一起。

(1)HDFS集群:負責海量數據的存儲。

(2)YARN集群:負責海量數據運算時的資源調度。

(3)MapReduce:它其實是一個應用程式開發包。

hadoop三大組件:https://blog.csdn.net/wyfly69/article/details/79950039

(1)HDFS

(1)HDFS(Hadoop Distributed File System)

(Hadoop分散式文件系統,存儲是大數據技術的基礎)

HDFS簡化了文件的一致性模型,通過流式數據訪問,提供高吞吐量應用程式的數據訪問功能,適合大型數據集的應用程式。它提供了一次寫入多次讀取的機制,數據以塊的形式,同時分佈在集群中不同物理機器上。

 

快速理解:

1)HDFS的文件被分成塊進行存儲,預設為64M,塊是文件存儲處理的邏輯單元。

2)HDFS有兩類節點,NameNode和DataNode

3)NameNode是管理節點,存儲文件元數據。文件與數據塊的映射表;數據塊與數據節點的映射表。

4)DataNode是HDFS的工作節點,存儲數據塊。

5)每個數據塊3個副本,分佈在兩個機架內的三個節點。

6)DataNode定期向NameNode發送心跳信息。

7)二級NameNode定期同步元數據映射文件和修改日誌,作為備胎。

特點:

1)數據冗餘,硬體容錯

2)流式的數據訪問

3)存儲大文件

 

應用:

1)適合數據批量讀寫,吞吐量高。不適合互動式應用,低延遲很難滿足。

2)適合一次寫入多次讀取,順序讀寫。不支持多用戶併發寫入相同文件。

常用操作指令:

#初始格式化

hadoop namenode -format

#列印Hdfs當前文件夾

hadoop fs -ls/

#創建並上傳文件操作

hadoop fs -mkdir input

hadoop fs -put hadoop_env.sh input /

#查看具體文件

hadoop fs -cat input/hadoop_env.sh

#下載文件

hadoop fs -get input/hadoop_env.sh hadoop_env2.sh

#查看文件系統所有文件

hadoop dfadmin -report

 

 

HDFS參考:https://blog.csdn.net/weixin_38625805/article/details/82120573

 

 

 

(2)YARN

(2)YARN(Yet Another Reduce Negotiator,另一種資源協調者)

YARN是一個通用的資源管理平臺,可為各類計算框架提供資源的管理和調度。

其核心出發點是為了分離資源管理與作業調度/監控,實現分離的做法是擁有一個全局的資源管理器(ResourceManager,RM),以及每個應用程式對應一個的應用管理器(ApplicationMaster,AM),應用程式由一個作業(Job)或者Job的有向無環圖(DAG)組成。

快速理解:

1)YARN可以將多種計算框架(如離線處理MapReduce、線上處理的Storm、迭代式計算框架Spark、流式處理框架S4等) 部署到一個公共集群中,共用集群的資源。並提供如下功能:

資源的統一管理和調度:

集群中所有節點的資源(記憶體、CPU、磁碟、網路等)抽象為Container(集裝箱)。計算框架需要資源進行運算任務時需要向YARN申請Container,YARN按照特定的策略對資源進行調度進行Container的分配。

資源隔離

YARN使用了輕量級資源隔離機制Cgroups進行資源隔離以避免相互干擾,一旦Container使用的資源量超過事先定義的上限值,就將其殺死。

YARN是對Mapreduce V1重構得到的,有時候也稱為MapReduce V2。

YARN可以看成一個雲操作系統,由一個ResourceManager和多個NodeManager組成, 它負責管理所有NodeManger上多維度資源,並以Container(啟動一個Container相當於啟動一個進程)方式分配給應用程式啟動ApplicationMaster(相當於主進程中運行邏輯) ,或運行ApplicationMaster切分的各Task(相當於子進程中運行邏輯)

YARN鏈接:https://blog.csdn.net/qq_28001193/article/details/79480786

(3)MapReduce

(3)MapReduce(分散式計算,是大數據應用技術的解決方案)

分而治之,一個大任務分成多個小的任務(map),並行執行後,合併結果(reduce)

快速理解:

1)用於執行MapReduce任務的機器角色有兩個:一個是JobTracker;另一個是TaskTracker,JobTracker是用於調度工作的,TaskTracker是用於執行工作的。一個Hadoop集群中只有一臺JobTracker。

2)TaskTracker對應HDFS中的DataNode。

3)JobTracker的作用:作業調度,分配任務,監控任務執行進度;監督TaskTracker的狀態

4)TaskTracker的作用:執行任務,彙報任務狀態。

5)mapreduce的容錯機制,重覆執行(4次),推測執行。

應用:

1)100G的網路訪問日誌文件,找出訪問次數最多的地址。

2)wordcount.

 

鏈接:

1)https://blog.csdn.net/wuya814070935/article/details/78664674

2)https://blog.csdn.net/qq_24908345/article/details/52791944

3)https://www.imooc.com/article/34049

 

 

第四節 Hadoop其他組件介紹

(4) Flume(日誌收集工具)【水槽】

Flume數據流提供對日誌數據進行簡單處理的能力,如過濾、格式轉換等。同時,Flume還具備能夠將日誌寫往各種數據目標的能力。

相關概念:

Flume邏輯上分為三層架構:agent, collector, storage

agent用於採集數據,collector用戶數據彙總,storage是存儲系統。

 

(5) sqoop(數據同步傳輸工具)

用於hadoop(hive)與傳統資料庫的數據傳輸。TEL

 

(6) Zookeeper(分散式協作服務)【動物飼養員】

Zookeeper解決分佈環境下的數據管理問題:統一命名,狀態同步,集群管理,配置同步等。Hadoop的許多組件依賴於Zookeeper,它運行在計算集群上面,用戶管理Hadoop操作。分散式應用程式可以基於 ZooKeeper 實現諸如數據發佈/訂閱、負載均衡、命名服務、分散式協調/通知、集群管理、Master 選舉、分散式鎖和分散式隊列等功能。

快速理解:

Zookeeper的核心功能,文件系統和通信機制。

1)文件系統:

每個目錄都是一個znode節點;Znode節點可直接存儲數據;類型,持久化。

2)通信機制:

客戶端監聽關心的Znode節點;znode節點有變化時,通知客戶端。

3)Zookeeper的核心是原子廣播,保證了各個Server之間的同步。實現這種機制的協作叫做ZAB協議。(Zookeeper Atomic BrodCast)

 

ZAB協議:

核心演算法paxos演算法,一種基於消息傳遞且具有高度容錯性的一致性演算法。分散式系統中的節點通信存在兩種模型,共用記憶體,消息傳遞。

paxos演算法解決的問題是一個可能發生上述異常的分散式系統中如何就某個值達成一致,保證不論發生以上任何異常,都不會破壞決策的一致性。

 

(7) Hbase(分散式列存儲資料庫)

hbase是運行在hdfs之上的一種資料庫,以鍵值對的形式存儲數據,能夠快速在主機內數十億行數據中定位所需的數據並訪問,而HDFS缺乏隨即讀寫操作,不能滿足實時需求。

快速理解:

1)海量數據存儲

2)準實時查詢,100ms

 

特點:

1)容量大,百億行,百萬列

2)面向列,列式存儲,可單獨對列進行操作

3)擴展性,底層依賴於HDFS,動態增加機器即可

4)可靠性,HDFS本身也有備份

5)高性能,LSM數據結構,Rowkey有序排序

Hbase表結構:

1)列簇,1張列簇不超過5個,列簇沒有限制,列只有插入數據才存在,列在列簇中是有序的。eg:個人信息|教育信息|工作經歷

2)不支持條件查詢,列動態增加,數據自動切分,高併發讀寫。

啟動方式:

輸入:habse shell

查詢表:list

查詢表數據信息:(1)scan '表名' (2)count '表名'

命令:(註意,複製可能報錯,只能手打)

#查看

scan '表名:列簇','條件'

#只返回前兩行記錄

scan 'table_name:info',{LIMIT =>2}

#查看具體某一行

get 'table_name:info','00123_22'

#模糊查找某一列數據

scan 'table_name:info',FILTER=>"ColumnPrefixFilter('td_id') AND ValueFilter(=,'substring:$_08_03')"

(8) Hive(數據倉庫)

Hive是建立在hadoop上的數據倉庫基礎架構,類似一種SQL解析引擎,它將SQL語句轉成MapReduce,然後再Hadoop上執行。

啟動方式:

hive;

show tables;

select * from table_name;

quit;

命令:

# 創建數據文件

hadoop fs -vi /home/testdata.dat

#創建庫

create database test

#創建表

create table test(id int,name string,age string) ROW format DELIMITED FIELDS

TERMINATED BY '\t' stored as TEXTFILE;

#載入數據

load data local inpath '/root/data/students.txt' into table test;

#刪除表

drop database if exists test;

#大小寫轉換

select lower('hello world'),upper('hello world')

#去掉前後的空格

trim

 

 

#habse 和 hive的區別

1) habse是基於Haddoop實現的資料庫,不支持SQL

2) hive是基於hadoop實現的數據倉庫,適合海量全量數據,支持類SQL操作。

#數據倉庫的特性

數據倉庫用稱做數據立方體的多維數據結構建模,它是一個從多個數據源收集的信息存儲庫,存放在一致的模式下,並且通常駐留在單個站點上。

數據倉庫是面向主題的、集成的、其數據是隨著時間變化而變化的,其數據是不可修改的。

 

(9) Tez

支持DAG作業的計算框架,對MapReduce的進一步拆分。

 

(10) OOzie(工作流調度系統)

用來管理hadoop任務,工作流調度:工作流程的編排、調整,安排事件的觸發執行。OOzie是一個可擴展的工作體系,集成於Hadoop的堆棧,用於協調多個MapReduce作業的執行。OOzie的工作流是放置在控制依賴DAG(有向無環圖 Direct Acyclic Graph)的一組動作(例如,hadoop的Map/Reduce作業,Pig作業等),其中指定了動作執行的順序。OOzie使用hPDL(一種XML流程定義語言)來描述這個圖。

 

(11) Hue (Hadoop user Experience)大數據協作框架,web訪問。

訪問埠:8889

使用Hue我們可以在瀏覽器端的Web控制臺上與Hadoop集群進行交互來分析處理數據,例如操作HDFS上的數據,運行MapReduce Job,執行Hive的SQL語句,瀏覽Hbase資料庫。

 

 

(12) Impala (數據查詢系統)

提供SQL語義,能查詢存儲在Hadoop的HDFS和HBASE的PB級的大數據。Impala沒有使用MapReduce進行並行運算,所以Hive適合於長時間的批處理查詢分析,而Impala適合於實時互動式SQL查詢。

 

(13) Sentry(事件日誌記錄和彙集的平臺)【哨兵】

Sentry是一個開源的實時錯誤報告工具,支持Web前後端、移動應用以及游戲。通常我們所說的Sentry是指後端,有Django編寫。

 

(14) Solr(全文搜索伺服器,基於lucene)

Sentry是一個獨立的企業其搜索應用伺服器,它是一個高性能,採用JAVA5開發,它對外提供類似於Web-service的API介面。用戶可以通過HTTP請求,向搜索引擎提交一定格式的XML文件,生成索引。

 

(15) Lucene

它是一套用於全文檢索和搜索的開發源代碼程式庫。Lucene提供了一個簡單卻強大的應用介面程式,能夠做全文索引和搜索,它是最受歡迎的免費Java信息檢索程式庫。

(16) pig

為大型數據集的處理提供抽象,與MapReduce相比,Pig提供了更豐富的數據結構,一般都是多值和嵌套的數據結構。它提供強大的數據變換,包括在MapReduce中被忽視的連接Join操作。

 

(17) Ambari

一種基於web的工具,支持hadoop集群的供應、管理和監控。

 

(18)Storm(實時處理框架)【暴風雨】

類似於Hadoop的實時處理框架,毫秒級。隨著越來越多的場景對Hadoop的MapReduce高延遲無法容忍,比如網站統計、推薦系統、預警系統、金融系統(高頻交易)等等,大數據實時處理解決方法的應用日趨廣泛,其中Strom成為流計算技術中的佼佼者。

基本概念:

Storm的主從架構由Nimbus(主結點)、zookeeper(協作框架)、supervisor(從節點)和worker(各個機器)組成。

1)Nimbus的作用:接收客戶端代碼,拆分成多個task,將task信息存入zookeper;將task分配給supervisor,將映射關係存入zookeeper;故障檢測

2)supervisor的作用:從Nimbus目錄讀取代碼,從zk上讀取分配的task;啟動工作進程worker執行任務;檢測運行的工作進度worker.

3) worker的作用:從zk上去讀取分配的task,並計算出task需要給哪些task分佈消息;啟動一個或多個Executor線程執行任務Task.

4)zookeeper的作用:協調Nimbus與supervisor進行通信;協調supervisor與worker進行通信;保證Nimbus的高可用性。

 

(19)Kylin【麒麟】

一個開源的分散式分析引擎,為Hadoop等大型分散式數據平臺之上的超大規模數據集提供通過標準SQL查詢及多維分析(OLAP)的功能,提供亞秒級的交互分析能力。

 

Tips:ETL(數據倉庫技術)

extract,transform,load(抽取)(轉換)(載入)

 

(20) Kibana

它是一個開源的分析和可視化平臺,設計用於和ElasticSearch一起工作,你用Kibana來搜索,查看並存在ES索引中的數據進行交互。

常用埠(ES):5601

常用es查詢指令:

通常格式:GET 索引/類型

    例如:

    精確查找:

GET topic_index/topic_type/_search

{

    "query":{

        "term":{

            "id":{

                "value":"$09_1213"

}

        }

    }

}

    模糊首碼查找:

GET topic_index/topic_type/_search

{

    "query":{

        "prefix":{

            "id":{

                "value":"$09"

}

        }

    }

}

參考鏈接:https://blog.csdn.net/u011262847/article/details/78007119

同時附es-java-api:

https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-search.html

 

(21) Kafka(分散式消息隊列)

埠號:9092

主要用於處理活躍的流式數據,這些數據包括網站的pv,uv。

它由producer、Broker和consumer三部分組成。

基本概念:

producer: 消息和數據的生產者,向kafka的一個topic發佈消息的進程、代碼、服務,負責發佈消息到Broker.

Broker: Kafka集群包含一個或多個伺服器,這種服務被稱為Broker.

Consumer: 消息和數據的消費者,訂閱消息,向Broker讀取消息的客戶端。

 

Topic: kafka消息的類別,每條發佈到kafka集群的消息都有一個類別,這個類別稱為Topic.

Partition: kafka下數據存儲的基本單元,每個Topic包含一個或多個Partition.

Consumer Group: 對於同一個Topic,會廣播給不同的Group。每個Consumer屬於一個特定的Consumer Group.

 

Replication Leader: 負責partition上Producer與Consumer的交互。

ReplicaManager: 負責管理當前Broker所有分區和副本的信息。

特點:

1)多分區

2)多副本

3)多訂閱者

4)基於zookeeper調度

應用場景:

1)消息隊列

2)行為跟蹤

3)元數據監控

4)日誌收集

5)流處理,時間源

6)持久性日誌

 

手動導入數據到Kafka命令

#創建主題,replication-factor表示該topic需要在不同的broker中保存幾份,partions為幾個分區

./kafka-topics.sh --create --zookeeper cdh-node04:2111 --replication-factor 3 -- partitions 1 --topic test01

 

#描述主題

./kafka-topic.sh --zookeeper cdh-node04:2111 --describe --topic test01

 

#生產者發送數據

./kafka-console-producer.sh --broker-list cdh-node04:2111,cdh-node05:3111 --topic test01 +(複製黏貼的數據【固定格式:一般為JSON 】)

#消費者消費數據

./kafaka-console-consumer.sh --zookeeper cdh-node04:2111 --topic test01 (--from-beginning從頭開始查看數據)

(22) Azkaban(批量工作流任務調度器)

主要用於在一個工作流內以一個特定的順序運行一組工作和流程,它的配置是通過簡單的key:value鍵值對的方式,通過配置中的dependencies來設置依賴關係,這個依賴關係是無環的,否則會被視為無效的工作流。相比於OOzie的配置複雜度高,Azkaban有如下有點:

1)通過job配置文件快速建立任務和任務之間的依賴關係。

2)提供功能清晰,簡單易用的web UI界面。

3)提供模塊化和可插拔的插件機制,原生支持command,java,pig,hadoop。

4) 基於java開發,代碼結構清晰,易於二次開發。

 

(23) Nginx(反向代理伺服器)

它是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP代理伺服器。Nginx是一款輕量級的Web伺服器/反向代理伺服器以及電子郵件代理伺服器,併在一個BSD-like協議下髮型,其特點是占有記憶體小,併發能力強。事實上nginx的併發能力確實在同類型的網路伺服器中表現較好,中國大陸使用nginx網站的有:百度,京東,騰訊,淘寶,網易。

應用:

Nginx實現負載均衡,鏈接:https://www.cnblogs.com/JimBo-Wang/p/6556360.html

 

 

(24) spark和spark2(大數據處理的計算引擎)

Spark是UC Berkeley AMP lab開發的一個集群計算的框架,類似於Hadoop,但有很多的區別。最大的優化是讓計算任務的中間結果可以存儲在記憶體中,不需要每次都寫入HDFS,更適用於需要迭代的MapReduce演算法場景中,可以獲得更好的性能提升。例如一次排序測試中,對100TB數據進行排序,Spark比Hadoop快三倍,並且只需要十分之一的機器。Spark集群目前最大的可以達到8000節點,處理的數據達到PB級別,在互聯網企業中應用非常廣泛.

鏈接:https://www.cnblogs.com/smuxiaolei/p/7663744.html

 

相關概念:

1)在spark中,所有計算都是通過RDDS的創建、轉化和操作完成的。RDDS(Resilent Distributed datasets,彈性分散式數據集)是並行分佈在整個數據集中,是spark分發數據和計算的基礎抽象類。

2)Spark運行架構包括集群資源管理器(Cluster Manager),運行作業任務的工作節點(worker Node),每個應用的任務控制節點(Driver)和每個工作節點上負責任務的執行進程(Executor).

 

Spark程式的執行過程:

1)創建SparkContext對象

2)從外部數據源讀取數據,創建fileRDD對象

3)構建依賴關係,fileRDD->filterRDD,形成DAG

4)Cache()緩存,對filterRDD進行持久化

5)Count()執行。

 

spark基礎:http://dblab.xmu.edu.cn/blog/spark/

 

 

與Hadoop MapReduce比較:

1)spark採用多線程來執行任務,而MapReduce採用多進程,優點是減少了任務開銷。

2)Excutor中有一個BlockManager存儲模塊,會將記憶體和磁碟共同作為存儲設備,當需要多輪時,可將中間結果存儲到這個模塊中,下次需要時,可以直接讀取,不需要讀寫到HDFS等文件系統中,減少IO開銷。

3)實例:100T的數據量,spark 206個節點,只需23分鐘;MapReduce 2000個節點,需要72分鐘。

鏈接:http://dblab.xmu.edu.cn/blog/985-2/

 

RDD在Spark架構中的運行過程(如圖所示):
(1)創建RDD對象;

(2)SparkContext負責計算RDD之間的依賴關係,構建DAG;

(3)DAGScheduler負責把DAG圖分解成多個階段,每個階段中包含了多個任務,每個任務會被任務調度器分發給各個工作節點(Worker Node)上的Executor去執行。


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

-Advertisement-
Play Games
更多相關文章
  • 啟動Spring boot服務腳本 關閉Spring boot服務腳本 ...
  • Windows電腦操作系統一般是安裝在磁碟驅動器的C盤中,一旦運行,便會產生許多垃圾文件,C盤空間在一定程度上都會越來越小。伴隨著電腦工作的時間越久,C盤常常會提示顯示其記憶體已不足。那麼C盤容量不足對我們的電腦有什麼影響? C盤的空間太小,將會極大影響系統的運行速度,你的電腦自然就會變卡、死機! 那 ...
  • 看 《the linux command line》的find章節,有個好玩的實踐,大家看看能否快速敲出來: 題目 1. 在家目錄下創建一個playground目錄,該目錄下創建一百個文件夾,每個文件夾下創建一百個文件 2. 一次性輸出每個playground子目錄下的文件個數,看看是不是100個 ...
  • 系統莫名其妙的掉電或磁碟發生問題非常可能導致文件系統的錯亂,文件系統若發生錯亂,可以使用fsck(file system check)命令進行檢查。 使用許可權:root用戶 選項和參數: -a:檢測到有錯則自動修複 -A:依據 /etc/fstab的配置文件,將需要檢查的裝置掃描一次 -d : 列印 ...
  • 安裝補丁KB2685811、重啟。 ...
  • 1、根據之前一篇關於rsync的隨筆部署好rsync服務後,可以開始inotify的部署 2、inotify的部署使用 ①、檢查系統是否支持inotify 如果出現上面結果說明系統支持inotify。 ②、安裝 ③、inotify參數 * 說明: max_user_instances:每個用戶創建i ...
  • rysnc server端 1、vim /etcrsyncd.conf (用戶rsync,目錄,模塊,非系統虛擬用戶及密碼文件) 2、創建共用目錄 /data/www/{www,bbs,blog} 3、創建rsync用戶,並授權訪問/data/www/ 4、創建密碼文件,複製配置文件里的路徑,然後添 ...
  • 眾所周知,在sqlserver中,表變數最大的特性之一就是沒有統計信息,無法較為準備預估其數據分佈情況,因此不適合參與較為複雜的SQL運算。當SQL相對簡單的時候,使用表變數,在某些場景下,即便是對錶變數的預估沒有產生偏差的情況下,仍舊會有問題。sqlserver的優化引擎對於表變數的支持十分不友好 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...