算法系列-大資料面試題-兩個大檔案中找出共同記錄
1.題目描述
給定a、b兩個檔案,各存放50億個url,每個url各佔64位元組,記憶體限制是4G,讓你找出a、b檔案共同的url?
2.思考過程
(1)首先我們最常想到的方法是讀取檔案a,建立雜湊表(為什麼要建立hash表?因為方便後面的查詢),然後再讀取檔案b,遍歷檔案b中每個url,對於每個遍歷,我們都執行查詢hash表的操作,若hash表中搜索到了,則說明兩檔案共有,存入一個集合。
(2)但上述方法有一個明顯問題,載入一個檔案的資料需要50億*64bytes = 320G遠遠大於4G記憶體,何況我們還需要分配雜湊表資料結構所使用的空間,所以不可能一次性把檔案中所有資料構建一個整體的hash表。
(3)針對上述問題,我們分治演算法
step1:遍歷檔案a,對每個url求取hash(url)%1000,然後根據所取得的值將url分別儲存到1000個小檔案(記為a0,a1,...,a999,每個小檔案約300M),為什麼是1000?主要根據記憶體大小和要分治的檔案大小來計算,我們就大致可以把320G大小分為1000份,每份大約300M(當然,到底能不能分佈儘量均勻,得看hash函式的設計)
step2:遍歷檔案b,採取和a相同的方式將url分別儲存到1000個小檔案(記為b0,b1,...,b999)(為什麼要這樣做? 檔案a的hash對映和檔案b的hash對映函式要保持一致,這樣的話相同的url就會儲存在對應的小檔案中,比如,如果a中有一個url記錄data1被hash到了a99檔案中,那麼如果b中也有相同url,則一定被hash到了b99中)
所以現在問題轉換成了:找出1000對小檔案中每一對相同的url(不對應的小檔案不可能有相同的url)
step3:因為每個hash大約300M,所以我們再可以採用(1)中的想法
相關推薦
算法系列-大資料面試題-兩個大檔案中找出共同記錄
1.題目描述給定a、b兩個檔案,各存放50億個url,每個url各佔64位元組,記憶體限制是4G,讓你找出a、b檔案共同的url?2.思考過程(1)首先我們最常想到的方法是讀取檔案a,建立雜湊表(為什麼要建立hash表?因為方便後面的查詢),然後再讀取檔案b,遍歷檔案b中每個
大資料面試題-兩個大檔案中找出共同記錄
1.題目描述給定a、b兩個檔案,各存放50億個url,每個url各佔64位元組,記憶體限制是4G,讓你找出a、b檔案共同的url?2.思考過程(1)首先我們最常想到的方法是讀取檔案a,建立雜湊表(為什麼要建立hash表?因為方便後面的查詢),然後再讀取檔案b,遍歷檔案b中每個
算法和數據結構面試題
printf sso 標點符號 子數組 names 開始 負數 con 那是 1.求子數組的最大和 例如輸入的數組為1, -2, 3, 10, -4, 7, 2, -5,和最大的子數組為3, 10, -4, 7, 2,因此輸出為該子數組的和18。 因為是O(N)的復雜度,因
大資料面試題01
Spark Application 使用者自己寫的程式,批處理作業的集合,Application的main方法時程式的入口,定義了RDD以及對RDD的操作 SparkContext spark的重要api,使用者邏輯與spark的互動介面。會和Cluster manager
網際網路大資料面試題集錦
原文地址:http://hbase.group/article/89 以下面試題都是群裡小夥伴提供的,現場真題(包含校招題)1.網易大資料面試題 說說專案 Spark哪部分用得好,如何調優 Java哪部分了解比較好 聊聊併發,併發實現方法,volatile關鍵字說說
網易杭研大資料面試題
一面: hdfs讀寫過程 MR原理 講專案 balabala... 差不多40幾分鐘吧 二面: 講專案,專案一個點一個點的問。 主要講的是PV、UV的統計、其中設計到rowkey衝突怎麼處理。 接著講專案balabala 差不多40多分鐘吧 HR面(一個男
2019最新大資料面試題及答案整理
大資料面試題總結一波,助力準備在金三銀四尋找好工作的小夥伴們,只有度過筆試這一關才能在下面的關卡中大展巨集圖! 一、如何檢查namenode是否正常執行?重啟namenode的命令是什麼? 通過節點資訊和瀏覽器檢視,通過指令碼監控 hadoop-daemon.sh start namenod
網際網路公司大資料面試題參考指南
以下面試題都是群裡小夥伴提供的,現場真題(包含校招題) 1.網易大資料面試題 說說專案 Spark哪部分用得好,如何調優 Java哪部分了解比較好 聊聊併發,併發實現方法,volatile關鍵字說說 HashMap的底層原理 為什麼要重寫hashcode和equ
大資料面試題分享之spark面試題
一 什麼是spark Spark是大資料的排程,監控和分配引擎。它是一個快速通用的叢集計算平臺.Spark擴充套件了流行的MapReduce模型.Spark提供的主要功能之一就是能夠在記憶體中執行計算 ,但對於在磁碟上執行的複雜應用程式,系統也比MapReduce更有效。
大資料面試題以及答案整理(一)
kafka的message包括哪些資訊 一個Kafka的Message由一個固定長度的header和一個變長的訊息體body組成 header部分由一個位元組的magic(檔案格式)和四個位元組的CRC32(用於判斷body訊息體是否正常)構成。當magic的值為
大資料面試題彙總版
作者 大資料面試題及答案 彙總版 當前版本: Ver 1.0 製作單位: 編寫人員: 審 核 人: 籤 收 人: 簽署日期: 201
2018年大資料面試題總結
目前面試了多家大資料開發工程師,成長了很多,也知道了很多知識,下面和大家分享一下我遇到的面試題和答案。 1.kafka叢集的規模,消費速度是多少。 答:一般中小型公司是10個節點,每秒20M左右。 2.hdfs上傳檔案的流程。 答:這裡描述的 是一個256M的檔
大資料面試題必會2018.01.07
資料分析師常見的10道面試題解答 1.海量日誌資料,提取出某日訪問百度次數最多的那個IP。 首先是這一天,並且是訪問百度的日誌中的IP取出來,逐個寫入到一個大檔案中,注意到IP是32位的,最多有個2*32個IP。同樣可以採用對映的方法,比如模1000,把整個大檔案對映為100
大資料面試題—7
9. 面試問題: 1.從前到後從你教育背景(學過哪些課)到各個專案你負責的模組,問的很細(本以為他是物理學博士,但是所有的技術都懂) 2.hadoop 的 namenode 宕機,怎麼解決 先分析宕機後的損失,宕機後直接導致client無法訪問,記憶體中的元資料丟失,但是硬碟中的元資料應該還存在
大資料面試題—6
3.14 1、一個Hadoop環境,整合了HBase和Hive,是否有必要給HDFS和Hbase都分別配置壓縮策略?請給出對壓縮策略的建議。 hdfs在儲存的時候不會將資料進行壓縮,如果想進行壓縮,我們可以在向hdfs上傳資料的時候進行壓縮。 1)、 採用壓縮流 2)、 &nb
2019最新大資料面試題 助力大家度過筆試關
大資料面試題總結一波,助力準備在金三銀四尋找好工作的小夥伴們,只有度過筆試這一關才能在下面的關卡中大展巨集圖! 一、如何檢查namenode是否正常執行?重啟namenode的命令是什麼? 通過節點資訊和瀏覽器檢視,通過指令碼監控 hadoop-d
經典大資料面試題
什麼是大資料? 大資料(big data,mega data),或稱巨量資料,指的是需要新處理模式才能具有更強的決策力、洞察力和流程優化能力的海量、高增長率和多樣化的資訊資產。 在維克托·邁爾-舍恩伯格及肯尼斯·庫克耶編寫的《大資料時代》中大資料指不用隨機分析法(抽樣調查)
你不知道的BAT大資料面試題
你不知道的BAT大資料面試題 1、kafka的message包括哪些資訊 一個Kafka的
30個常見的大資料面試題 --讓你的薪資更上一層
30個常見的大資料面試題: 包含spark、scala、storm、hadoop等常見的大資料處理工具; 常用的分散式資料庫如hbase、MongoDB、Redis等; 其他常用的java基礎、linux相關技術等 1.scala 語言有什麼特點,什
大資料面試題之Hadoop叢集搭建步驟
一、開啟需要搭建Hadoop叢集的主從節點伺服器 ,配置好靜態IP、主機名hostname、主機IP對映檔案hosts、關掉防火牆二、通過遠端登入工具(我用的是SecureSRT) 登入到Linux系統,登入前需要在Windows系統中C:\Windows\System32\