久久精品国产99国产精品,农村大炕弄老女人,人马配速90分钟,香蕉成人伊视频在线观看

分布式文件系統(tǒng)設(shè)計步驟 hadoop設(shè)計理念和核心技術(shù)?

hadoop設(shè)計理念和核心技術(shù)?狹義的hadoop指的是HDFS和MapReduce。HDFS是hadoop分布式文件系統(tǒng),是由多臺計算機組成的集群上的組件文件系統(tǒng)。MapReduc如何使用Mongo

hadoop設(shè)計理念和核心技術(shù)?

狹義的hadoop指的是HDFS和MapReduce。HDFS是hadoop分布式文件系統(tǒng),是由多臺計算機組成的集群上的組件文件系統(tǒng)。MapReduc

如何使用MongoDb實現(xiàn)分布式Id?

在傳統(tǒng)數(shù)據(jù)庫軟件的開發(fā)中,各大數(shù)據(jù)庫也對這一需求提供了相應(yīng)的支持,比如MySQL的自增。

分布式ID的特點包括:唯一性:保證生成的ID在全網(wǎng)唯一;高可用性:確保ID在任何時候都能正確生成。

github上對分布式ID的描述是:分布式唯一性和時間序列。

主要方案包括

使用reids的incr命令,使用UUIDTwitter的雪花算法,使用zookeeper生成MongoDB的唯一ID。ObjectIdMongoDB被設(shè)計成輕量級的,不同的機器可以是全局唯一的。

其格式:

前4個字節(jié)是標準時代的時間戳,以秒為單位。時間戳與接下來的5個字節(jié)一起提供了第二級的唯一性。因為時間戳排在最前面,這意味著ObjectId將大致按照插入順序排列。這在某些方面是有用的,比如用它作為索引來提高效率。這四個字節(jié)也暗示了文檔創(chuàng)建的時間。大多數(shù)客戶端類庫都會公開一個方法來從ObjectId獲取這些信息。

接下來的3個字節(jié)是主機的唯一標識符。通常是機器主機名的哈希值。這可以確保不同的主機生成不同的ObjectId而不會發(fā)生。為了確保同一臺機器上多個并發(fā)進程生成的ObjectId是唯一的,接下來的兩個字節(jié)來自生成ObjectId的進程標識符(PID)。

前9個字節(jié)確保不同機器和進程在同一秒內(nèi)生成的ObjectId是唯一的。最后3個字節(jié)是自動遞增的計數(shù)器,保證同一進程在同一秒生成的ObjectId也是不同的。每個進程允許同時擁有2563(16 777 216)個不同的ObjectId。

機器ID是服務(wù)器主機的標識,通常是機器主機名的哈希值。

您可以在同一臺機器上運行mongod的多個實例,因此您還需要添加進程標識符PID。

前9個字節(jié)保證了同一秒內(nèi)不同機器和進程生成的ObjectId的唯一性。最后三個字節(jié)是一個自動遞增的計數(shù)器(一個mongod進程需要一個全局計數(shù)器),保證了同一秒的ObjectId是唯一的。每個進程最多允許有(256 ^ 3 ^ 167。77216)不同的ObjectId。

綜上所述,時間戳保證以秒為單位的唯一性,機器ID保證設(shè)計分布式避免時鐘同步,PID保證同一個服務(wù)器運行多個mongod實例時的唯一性,最后一個計數(shù)器保證同一秒內(nèi)的唯一性(幾個字節(jié)的選擇既要考慮存儲的經(jīng)濟性,又要考慮并發(fā)性能的上限)。

_id既可以在服務(wù)器端生成,也可以在客戶端生成,可以減輕服務(wù)器端的壓力。

主要參考:

主站蜘蛛池模板: 兴文县| 贵溪市| 兰州市| 图木舒克市| 万荣县| 贞丰县| 嘉鱼县| 九江市| 台湾省| 兴宁市| 台东县| 龙岩市| 泾源县| 宁晋县| 沛县| 阳新县| 土默特左旗| 边坝县| 紫云| 北辰区| 连平县| 青川县| 枣阳市| 新沂市| 长春市| 灵台县| 鲁甸县| 安庆市| 通榆县| 亚东县| 衡阳县| 花莲市| 尤溪县| 浦北县| 康马县| 清水县| 简阳市| 潼关县| 三门峡市| 石门县| 利辛县|