久久精品国产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ù)器端的壓力。

主要參考:

主站蜘蛛池模板: 正镶白旗| 丽水市| 荣昌县| 美姑县| 大邑县| 建平县| 罗甸县| 类乌齐县| 同德县| 岳普湖县| 韶关市| 东乌珠穆沁旗| 诸城市| 平陆县| 乌苏市| 准格尔旗| 阳东县| 恩平市| 宣恩县| 田林县| 霸州市| 台南市| 梁平县| 顺昌县| 高雄市| 兴业县| 寻乌县| 彰化市| 曲阜市| 永吉县| 通山县| 沙河市| 巩义市| 来宾市| 工布江达县| 津南区| 泰来县| 灵川县| 湖口县| 高要市| 那坡县|