主頁 >  其他 > 美團點評 Hadoop/Spark 系統實踐

美團點評 Hadoop/Spark 系統實踐

2020-10-23 22:48:07 其他

系列文章

  1. 實時存盤引擎和實時計算引擎
  2. 美團點評 Hadoop/Spark 系統實踐

本文目錄

  • 系列文章
  • 一、Hadoop/Spark 定位與應用架構
    • 1.1 功能和定位(是什么)
    • 1.2 在互聯網企業的應用場景和外圍系統(怎么用)
  • 二、Hadoop / Spark 核心架構
    • 2.1 核心架構 review
      • 2.1.1 HDFS 分布式檔案存盤
      • 2.1.2 YARN 分布式資源調度
      • 2.1.3 Spark 通用分布式計算框架
    • 2.2 進一步學習
  • 三、 美團點評架構改造案例
    • 3.1 Hadoop 異地多機房架構改造
    • 3.2 YARN 核心調度流程優化
    • 3.3 資料倉庫SQL引擎Spark替換Hive on MR

美團大資料系統整體架構
在這里插入圖片描述
在這里插入圖片描述

一、Hadoop/Spark 定位與應用架構

1.1 功能和定位(是什么)

Hadoop 開源地址和官網
在這里插入圖片描述
Spark 開源地址和官網
在這里插入圖片描述

簡單來說,拆解之后的 Hadoop/Spark 專案基本分為三層:① 最底層是資源調度和檔案存盤 ② 往上是分布式計算內核 ③最上層是 Spark 衍生的一些框架,今天說的主要是三個黑框的部分,
在這里插入圖片描述
我們可以看到,三個黑框部分有一個共同點——都有“分布式”,那為什么是分布式呢?
以下是一臺單點機器的資料
在這里插入圖片描述
這是美團對于資料存盤和應用的需要:
在這里插入圖片描述
我們可以看到,一塊商用硬碟滿打滿算也就能寫幾十 T 的資料,但是美團每日單表的增量就有 235T 的資料,這是單節點機器遠遠無法滿足的,這是不得已要做分布式的原因,
在這里插入圖片描述
我們想要一個能夠像個人電腦一樣的目錄樹形式的去管理自己的檔案,最好存盤空間沒有限制,操作簡單,平臺無關等等,但是現實卻需要面臨很多問題,節點掛掉、計算失敗等等,那我們通過 Hadoop/Spark 這樣的集群作業系統,通過訪問統一的分布式操作介面,去實作從理想到現實的這樣的一個程序,

這是HDFS暴露的介面,可以去訪問管理集群的檔案

同時提供了 Java 編程的介面,
在這里插入圖片描述
Spark 也提供了同樣類似的介面,支持 Java, Scala 和 Python,安裝后從 bin/spark-shell 可以快速起一個 Spark 環境,同時封裝了提交集群作業的介面,
在這里插入圖片描述
在寫代碼的時候,右邊的是分布式的 “Hello World”—— wordCount,無論資料量有多大,都可以統計出來每個字符的出現次數,左邊一些特性,具體可以參考 API 檔案,
在這里插入圖片描述
YARN 資源調度

有不同的資源劃分模式,可以劃分給不同的組織結構,后面會詳細講到,
在這里插入圖片描述

1.2 在互聯網企業的應用場景和外圍系統(怎么用)

在這里插入圖片描述
直觀的來看,主要分為以上三種應用,主要通過資料倉庫支撐,下面分別舉例講述,

  • 商業智能 —— 經營分析
    一個旅游的漏斗模型,用于整個流量轉化資料的建模和分析支撐,
    在這里插入圖片描述

  • 搜索/推薦/廣告系統——系統架構
    各種資料的存盤和處理和需要很強的分布式支持,
    在這里插入圖片描述

  • 資料挖掘——單車停車點聚合
    通過獲得得各種基礎資料,經過處理,把單車調度到大家可能要騎得地方,
    在這里插入圖片描述
    上述三種應用場景都需要用到資料倉庫的支持,我們常見的資料組織形式是 E-R 模型,即物體關系模型,但是在面對線上業務的時候,我們往往想要看到業務發生了哪些變更,或者需要恢復事實等,使用ER模型可能需要分表、大量連接,所以就產生新的資料組織形式——維度模型,面向分析性系統,
    在這里插入圖片描述
    維度建模的程序簡單來講就是把資料拉到集群上,經過一系列的 sql 處理分別分成維度表、事實表等,
    在這里插入圖片描述
    什么是事實呢?比如下面訂單可能就是一個事實,整個表可能是一個門店的資料,最主要的是 poi_id,
    通常關系型資料庫是為了記錄、修改和查詢資料本身(增刪改差),對資料本身所含有的業務含義并不關心,簡單說是為了記錄,而資料倉庫則是重點關注資料與資料之間的業務含義,如不同統計口徑與分析方式下數值差的意義,簡單說是為了分析,那么為了保證分析結果的準確和有效,必須分解和細化分析口徑,精確定位影響因素,維表和度量值就是定義分析角度和影響因素的一種方式,(參考:資料倉庫為什么要用事實表和維度表)

在這里插入圖片描述
這是美團點評大資料架構全景圖
在這里插入圖片描述
更加具體或者形象的來說,整個架構可以看作下圖:
在這里插入圖片描述
我們主要講到的部分是最底層的一塊,上層任務暫不細講,(在說到成本優化的時候,老師說美團的利潤非常薄,然后就不好意思的笑了)
下面是一些美團離線工具鏈關鍵模塊:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
我們回顧一下第一部分,講了 Hadoop/Spark 的功能和定位(理想和現實),應用場景(三個例子),然后資料倉庫的資料組織形式,

二、Hadoop / Spark 核心架構

2.1 核心架構 review

2.1.1 HDFS 分布式檔案存盤

Hadoop 簡介
在這里插入圖片描述
直觀來看,Hadoop 架構如下:

這種配色的圖呢,圓框代表一個行程,虛框代表一個物理機,虛線代表元資料的訪問或者同步,

整體架構主要分成兩部分,一個是 NameNode, 負責資料的組織管理,一個是 DataNode,負責資料的實際存盤,DataNode 會通過心跳定時向 NameNode 匯報自己還活著,

  • Editslog :保存了所有對 hdfs 中檔案的操作資訊
  • FSImage 是記憶體元資料在本地磁盤的映射,用于維護管理檔案系統樹,即元資料(metadata),
    hadoop 中 FsImage 與 Editslog 合并決議

然后集中精神,最難的一部分來了,就是資料的寫流程,
在這里插入圖片描述
圖中的序號代表執行順序,NN 是 NameNode, DN 是 DataNode,Lease 是心跳(檢測DN是否存活),

當你寫入一個檔案的時候到底發生了什么呢?

首先你打開的客戶端(可能是我們之前提到的命令列或者連接了 SDK 的其他 IDE)會創建一個邏輯檔案,建立心跳,然后客戶端和NN手拉手建立管道, NameNode 找到空的 DN 分配給新檔案并把分配的DN 的地址回傳,然后客戶端和第一個 DN 手拉手建立資料管道,第一個 DN(主節點)和其他 DNs(從節點,也叫副本,一般兩個,防止資料丟失)手拉手建立資料管道,建好管道之后資料就通車了,把資料塊先寫進第一個DN,第一個DN寫完之后寫入第二個 DN,依次往下直至所有資料寫入,最后一個 DN 寫完之后會回傳 ACK 確認碼,說我終于寫好了,接收到的 DN 繼續傳遞(和烽火狼煙差不多),客戶端接收到確認資訊之后就會關閉 Clint-DN 之間的管道,DN 給 NN 報告,我寫完了,這樣第一個資料塊就寫完了,
然后 NN 會繼續找空的 DN,回傳地址,……等等和以上程序一樣,直到所有資料塊全都寫完,客戶端和 NN 之間的管道關閉,資料寫入結束,
在這里插入圖片描述

如果寫程序懂了,讀程序就不用介紹了,如果沒懂,那就再回去看看寫程序 (笑),

如果在寫入或者讀取的程序,發生了意外情況,我們該怎么辦呢?這就牽扯到容錯處理了,但是這非常復雜,這里就簡單介紹,
在這里插入圖片描述
DN 掛掉一定時間以后,NN 會補上一個新的 DN,NN 掛掉會比較麻煩,為了不讓 NN 掛掉產生可怕的影響,所以進行了一定的安全保障的設計,
在這里插入圖片描述
作為一個小白,這里的設計術語也不是很明白,略過不講,想要了解可以參考美團HDFS NameNode重啟優化,或者參考社區解決方案,
weishen
以上兩張圖主要解決記憶體結點高可用,單節點擴展方法問題,

2.1.2 YARN 分布式資源調度

YARN 這里簡單介紹,
在這里插入圖片描述
YARN 這名字就像是硬湊的(老師說的,與我無瓜),其實就是資源協調器,為了使 Hadoop1.0 版本中資源調度和計算框架進行分析而提出的,YARN 的模塊設計如下,主要包含三個 Manager,
在這里插入圖片描述
任務啟動流程可大致了解,
在這里插入圖片描述
資源調度策略——FairScheduler(公平調度)
在這里插入圖片描述
這是 FairScheduler 的內部實作,
在這里插入圖片描述
具體有哪些資源調度以及什么原理我覺得可以參考這個:Hadoop 的三種調度器
在這里插入圖片描述

2.1.3 Spark 通用分布式計算框架

Spark 自稱 比 Hadoop 有100倍提升,
在這里插入圖片描述
除了支持多語言,也提供了四個框架,包括 Spark SQL,Spark Streaming(流式框架),MLlib(機器學習庫),GraphX(圖計算庫)等,比較完備,

Spark 具體暴露了什么樣的編程介面呢?下圖還是上面提到的 “Hello World” ,通過一個入口命令列啟動自己的程式,自己宣告一個 Spark Session 或者 命令列提供的 Session 去構造 RDD(彈性分布式資料集) 的一個最底層的邏輯抽象,可以把 RDD看作一個大的 list 來用,里面包含各種檔案和資料,RDD 包含兩個算子,一個叫做 Transform,理解為資料的轉換操作;一個叫 Action,理解為對資料的計算操作,
在這里插入圖片描述
這里是一些其他介面:
在這里插入圖片描述
這里舉了一個 wordcount 的例子,右邊的圖使左邊代碼的一個直觀體現,主要對應了左邊紅框部分的運算,
在這里插入圖片描述
在這里插入圖片描述
直觀來看,flatMap,map,reduceByKey 是一個 transform 因為其將語料進行了切分,就是進行了資料的轉換,而 saveAsFile 都是 Action,因為其對資料進行計算了存盤,(個人理解)

我們寫好了程式,又該如何提交呢?我們來看一下 Spark 的提交流程,其實和我們的 YARN 的架構很相似,Driver 相當于 YARN 的 app master,基于自己的調度邏輯和 RM 拿資源, 拿到資源后把 Spark Executer 提起來,
在這里插入圖片描述

這是一個 RDD 的一個描述圖,最左邊可能是一個 Java 程式,然后通過邏輯進行分割成不同的 stages,每一個小框(一個邏輯)包含幾個塊(task),對于每個task,要到集群(Cluster manager )上申請資源,然后調度到實際在跑的結點上去執行該執行的邏輯,這里的 Worker 就是 Executor,
在這里插入圖片描述

這些概念有印象就行,一般也只有 debug 才會用到,
在這里插入圖片描述
前面我們提到了 Stage,那么 Satge 具體怎么拆分的呢?
用戶提交的計算任務是一個由 RDD 構成的 DAG,如果 RDD 在轉換的時候需要做 Shuffle,那么這個 Shuffle 的程序就將這個 DAG 分為了不同的階段(即Stage),由于 Shuffle 的存在,不同的Stage 是不能并行計算的,因為后面 Stage 的計算需要前面 Stage 的 Shuffle 的結果,
在這里插入圖片描述
然后我們來看一個比較完整的包含 shuffle 的 mapreduce 的例子,(大家注意區分 mapredcue 中的 map 和 map func 中的 map 的區別)
在這里插入圖片描述
*藍色是資料流轉的程序,圓角黑框是行程,Memory 部分是記憶體部分

流程如下:

  1. Map 端通過 HDFS Client 讀入資料,執行 Map 端用戶自定義邏輯,
  2. 通過 key 和 用戶定義 Map Func 對資料進行磁區,中間結果寫入快取,
  3. 快取空間不夠時(一般使用到80%)會將快取資料寫入檔案,保存到磁盤,這個程序叫 Spill(這里輸出的資料是根據 key 組織,相對有序的),然后就可以繼續寫入記憶體,直到所有資料被處理,
  4. 對于所有 Spill 得到的檔案(檔案之間無序)和記憶體資料,進行 Merge Sort 按序寫入大檔案,一個 Map 端的結果可能被不同的 Reduce 讀取,所以會有一個 Map 和 Reduce 的映射關系,以及檔案是怎么切分的都會記錄在Spark 中的 MapOutput 元資料中,
  5. 所有 Map 端 task 跑完之后,Reduce 端服務啟動,拉取 Shuffle 之后的 Map 端結果,
  6. 拉取資料先寫快取,
  7. 快取不夠 Spill 到本地磁盤,
  8. 合并所有 Spill 檔案,
  9. 執行 Reduce 端用戶定義邏輯
  10. 按需輸出資料,寫HDFS,

總的來說:
Map 端:map -> partition -> spill -> merge sort -> shuffle
Reduce 端:fetch -> spill -> merge sort -> reduce -> some where

Spark 的容錯相對簡單, 一個 Worker 掛了,就把對應 Task 調度到其他 Worker 就行了,如果 Driver 結點掛掉了,YARN 會幫忙拉起來,
在這里插入圖片描述

2.2 進一步學習

深入學習建議:

  1. 動手搭建
  2. 理論閱讀(如圖)
    在這里插入圖片描述
    Designing Data-Intensive Applications 英文版 emmm

三、 美團點評架構改造案例

(這部分我不太了解,就不詳細注釋了,大家有問題可私我)

3.1 Hadoop 異地多機房架構改造

在這里插入圖片描述
不同顏色代表了不同機房,機房之間可能只用光纖通信,機房之間的通信量遠小于機房之內的機器的,抽象起來就是跨機房帶寬管控,

在這里插入圖片描述
下面藍框和紅框都是交換機,
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
Zone Server 代表了一個機房的服務,
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

3.2 YARN 核心調度流程優化

在這里插入圖片描述
之前的YARN調度圖,平均可能一個機器都跑不滿,
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

3.3 資料倉庫SQL引擎Spark替換Hive on MR

在這里插入圖片描述
支持SQL方言不同,不敢全面上線,就把SQL在兩種資料庫上跑一遍,不兼容的情況進一步處理,
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
Shuffle Service 會有專門的 paper,最近要發,
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

本人剛學不久,可能有地方注釋不是很清楚或者有錯誤,歡迎大家批評指正,分享交流,

相關資料和參考:

  1. 美團 HDFS NameNode 記憶體詳解
  2. 美團 HDFS NameNode 重啟優化
  3. HDFS Federation 在美團點評的應用與改進
  4. Spark 在美團的實踐
  5. 美團 Spark 性能優化指南——高級篇
  6. Hadoop 的三種調度器
  7. Spark 基本概念、模塊、架構
  8. hadoop中FsImage與Editslog合并決議
  9. Designing Data-Intensive Applications

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/187888.html

標籤:其他

上一篇:簡直是千年難遇!這一份最火kafaka實戰筆記 ,細節詳細到你無法想象!

下一篇:前端搞搞基建(二)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more