海量數據場景題--查找兩個大文件的URL

查找兩個大文件共同的URL

給定 a、b 兩個文件,各存放 50 億個 URL,每個 URL 各占 64B,找出 a、b 兩個文件共同的 URL。內存限制是 4G。

  • 操作邏輯:

    • 使用哈希函數 hash(URL) % 1000? 將每個URL映射到0-999的編號

      • 文件A切割為a0, a1, ..., a999?,每個約300MB;文件B同理切割為b0, b1, ..., b999?
    • 關鍵保證:
      相同URL必被哈希到同一編號的小文件。例如,URL "http://example.com"在文件A中分配到a42?,則在文件B中也必分配到b42?

      匹配規則:
      僅需比較同一編號的ai?與bi?,無需跨文件比較(如a3?只與b3?對比)

    • ?

      image

      `

  1. 為什么必須用哈希分治?直接排序再歸并行嗎?

    排序歸并的瓶頸:
    直接排序需將320GB文件全部排序,歸并時仍需多次I/O,總耗時比分治法更高

    • 哈希分治的優勢:
      通過哈希值直接定位對應文件對,減少無效比較次數
  1. 哈希沖突會導致錯誤嗎?

    不影響正確性:
    哈希沖突僅影響不同URL被分到同一文件,但匹配時通過精確比對HashSet中的原始URL可避免誤判

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

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

相關文章

簡單ELK框架搭建

簡介 ELK 框架是一套開源的日志管理和分析工具,由 Elasticsearch、Logstash 和 Kibana 三個主要組件組成,現在新增了Filebeat組件,可以更高效的收集數據。 Elasticsearch:是一個分布式、高可擴展的開源搜索引擎,能快速…

VS Code 中 .history`文件的來源與 .gitignore`的正確使用

引言 在使用 VS Code 進行 Git 版本控制時,有時會發現項目中多出一個 .history 目錄,并被 Git 識別為未跟蹤文件。本文將解釋 .history 的來源,并提供 .gitignore 的正確配置方法,確保開發環境的整潔性。 1. .history 文件的來源…

網絡之數據鏈路層

數據鏈路層 數據鏈路層目標 TCP/IP提供了一種能力, 將數據可靠的從 B 跨網絡送到 C 主機, 這期間是由無數次局域網轉發構成的, 比如 主機B 到 路由器F 就是一次局域網通信的問題, 而數據鏈路層就是研究數據是如何在局域網內部轉發的. 也就是說, 應用層是進行數據的處理, 傳輸…

A Brief History: from GPT-1 to GPT-3

This is my reading notes of 《Developing Apps with GPT-4 and ChatGPT》. In this section, we will introduce the evolution of the OpenAI GPT medels from GPT-1 to GPT-4. GPT-1 In mid-2018, OpenAI published a paper titled “Improving Language Understanding …

基于大數據的各品牌手機銷量數據可視化分析系統(源碼+lw+部署文檔+講解),源碼可白嫖!

摘要 時代在飛速進步,每個行業都在努力發展現在先進技術,通過這些先進的技術來提高自己的水平和優勢,各品牌手機銷量數據可視化分析系統當然不能排除在外。基于大數據的各品牌手機銷量數據可視化分析系統是在實際應用和軟件工程的開發原理之…

人工智能-群暉Docker部署DB-GPT

人工智能-群暉Docker部署DB-GPT 0 環境及說明1 獲取dbgpt的docker鏡像2 下載向量模型3 下載配置文件4 修改配置文件5 創建dbgpt容器并運行6 訪問dbgpt0 環境及說明 環境項說明DSM版本DSM 7.2.1-69057 update 3Container Manager版本24.0.2-1535當前 hub.docker.com 鏡像倉庫中的…

Netty——TCP 粘包/拆包問題

文章目錄 1. 什么是 粘包/拆包 問題?2. 原因2.1 Nagle 算法2.2 滑動窗口2.3 MSS 限制2.4 粘包的原因2.5 拆包的原因 3. 解決方案3.1 固定長度消息3.2 分隔符標識3.3 長度前綴協議3.3.1 案例一3.3.2 案例二3.3.3 案例三 4. 總結 1. 什么是 粘包/拆包 問題&#xff1f…

JavaScript Fetch API

簡介 fetch() API 是用于發送 HTTP 請求的現代異步方法,它基于 Promise,比傳統的 XMLHttpRequest 更加簡潔、強大 示例 基本語法 fetch(url, options).then(response > response.json()).then(data > console.log(data)).catch(error > con…

UMI-OCR Docker 部署

額外補充 Docker 0.前置條件 部署前,請檢查主機的CPU是否具有AVX指令集 lscpu | grep avx 輸出如下即可繼續部署 Flags: ... avx ... avx2 ... 1.下載dockerfile wget https://raw.githubusercontent.com/hiroi-sora/Umi-OCR_runtime_linux/main/Do…

C++ --- 二叉搜索樹

1 二叉搜索樹的概念 ?叉搜索樹?稱?叉排序樹,它或者是?棵空樹,或者是具有以下性質的?叉樹: 1 若它的左?樹不為空,則左?樹上所有結點的值都?于等于根結點的值 2 若它的右?樹不為空,則右?樹上所有結點的值都?于等于根結點…

跨語言語言模型預訓練

摘要 最近的研究表明,生成式預訓練在英語自然語言理解任務中表現出較高的效率。在本研究中,我們將這一方法擴展到多種語言,并展示跨語言預訓練的有效性。我們提出了兩種學習跨語言語言模型(XLM)的方法:一種…

文件描述符,它在哪里存的,exec()后還存在嗎

學過計系肯定了解 寄存器、程序計數器、堆棧這些 程序運行需要的資源。 這些是進程地址空間。 而操作系統分配一個進程資源時,分配的是 PCB 進程控制塊。 所以進程控制塊還維護其他資源——程序與外部交互的資源——文件、管道、套接字。 文章目錄 文件描述符進程管…

Slidev使用(一)安裝

文章目錄 1. **安裝位置**2. **使用方式**3. **適用場景**4. **管理和維護** 全局安裝1. **檢查 Node.js 和 npm 是否已安裝**2. **全局安裝 Slidev CLI**3. **驗證安裝是否成功**4. **創建幻燈片文件**5. **啟動 Slidev**6. **實時編輯和預覽**7. **構建和導出(可選…

第二十一章:模板與繼承_《C++ Templates》notes

模板與繼承 重點和難點編譯與測試說明第一部分:多選題 (10題)第二部分:設計題 (5題)答案與詳解多選題答案:設計題參考答案 測試說明 重點和難點 21.1 空基類優化(EBCO) 知識點 空基類優化(Empty Base Cla…

AOA與TOA混合定位,MATLAB例程,自適應基站數量,三維空間下的運動軌跡,濾波使用EKF

本代碼實現了一個基于 到達角(AOA) 和 到達時間(TOA) 的混合定位算法,結合 擴展卡爾曼濾波(EKF) 對三維運動目標的軌跡進行濾波優化。代碼通過模擬動態目標與基站網絡,展示了從信號測量、定位解算到軌跡濾波的全流程,適用于城市峽谷、室內等復雜環境下的定位研究。 文…

量子計算:開啟未來計算的新紀元

一、引言 在當今數字化時代,計算技術的飛速發展深刻地改變了我們的生活和工作方式。從傳統的電子計算機到如今的高性能超級計算機,人類在計算能力上取得了巨大的進步。然而,隨著科技的不斷推進,我們面臨著越來越多的復雜問題&…

AMD機密計算虛擬機介紹

一、什么機密計算虛擬機 機密計算虛擬機 是一種基于硬件安全技術(如 AMD Secure Encrypted Virtualization, SEV)的虛擬化環境,旨在保護虛擬機(VM)的 ?運行中數據?(包括內存、CPU 寄存器等)免受外部攻擊或未經授權的訪問,即使云服務提供商或管理員也無法窺探。 AMD …

如何通過數據可視化提升管理效率

通過數據可視化提升管理效率的核心方法包括清晰展示關鍵指標、及時發現和解決問題、支持決策優化。其中,清晰展示關鍵指標尤為重要。通過數據可視化工具直觀地呈現關鍵績效指標(KPI),管理者能快速、準確地理解業務現狀&#xff0c…

.git 文件夾

文件夾介紹 🍎 在 macOS 上如何查看 .git 文件夾? ? 方法一:終端查看(最推薦) cd /你的項目路徑/ ls -a-a 參數表示“顯示所有文件(包括隱藏的)”,你就能看到: .git…

MongoDB 與 Elasticsearch 使用場景區別及示例

一、核心定位差異 ?MongoDB? ?定位?:通用型文檔數據庫,側重數據的存儲、事務管理及結構化查詢,支持 ACID 事務?。?典型場景?: 動態數據結構存儲(如用戶信息、商品詳情)?。需事務支持的場景&#xf…