非關型數據庫之Hbase

目錄

1 Hbase簡介

1.1 初識Hbase

1.2 Hbase的特性

2 HDFS專項模塊

2.1 HDFS的基本架構

2.1.1?HDFS各組件的功能:

2.2 HFDFS多種機制

2.2.1 分塊機制

2.2.2 副本機制

2.2.3 容錯機制

2.2.4 讀寫機制

?3 Hbase組件及其功能

?3.1?客戶端

3.2 Zookeeper

3.3 HMaster

3.4 RegionServer

4 Hbase數據模型及Hbase Shell

5 Hbase原理實現

5.1 Region定位

5.1.1 Region

5.1.2 Meta表

5.1.3 Region查找

5.2 Region再細分

5.2.1 Hbase寫數據

?5.2.2 Hbase讀數據

5.2.3 HFile的合并(Minor|Major)

5.3 WAL機制

?5.4 Region拆分

5.5 Region合并


1 Hbase簡介

1.1 初識Hbase

????????Hbase全拼為Hadoop database即分布式存儲數據庫,是一個可以進行隨機訪問的存儲和檢索數據的平臺,用于存儲結構化和半結構化的數據,如果數據量不是非常龐大的情況下,Hbase甚至可以存儲非結構化的數據。Hbase作為Apache基金會Hadoop項目的一部分,使用Java語言實現,將HDFS作為底層文件存儲系統,在此基礎上運行MapReduce分布式批量處理數據,為Hadoop提供海量的數據管理服務。?

? ? ? ? Hbase是典型的NoSQL數據庫,通常被描述為稀疏的、分布式的、持久化的,由行鍵、列鍵和時間戳進行索引的多維有序映射數據庫,主要用來儲存結構化和半結構化的數據。Hbase是Google的Bigtable的開源實現。

1.2 Hbase的特性

🌈容量巨大

🌈列存儲

🌈稀疏性

????????傳統的關型數據庫中,每一行的數據類型都是事先定義好的,會占用固定的內存空間,在此情況下NULL值也會占用一定的存儲空間。而在Hbase中的數據都是以字符串形式存儲,數據為空的情況下列并不占用存儲空間,因為會有部分數據有真實值,部分數據為NULL,故稱為稀疏性。

🌈擴展性強

? ? ? ? Hbase構建在HDFS之上,理所當然的支持分布式表,也繼承了HDFS的可擴展性。Hbase是橫向擴展的,所謂的橫向擴展是指在擴展時不需要提過服務器本身的性能,只需要添加不同的服務器節點到現有的集群即可。Hbase根據Region的大小進行分區,分別存在集群中的不同節點,當添加新節點時,集群自動重新調整,在新的節點啟動Hbase服務器,實現動態擴展。Hbase的擴展是熱擴展,即在不停掉現有服務的情況下進行服務節點的增加和刪除。

🌈高可靠性

? ? ? ? Hbase同時繼承了HDFS的高可靠性,HDFS的多副本機制可以讓它在出現故障時自動恢復,同時Hbase內部也提供了預寫日志(Write-Ahead-Log,WAL)和Replication機制。

2 HDFS專項模塊

????????HDFS即Hadoop Distributed File System(Hadoop分布式文件系統),HDFS是參考Google公司的GFS實現的,不管是HDFS還是GFS計算機節點都會很容易出現硬件故障,HDFS的數據分塊儲存在不同節點,當某個節點出現故障時,HDFS相關組件會快速檢測出節點故障并提供容錯機制完成數據的自動恢復。

2.1 HDFS的基本架構

? ? ? ? 三個組件:NameNode、DataNode、SecondaryNameNode

? ? ? ? 一個架構:主從架構(Master/Slave模式)

? ? ? ? HDFS集群一般由一個NameNode(運行在Master節點)、一個SecondaryNameNode(運行在Master節點)和許多個DataNode(運行在Salve節點)組成。在HDFS中數據是被分塊進行儲存,一個文件可以被分為許多個塊,每個塊被存儲在不同的DataNode上。

????????????????????????

2.1.1?HDFS各組件的功能:

  • 🌈NameNode
    • 將文件的元數據信息存儲在edits和fsimage文件中(元數據信息記錄了文件系統中的文件名和目錄名,以及它們之間的層級關系,同時也記錄了每個文件目錄的所有者以及權限,甚至還記錄了每個文件是由哪些塊組成)
    • 接收客戶端的請求并提供元數據(當客戶端請求讀取文件時,會先從NameNode獲取文件的元數據信息,然后再往元數據中對應的DataNode讀取數據塊)
    • 通過心跳機制檢測DataNode的狀態,當出現節點故障時,重新分配失敗的任務。
  • 🌈SecondaryNameNode
    • 定期合并edits和fsimage文件

? ? ? ? ? edits文件(編輯日志)用來記錄文件的增、刪、改操作信息。

? ? ? ? ? fsimage文件(鏡像文件)用來維護HDFS的文件和文件夾的元數據信息。

? ? ? ? ? 每次系統啟動時,NameNode會讀取fsimage文件的信息并保存到內從中。在HDFS運行期間,新的操作日志不會立即與fsimage文件進行合并,也不會存到NameNode內存中,而是先寫到edits文件中,當edits文件達到一定的閾值或者間隔一定時間(默認為3600s或者達到64MB)后會觸發SecondaryNameNode工作,這個時間點被稱為checkpoint。具體的合并步驟如下:

?????????????????????????

  1. (停用和新記錄)在合并之前SecondaryNameNode通知NameNode停用當前editlog文件,并將新的操作日志寫入到新的editlog.new文件。
  2. (請求并復制)SecondaryNameNode從NameNode請求并復制fsimage和edits文件。
  3. (合并)SecondaryNameNode把fsimage和edits文件合并,并重命名為fsimage.ckpt。
  4. (兩次替換)NameNode從SecondaryNameNode獲取fsimage.ckpt文件,并替換掉fsimage文件,同時用edits.new文件替換舊的edits文件。
  5. (更新)更新checkpoint的時間。自此,fsimage文件中保存的是上一個checkpoint的元數據信息,而edits文件保存的是從上一個checkpoint開始的操作日志。
  • 🌈DataNode
    • 存儲數據塊
    • 為客戶端提供數據塊的讀寫服務
    • 相應NameNode的相關指令(數據塊的增、刪、改等操作)
    • 定時發送心跳信息給NameNode

2.2 HFDFS多種機制

2.2.1 分塊機制

在HDFS中數據是被分塊進行儲存,一個文件可以被分為許多個塊,每個塊被存儲在不同的DataNode上。HDFS數據塊大小默認為64MB,而一般磁盤塊的大小為512B。

2.2.2 副本機制

HDFS中數據塊的副本數默認為3個,當然也可以設置更多的副本集。在默認副本集為3的情況下,0.17版本之前,會把第一個副本放在一個機架的一個DataNode上,第二個副本放在這個機架的另一個DataNode上,而第三個副本會放在不同的機架上;0.17版本之后,會把第一個副本放在一個機架的一個DataNode上,第二個副本放在另一個機架的DataNode上,而第三個副本會放在第二個副本的同機架的不同DataNode上。(機架的概念參照上圖2-4)

2.2.3 容錯機制

NameNode出錯:從SecondaryNameNode備份的fsimage文件進行恢復。

DataNode出錯:當出現節點故障時,重新分配失敗的任務。

數據出錯:數據寫入的同時保存總和校驗碼,讀取數據時進行校驗。

2.2.4 讀寫機制

🌈讀文件

  1. (發送請求)客戶端向NameNode發送讀文件請求
  2. (得到地址)NameNode返回文件的元數據(文件對應的數據塊信息及各數據塊位置及其副本位置)信息
  3. (讀取數據)客戶端按照元數據信息與DataNode進行通信,并讀取數據塊。????????

?????????????????????????

🌈寫文件

  1. (暫寫數據)先將數據寫入本地的臨時文件
  2. (發送請求)等臨時文件大小達到系統設置的塊大小時,開始向NameNode發送寫文件請求
  3. (獲取地址)NameNode檢查集群中每個DataNode的狀態信息,獲取空閑節點并檢查客戶端的權限符合后再創建文件,然后返回數據塊及其對應DataNode的地址列表給客戶端,列表中包括副本的存放地址。
  4. (寫數據并發送確認信息)客戶端將臨時文件的數據塊寫入列表的第一個DataNode,同時第一個DataNode以副本的形式傳送至第二個DataNode,第二個DataNode以副本的形式傳送至第三個DataNode。每一個DataNode在接收到數據后都會向前一個節點發送確認信息,數據傳輸完成后,第一個DataNode會向客戶端發送確認信息。
  5. (錯誤處理)客戶端收到確認信息表示數據塊已經永久化的存儲在所有的DataNode中,此時客戶端會向NameNode發送確認信息。一旦上一步的任何一個DataNode存儲失敗未發送確認信息,客戶端就會告知NameNode,將數據備份到新的DataNode中。

????????????????????????

?3 Hbase組件及其功能

?

?3.1?客戶端

客戶端包含訪問Hbase的接口,是整個Hbase系統的入口,使用者通過客戶端操作Hbase,客戶端使用Hbase的RPC機制與HMaster和RegionServer進行通信。

3.2 Zookeeper

Zookeeper是一個高性能、集中化、分布式的應用程序協調服務,主要用來解決分布式應用中用戶遇到的數據管理問題。在Hadoop中Zookeeper主要用于實現高可靠性(High Availability,HA),包括HDFS的NameNode和YARN的ResourceManager的HA。以HDFS為例,NameNode作為HDFS的主節點,負責管理文件系統的命名空間以及客戶端對文件的訪問,同時還需要監控整個HDFS中每個DataNode的狀態,實現負載均衡和容錯。為了實現HA需要由多個NameNode并存,一個處于活躍狀態其他則是備用狀態,當處于活躍狀態的NameNode無法正常工作時,處于備用狀態的節點會通過競爭選舉產生新的活躍節點。Zookeeper在Hbase中的功能如下:

  • Master選舉

????????與HDFS中的競選機制一樣,Hbase中有多個Master并存,但只有一個HMaster處于活躍狀態,當處于活躍狀態的HMaster無法正常工作時,從其余備用Master中通過選舉出一個新的HMaster,保證集群的高可靠性。

  • 系統容錯

? ? ? ? 在Hbase啟動時,每個RegionServer在加入集群時都需要到Zookeeper中進行注冊,創建一個狀態節點,Zookeeper會實時監控每個RegionServer狀態,當某個RegionServer掛掉時,Zookeeper會因為一段時間內沒有接收到其心跳信息而刪除該RegionServer對應的節點,并給HMaster發送節點刪除通知,HMaster得知有RegionServer斷開,會立即開啟RegionServer容錯機制參考博客

  • Region元數據管理

? ? ? ? 在Hbase集群中,Region元數據被存儲在Zookeeper中的Meta表里。每次客戶端發起新的請求時,需要先查詢Meta表中的Region的位置,當Region發生任何變更時,就能通過Zookeeper的Mate表來感知這一變化,保證客戶端能夠獲取到正確的Region元數據信息。

  • Region狀態管理

? ? ? ? Hbase中的Region會經常發生變更,其原因可能是系統故障、配置修改、Region的分裂及合并。只要Region發生任何變化,就需要使集群中的所有節點都知曉,然而集群中的Region數量會達到十萬級甚至更多,如果交由Hbase處理則負擔過大,所以只能依賴Zookeeper來完成。

  • 提供Meta表存儲位置

????????Meta表中存儲的數據庫信息、列族信息、列族存儲位置信息都屬于元數據,而Mate表的位置入口由Zookeeper提供。

3.3 HMaster

  • 管理用戶對表的增、刪、改、查操作。HMaster提供了對所有元數據增刪改查的接口,便于用戶與Hbase進行交互。
  • 管理RegionServer的負載均衡,調整Region的分布。
  • Region的分配與移除。
  • 處理RegionServer的故障轉移。

3.4 RegionServer

????????RegionServer主要負責響應用戶的請求,向HDFS讀寫數據,一般在分布式集群中,RegionServer運行在DataNode服務器上,實現數據的本地性。

  • 處理分配給它的Region
  • 處理客戶DAU你的讀寫請求
  • 刷新緩存到HDFS
  • 處理Region分片
  • 執行壓縮?

4 Hbase數據模型及Hbase Shell

Hbase數據模型及Hbase Shell_扎哇太棗糕的博客-CSDN博客

5 Hbase原理實現

5.1 Region定位

5.1.1 Region

????????在Hbase中,表中的行都是按照RowKey的字典順序進行排序,表在行的方向上被分割成多個Region。每一張表一開始就只有一個Region,隨著數據的不斷插入,Hbase會根據一定的規則將表進行水平拆分最終形成多個Region。Region過多一臺機器無法存儲的下時,可分布式存儲到多臺機器上,HMaster將不同的Region分配到不同的RegionServer上。

????????????????

?????????客戶端在對表彰數據進行增刪改查時需要知道數據存儲在哪個RegionServer上,這個查找Region的過程就叫做Region定位。Region標識符可以唯一標志一個Region,Region標識符 = 表名+起始行鍵+時間戳+RegionID,其中RegionID等于(表名+起始行鍵+時間戳)進行MD5加密。其中第一個Region沒有首行,最后一個Region沒有末行。

5.1.2 Meta表

????????Meta映射表的每個條目包含兩項內容:Region標識、RegionServer標識,該條目表示了Region與RegionServer之間的對應關系,可以讓用戶知道該Region存儲在哪個RegionServer上。總而言之,Meta表記錄了元數據信息,使Region的定位變得精準且快速。

5.1.3 Region查找

? ? ? ? 早期的Region查找使用三層架構:首先訪問zookeeper的/hbase/root-region-server節點來得知ROOT表在哪個RegionServer上,然后訪問ROOT表獲取數據所在Meta表以及Meta表所在RegionServer的位置,接著訪問META表找到數據所在的Region去訪問。后來改為二層架構:客戶端先通過查找ZooKeeper的Meta表,獲取到查詢的數據的Region元數據信息,按照元數據信息獲取到相應的數據。

參考博客:HBase查詢機制--Region定位_Fys的博客-CSDN博客_查看hbase 表的region

5.2 Region再細分

????????Hbase的核心模塊是RegionServer,RegionServer又由HLog和Region構成,Region存儲著一系列連續的數據集。Region對應著和多個的Store,每個Store對應著表中的一個列族的存儲,Store又是由一個MemStore和零到多個的StoreFile組成,StoreFile的底層是用HFile實現,也可以說StoreFile就是HFile。

????????????????????????

5.2.1 Hbase寫數據

  1. (獲取元數據)客戶端訪問Zookeeper,從Meta表中得到數據寫入的Region和RegionServer的相關信息
  2. (兩次寫信息)客戶端按照Zookeeper返回的相關信息,直接訪問RegionServer把數據分別寫入HLog和MemStore。
  3. (持久化數據)當MemStore的存儲量達到一定閾值(默認64M)時,會把數據寫入磁盤文件StoreFile中,并在HLog中寫入一個標記表示MemStore中的緩存數據寫入到StoreFile中。如果MemStore中的數據丟失,則可以在HLog中恢復。
  4. (StoreFile合并分裂)StoreFile文件的數量達到一定的數量時,會觸發合并成一個大的StoreFile,當StoreFile的文件大小超過一定的閾值時,大StoreFile會分裂成兩個StoreFile。同時,當前父Region會分裂成兩個子Region,父Region下線,兩個子Region被Master分配到相應的RegionServer(父Region拆分的原因參考 5.4Region拆分)。

?5.2.2 Hbase讀數據

  1. (獲取元數據)客戶端訪問Zookeeper,從Meta表中得到讀取數據的Region和RegionServer的相關信息
  2. (發送請求)客戶端向對應的RegionServer發送讀取數據請求
  3. (查找數據)RegionServer在就收到請求消息之后,現在MemStore中查找數據,如果沒有就到StoreFile中讀取,最后將數據返回給客戶端。

5.2.3 HFile的合并(Minor|Major)

Minor合并(滿足條件的小HFile進行合并)

????????執行合并時,Hbase將多個小HFile的內容讀出并寫入到一個新的文件中,然后激活新文件,舊文件標記為刪除,被標記后的舊文件只有在下一次Major合并時才會被刪除,在此之前仍會出現在HFile中。HFile的Minor合并是觸發式的,觸發條件很多,比如在將MemStore中的數據刷新到HFile中時會申請對符合條件的HFile進行合并,定期合并等。除此之外,對選擇進行合并的HFile文件也是有條件的,條件如下:

?也就是說,一次Minor合并的HFile文件的個數在3~10個之間。

Major合并(無差別合并)

????????Major合并會對Store中的所有HFile文件進行無差別的合并,甚至有時會將整個表中同一列族的HFile進行合并,這是一個耗時且耗費資源的操作,很影響集群的性能。故一般情況下都只做Minor合并,不做甚至有些集群干脆就禁止Major合并,只有在集群負載較小時才進行手動的Major合并,或者配置Major的合并中期,默認為7天。

5.3 WAL機制

????????WAL就是(Write Ahead Log),字面翻譯就是預寫日志文件機制。如下圖所示,每個RegionServer中的所有Region共用一個HLog文件,HLog就是上面說到的預寫日志文件,也就是說,每當客戶端更寫數據必須先寫入到HLog文件后才能被寫入到MemStore中。

? ? ? ? 故障轉移:Zookeeper會實時監控每個Regionserver的狀態,當某個RegionServer故障時,RegionServer在Zookeeper上的臨時節點就會過期,Zookeeper會首先通知Master,Master會第一時間處理該RegionServer上的HLog文件,對其按照Region進行拆分并放到相應Region的目錄下,等到Region被重新分配到可用的RegionServer上時,按照Region目錄下的HLog進行數據恢復。

?5.4 Region拆分

????????一旦Region的負載過大或者超過閾值時(Region中最大的Store的大小大于設置的閾值時就會觸發Region拆分),它就會被拆分成兩個新的Region,這個過程是由RegionServer來完成的,具體流程如下:

  1. (下線并阻止請求)下線需要拆分的Region,阻止所有對該Region的客戶端請求,Master檢測到Region的狀態為SPLITING。
  2. (建立引用文件并指向)在父Region的下面建立兩個引用文件,分別指向父Region的首行與末行,此時并不會開始復制數據。
  3. (建立目錄并復制)在HDFS上建立兩個子Region的目錄,分別復制上一步建立的引用文件,每個子Region分別占用父Region的一半數據,復制完成后刪除兩個引用文件。
  4. (更新Meta表元數據)完成子Region的創建后,向Meta表發送新產生的兩個Region的元數據信息,刪除父Region的元數據信息。
  5. (更新狀態)將Region的拆分信息更新到HMaster中,并且每個Region進入可用狀態。

5.5 Region合并

  1. (發送請求)客戶端發送Region合并請求給Master。
  2. (聚堆并發送請求)Master在RegionServer上將Region移到一起,并發起一個Region合并操作的請求。
  3. (下線并合并)RegionServer將準備合并的Region下線,然后進行合并。
  4. (更新元數據)從Meta表上刪除被合并的Region的元數據,并寫入新的Region的元數據。
  5. (更新狀態及信息)新的Region設置上線,同時更新Region信息到Master。

????????Region合并的必要性:Region過多會導致Meta表過大,Zookeeper管理不過來,從而影響客戶端的請求響應。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/535156.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/535156.shtml
英文地址,請注明出處:http://en.pswp.cn/news/535156.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MongoDB Shell操作

目錄 1 數據庫操作 2 集合操作 3 文檔操作 3.1 插入文檔(insert|insertOne|insertMany) 3.2插入、刪除的循環操作 3.2 刪除文檔(remove|deleteOne|deleteMany) 3.3 更新文檔(update|save) 3.4 查詢文檔(find) 4 游標 5 索引 6 聚合 1 數據庫操作 當新創建的數據庫里…

MongoDB副本集、分片集的偽分布式部署(保姆級教程)

目錄 1 集群架構(概念篇) 1.1 MongoDB核心組件 1.2 主從復制 1.3 副本集 1.4 分片集 2 集群搭建 2.1 部署副本集(偽分布式) 2.2 分片集部署(偽分布式) 2.3 副本集與分片集區別 1 集群架構(概念篇) MongoDB有三種集群部署模式,分別是主從復制(Master-Slave)…

非關型數據庫之MongoDB

目錄 1 MongoDB簡介 1.1 初識MongoDB 1.2 MongoDB與傳統的關系型數據庫的區別 1.3 MongoDB存儲結構 1.4 BSON支持的數據類型 2 MongoDB Shell操作 3 MongoDB集群操作 1 MongoDB簡介 1.1 初識MongoDB MongoDB來源自英文單詞"Humongous”,譯為“龐大的”…

【手把手 腦把腦】教會你使用idea基于MapReduce的統計數據分析(從問題分析到代碼編寫)

目錄 1 編程前總分析 1.1 數據源 1.2 需要掌握的知識 1.2.1 Hadoop對比java的數據類型 1.2.2 MapReduce流程簡介 1.3.3 MapReduce流程細分 2 編碼階段 2.1 導入依賴 2.2 mapper 2.3 reducer 2.4 main 1 編程前總分析 1.1 數據源 英語,李沐,85,男,20 數學,李沐,54,男…

【細節拉滿】Hadoop課程設計項目,使用idea編寫基于MapReduce的學生成績分析系統(附帶源碼、項目文件下載地址)

目錄 1 數據源(學生成績.csv) 2 hadoop平臺上傳數據源 3 idea代碼 3.1 工程框架 3.2 導入依賴 3.3 系統主入口(menu) 3.4 六個mapreduce 3.4.1 計算每門成績的最高分、最低分、平均分(Mma) 3.4.2 計算每個學生的總分及平均成績并進行排序(Sas) 3.4.3 統計所有學生的信…

【單位換算】存儲單位(bit Byte KB MB GB TB PB EB ZB YB BB)時間單位(ms μs ns ps)長度單位(dm cm mm μm nm pm fm am zm ym)

存儲單位 相鄰單位相差2?,記憶時可以此類推 一字節等于八比特 1 Byte 8 bit 1KB 1024 B 2? B 1MB 1024 KB 2? B 1GB 1024 MB 2? B 1TB 1024 GB 2?? B 1PB 1024 TB 2?? B 1EB 1024 PB 2?? B 1ZB 1024 EB 2?? B 1YB 1024 ZB 2?? B 1B…

Git 的安裝、使用、分支、命令 一篇博客全都學會

目錄 1 版本控制 1.1 什么是版本控制 1.2 為什么需要版本控制 2 Git概述 2.1 Git的工作機制 2.2 分布式版本控制工具與集中式的區別 2.3 Git是如何誕生的 3 Git的安裝 4 Git常用命令 4.1 用戶簽名的設置和修改 4.2 查看用戶簽名的設置 4.3 初始化本地庫 4.4 添加、…

生成一個GitHub的token用于git推送本地庫至遠程庫

1 一步步選擇設置 2 使用鏈接直接跳轉到最后一步的設置頁 git push 的時候需要token,所以在GitHub上生成一個臨時的token 1 一步步選擇設置 2 使用鏈接直接跳轉到最后一步的設置頁 前提是你已經在這個瀏覽器上登陸了GitHub https://github.com/settings/tokens

都2021年了,還不會使用GitHub創建、推送、拉取、克隆遠程庫、團隊協作開發?

1 對自己的遠程庫操作 1.1 在GitHub上創建遠程庫 1.2 推送本地庫至遠程庫 1.3 拉取遠程庫到本地庫 1.4 克隆遠程倉庫到本地 2 對別人的遠程庫兩種操作方式 2.1 使用GitHub進行團隊內協作開發 2.2 使用GitHub進行跨團隊協作開發 眾所周知,GitHub是一個大型的國…

2021 最新 IDEA集成Gitee、Gitee遷移GitHub【圖文講解】

1 創建遠程庫 2 IDEA集成Gitee 2.1 安裝gitee插件并綁定賬號 2.2 IDEA推送本地庫至遠程庫的兩種方式 2.3 修改后推送本地庫至遠程庫 2.4 拉取遠程庫 2.5 使用IDEA克隆遠程庫 3 Gitee遷移GitHub的遠程庫的兩種方式 3.1 自己的賬戶之間遷移 3.2 使用鏈接進行遷移 3.3 強制刷…

只需五步學會Maven 3.6.1OR 3.6.3及其他版本的下載安裝與配置【圖文詳解】

第一步,下載并解壓縮包 ?第二步,配置兩個環境變量 ?第三步,測試是否安裝成功 ?第四步,指定本地倉庫的路徑 第五步,修改鏡像倉庫 第一步,下載并解壓縮包 Maven官方下載地址:https://mav…

只需四步完成java JDK1.8的下載安裝與配置【圖文詳解】

第一步,下載安裝包并安裝 第二步,安裝JDK 第三步,配置三個環境變量 第四步,測試是否安裝成功 第一步,下載安裝包并安裝 Oracle的官方下載地址:https://www.oracle.com/java/technologies/downloads/#ja…

從Maven中央倉庫網站下載jar包的兩種方式,將會伴隨java后端開發者的整個職業生涯

這個肥腸重要的網站就是:https://mvnrepository.com/ 下面我會以mysql-connector-java-8.0.26.jar為例,教會你使用兩種方式下載使用jar包資源 首先在搜索欄使用全稱或者是關鍵字對jar包進行搜索 選擇你想要的版本 方式一:導入pom文件依賴(…

2021 使用IDEA創建并編寫你的第一個Maven項目【圖文詳解】

1 使用IDEA創建你的第一個Maven項目 2 使用IDEA編寫一個Maven項目 1 使用IDEA創建你的第一個Maven項目 新建一個空白項目 File-->New-->Project-->Empty Project 在IDEA中配置JDK 在IDEA中配置Maven 新建一個Maven模塊 在test目錄下面新建一個resources文件夾 2 使…

能讓你的Intellij IDEA 起飛的幾個設置(設置背景 字體 快捷鍵 鼠標懸停提示 提示忽略大小寫 取消單行顯示)

1 設置主題(背景圖片) 2 設置字體 2.1 設置默認的字體及其大小、行間距**墻裂推薦** 2.2 設置字體大小可以隨意改變**墻裂推薦** 3 設置鼠標懸停提示 4 提示的時候忽略大小寫**墻裂推薦** ??5 取消單行顯示tabs**墻裂推薦** 6 修改類頭的文檔注釋信息 7 設置項目文…

控制臺:Unable to import maven project: See logs for details日志:Unable to create injector, see the follow

問題描述: 當我在使用IDEA 完成一個Maven項目的時候,在第一步的pom.xml文件導入依賴時就發生了這個問題,彈窗彈出Uable to import maven project 控制臺報 Unable to import maven project: See logs for details的異常。 既然人家都讓查看l…

Maven基礎教程

1 Maven簡介 2 Maven基礎概念 2.1 倉庫 2.2 坐標 3 依賴的相關知識點 4 生命周期與插件 5 使用Inteli idea完成第一個Maven項目 1 Maven簡介 Maven的本質就是一個項目管理工具,用于將項目開發和管理過程抽象成一個項目對象模型(project object model POM) Ma…

java實現編輯距離算法(levenshtein distance),計算字符串或者是文本之間的相似度【附代碼】

編輯距離算法其實就是,在規定的編輯操作(替換字符串、插入字符串、刪除字符串)中,經過幾步可以把一個字符串變成另一個字符串,而這個所需的步數就是你的編輯距離。 測試樣例: str1 abc str2 yabd 表里的每一個值都代表著將s…

【Java從入門到頭禿專欄 】(一)學在Java語法之前

目錄 1 初識Java 2 Java環境JDK 3 Java規范 1 初識Java Java是美國的sun(Stanford University Network)公司在1995年推出的一門計算機高級編程語言,雖然說當時參與開發Java的人員有好幾名,但是業內公認的Java之父是詹姆斯高斯林(James Gosling)。 Jav…

【Java從入門到頭禿專欄 】(二) 注釋 數據類型 變量 常量 關鍵字 標識符 運算符 輸入輸出

目錄 1 注釋 2 數據類型 3 變量與常量 4 關鍵字、標識符 5 運算符 6 鍵入值、輸出值 1 注釋 注釋就是寫在程序中對代碼進行解釋說明的文字,方便自己和其他人查看,以便大家更加容易理解程序。注釋雖然寫在程序中,但是并不參與程序的執行&#…