亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 專題 > 云計算 > 正文

云計算用1.5KB內存為十億對象計數方法

2020-05-27 13:47:31
字體:
來源:轉載
供稿:網友

  為了更好地理解已經明確基數的大數據集的挑戰,我們假設你的日志文件包含16個字符的ID,并且你想統計不同ID的數量.例如:

  4f67bfc603106cb2

  這16個字符需要用128位來表示。6萬5千個ID將需要1MB的空間。我們每天收到30多億條事件記錄,每條記錄都有一個ID。這些ID需要3840億位或45GB的存儲。而這僅僅是ID字段需要的空間。我們采取一種簡單的方法獲取日常事件記錄中以ID為基數的數據。最簡單的辦法就是使用哈希集合且存放到內存中,其中哈希集包含唯一ID的列表(即輸入文件中可能會有多條記錄的id是相同,但在哈希集中只存放一條)。即使我們假設只有1/3的條記錄ID是唯一的(即2/3的記錄ID是重復的),哈希集仍需要119GB的RAM,這其中不包括Java需要在內存中存儲對象的開銷。你需要一臺配備幾百GB內存的機器來計算不同的元素,并且這只是計算一天內日志事件記錄的唯一ID的內存消耗。如果我們想要統計數周或數月的數據,這問題只會變得更加困難。我們身邊當然不會有一臺配備幾百GB內存的空閑機器,所以我們需要一個更好的解決方案。

  解決這一問題的常見辦法是使用位圖(博客:海量數據處理算法—Bit-Map)。位圖可以快速、準確地獲取一個給定輸入的基數。位圖的基本思想是使用哈希函數把數據集映射到一個bit位,每個輸入元素與bit位是一一對應。這樣Hash將沒有產生碰撞沖突,并減少需要計算每個元素映射到1個bit的空間。雖然Bit-map大大節省了存儲空間,但當統計很高的基數或非常大的不同的數據集,它們仍然有問題。例如,如果我們想要使用Bit-map計數十億,你將需要Bit-map位,或需要每個約120 MB的計數器。稀疏的位圖可以被壓縮,以獲得更多的空間效率,但也并不總是有幫助的。

  幸運的是,基數估計是一個熱門的研究領域。我們已經利用這項研究提供了一個開源實現的基數估計、集合元素檢測和top-k算法。

  基數估計算法就是使用準確性換取空間。為了說明這一點,我們用三種不同的計算方法統計所有莎士比亞作品中不同單詞的數量。請注意,我們的輸入數據集增加了額外的數據以致比問題的參考基數更高。這三種技術是:Java HashSet、Linear Probabilistic Counter以及一個Hyper LogLog Counter。結果如下:

  該表顯示,我們統計這些單詞只用了512 bytes,而誤差在3%以內。相比之下,HashMap的計數準確度最高,但需要近10MB的空間,你可以很容易地看到為什么基數估計是有用的。在實際應用中準確性并不是很重要的,這是事實,在大多數網絡規模和網絡計算的情況下,用概率計數器會節省巨大的空間。

  線性概率計數器

  線性概率計數器是高效的使用空間,并且允許實現者指定所需的精度水平。該算法在注重空間效率時是很有用的,但你需要能夠控制結果的誤差。該算法分兩步運行:第一步,首先在內存中分配一個初始化為都為0的Bit-map,然后使用哈希函數對輸入數據中的每個條目進行hash計算,哈希函數運算的結果是將每條記錄(或者是元素)映射到Bit-map的一個Bit位上,該Bit位被置為1;第二步,算法計算空的bit位數量,并使用這個數輸入到下面的公式來進行估算:

  n=-m ln Vn

  在公式中,m是 Bit-map的大小,Vn是空bit位和map的大小的比率。需要重點注意的是原始Bit-map的大小,可以遠小于預期的最大基數。到底小多少取決于你可以承受誤差的大小。因為Bit-map的大小m小于不同元素的總數將會產生碰撞。雖然碰撞可以節省空間,但同時也造成了估算結果出現誤差。所以通過控制原始map的大小,我們可以估算碰撞的次數,以致我們將在最終結果中看到誤差有多大。

  Hyper LogLog

  顧名思義,Hyper LogLog計數器就是估算Nmax為基數的數據集僅需使用loglog(Nmax)+O(1) bits就可以。如線性計數器的Hyper LogLog計數器允許設計人員指定所需的精度值,在Hyper LogLog的情況下,這是通過定義所需的相對標準差和預期要計數的最大基數。大部分計數器通過一個輸入數據流M,并應用一個哈希函數設置h(M)來工作。這將產生一個S = h(M) of {0,1}^∞字符串的可觀測結果。通過分割哈希輸入流成m個子字符串,并對每個子輸入流保持m的值可觀測 ,這就是相當一個新Hyper LogLog(一個子m就是一個新的Hyper LogLog)。利用額外的觀測值的平均值,產生一個計數器,其精度隨著m的增長而提高,這只需要對輸入集合中的每個元素執行幾步操作就可以完成。其結果是,這個計數器可以僅使用1.5 kb的空間計算精度為2%的十億個不同的數據元素。與執行 HashSet所需的120 兆字節進行比較,這種算法的效率很明顯。

  合并分布式計數器

  我們已經證明了使用上面描述的計數器我們可以估算大集合的基數。但是,如果你的原始輸入數據集不適合于單臺機器,將怎么做呢?這正是我們在Clearspring所面臨的問題。我們的數據分散在數百臺服務器上,并且每個服務器只包含整個數據集子集的一部分。這事實上我們能合并一組分布式計數器的內容是至關重要的。這個想法有點令人費解,但如果你花費一些時間去思考這個問題,就會發現其與基本的基數估計值相比并沒有太大的不同。因為這個計數器表示映射中的位作為基數,我們可以采取兩個兼容計數器并將他們bit位合并到單一的map上。這個算法已經處理碰撞,所以我們可以得到一個基數估計所需的精密,即使我們從來沒有把所有的輸入數據到一臺機器。這是非常有用的,節省了我們在網絡中移動數據的大量時間和精力。

  Next Steps

  希望這篇文章能幫助你更好地理解這個概念和概率計數器的應用。如果估算大集合的基數是一個問題,而你又碰巧使用一個基于JVM的語言,那么你應該使用stream-lib項目——它提供了其他幾個流處理工具以及上文所述的算法的實現。

上一篇:云計算的安全問題

下一篇:返回列表

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲高清久久久久久| 91国产美女视频| 国产一区二区激情| 国产日韩在线播放| 久久综合九色九九| 国内精品视频久久| 亚洲国模精品一区| 91在线无精精品一区二区| 亚洲成人网在线观看| 欧美极品少妇xxxxⅹ免费视频| 欧美午夜影院在线视频| 国产精品成人aaaaa网站| 国产精品白嫩初高中害羞小美女| 91超碰中文字幕久久精品| 欧美国产日韩中文字幕在线| 在线免费看av不卡| 精品国产鲁一鲁一区二区张丽| 国产精品视频在线观看| 日韩成人av在线播放| 美女撒尿一区二区三区| 影音先锋欧美精品| 精品日韩美女的视频高清| 在线观看日韩专区| 97在线日本国产| 国产精品国产福利国产秒拍| 青草热久免费精品视频| 国产精品9999| 狠狠躁天天躁日日躁欧美| 91极品女神在线| 国产精品永久在线| 欧美性xxxxx极品| 亚洲精品欧美日韩专区| 91人人爽人人爽人人精88v| 日韩一二三在线视频播| 日韩av免费看| 欧美福利小视频| 国产精品福利在线观看| 91精品国产91久久久久久吃药| 亚洲欧美日韩精品久久| 亚洲а∨天堂久久精品喷水| 日产精品99久久久久久| 精品国产鲁一鲁一区二区张丽| 欧美日韩国产成人高清视频| 亚洲精品之草原avav久久| 9.1国产丝袜在线观看| 九九热这里只有在线精品视| 91精品国产自产在线老师啪| 91九色视频在线| 狠狠躁夜夜躁人人躁婷婷91| 91天堂在线观看| 亚洲精品www久久久久久广东| 亚洲欧洲美洲在线综合| 国产亚洲精品久久久久久牛牛| 国产成人鲁鲁免费视频a| 中文字幕国产亚洲2019| 国产精品久久久久久久电影| 中文字幕亚洲专区| 久久成人免费视频| 日韩精品高清视频| 久久精品视频在线播放| 欧美理论在线观看| 国产精品久久久久影院日本| 日本韩国欧美精品大片卡二| 欧美日韩国产精品专区| 亚洲欧美国产日韩中文字幕| 成人av在线亚洲| 欧美成在线视频| 久久亚洲私人国产精品va| 国产性猛交xxxx免费看久久| 91精品国产91久久久久久吃药| 国产精品第10页| 欧美精品xxx| 国产欧美日韩高清| 亚洲国产精品嫩草影院久久| 中文字幕国内精品| 日韩专区在线观看| 精品国产网站地址| 欧美黑人一级爽快片淫片高清| 国产精品亚洲一区二区三区| 奇米影视亚洲狠狠色| 国内精品久久影院| 91久久久久久久| 色系列之999| 欧美做受高潮1| 97国产一区二区精品久久呦| 久久久精品久久久| 欧美猛少妇色xxxxx| 国产精品视频永久免费播放| 热re99久久精品国产66热| 国产精品高清在线观看| 疯狂做受xxxx欧美肥白少妇| 欧美日韩精品在线播放| 色综合久久中文字幕综合网小说| 青青a在线精品免费观看| 91精品国产成人| 国产午夜精品一区理论片飘花| 日韩精品高清视频| y97精品国产97久久久久久| 国产精品久久久久久久久久新婚| 亚洲999一在线观看www| 久久久精品免费视频| 97视频免费在线观看| 久久久久久久久久国产精品| 性欧美xxxx| 97精品视频在线| 欧美中文在线字幕| 亚洲尤物视频网| 亚洲国产精品视频在线观看| 欧美中文字幕视频在线观看| 在线视频亚洲欧美| 久久久久久18| 亚洲国产第一页| 亚洲成人免费在线视频| 精品视频在线播放| 日韩成人黄色av| 国产精品久久久久久久久久99| 亚洲欧美中文在线视频| 91深夜福利视频| 久久精品国产清自在天天线| 亚洲国产婷婷香蕉久久久久久| 欧美午夜精品久久久久久久| 欧美激情亚洲精品| 日本免费久久高清视频| 国产在线999| 欧美视频在线免费| 欧美国产乱视频| 国产ts人妖一区二区三区| 久久理论片午夜琪琪电影网| 欧美成人黑人xx视频免费观看| 亚洲性69xxxbbb| 久久久久久这里只有精品| 国产精品日韩欧美| 日韩在线视频观看正片免费网站| 国产区亚洲区欧美区| 日本久久亚洲电影| 欧美性xxxx在线播放| 日韩国产欧美精品一区二区三区| 亚洲综合国产精品| 亚洲国产精品免费| 亚洲理论在线a中文字幕| 亚洲男人天堂九九视频| 亚洲春色另类小说| 国产精品情侣自拍| 国产v综合v亚洲欧美久久| 91国偷自产一区二区三区的观看方式| 91麻豆桃色免费看| 亚洲精品资源美女情侣酒店| 国产精品久久久久999| 亚洲系列中文字幕| 久久视频在线免费观看| 91最新在线免费观看| 欧美老女人在线视频| 中文字幕久精品免费视频| 大胆人体色综合| 亚洲第一区中文字幕| 日韩经典中文字幕| 成人黄色在线免费| 中文字幕久精品免费视频| 国产一区二中文字幕在线看| 欧美放荡办公室videos4k| 国产午夜精品全部视频播放| 日韩视频在线免费观看| 欧美黑人xxxⅹ高潮交| 18久久久久久|