2021銀河麒麟服務(wù)器操作系統(tǒng)適配手冊(cè)合訂本_第1頁(yè)
2021銀河麒麟服務(wù)器操作系統(tǒng)適配手冊(cè)合訂本_第2頁(yè)
2021銀河麒麟服務(wù)器操作系統(tǒng)適配手冊(cè)合訂本_第3頁(yè)
2021銀河麒麟服務(wù)器操作系統(tǒng)適配手冊(cè)合訂本_第4頁(yè)
2021銀河麒麟服務(wù)器操作系統(tǒng)適配手冊(cè)合訂本_第5頁(yè)
已閱讀5頁(yè),還剩114頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

-solr-v7.7.2sqoop-v1.99.7V4mongodb軟件適配手冊(cè)銀河麒麟服務(wù)器操作系統(tǒng)V4銀河麒麟服務(wù)器操作系統(tǒng)V4mongodb軟件適配手冊(cè)目錄目 概 系統(tǒng)概 環(huán)境概 MONGODB軟件簡(jiǎn) MONGODB特 MONGODB使用原 MONGODB數(shù)據(jù)邏輯結(jié) MONGODB軟件適 MONGODB常見(jiàn)操 銀河麒麟服務(wù)器操作系統(tǒng)V4銀河麒麟服務(wù)器操作系統(tǒng)V4mongodb軟件適配手冊(cè)概述系統(tǒng)概述銀河麒麟服務(wù)器操作系統(tǒng)主要面向軍隊(duì)綜合電子信息系統(tǒng)、金融系統(tǒng)以及電力系統(tǒng)等國(guó)家關(guān)鍵行業(yè)的服務(wù)器應(yīng)用領(lǐng)域,突出高安全性、高可用性、高效數(shù)據(jù)處理、虛擬化等關(guān)鍵技術(shù)優(yōu)勢(shì),針對(duì)關(guān)鍵業(yè)務(wù)構(gòu)建的豐富高效、安全可靠的功能特性,兼容適配長(zhǎng)城、聯(lián)想、浪潮、華為、曙光等國(guó)內(nèi)主流廠商的服務(wù)器整機(jī)產(chǎn)品,以及達(dá)夢(mèng)、金倉(cāng)、神通、南大通用等主要國(guó)產(chǎn)數(shù)據(jù)庫(kù)和中創(chuàng)、金蝶、東方通等國(guó)產(chǎn)中間件,滿(mǎn)足虛擬化、云計(jì)算和大數(shù)據(jù)時(shí)代,服務(wù)器業(yè)務(wù)對(duì)操作系統(tǒng)在性能、安全性及可擴(kuò)展性等方面的需求,是一款具有高安全、高可用、高可靠、高性能的自主可控服務(wù)器操作系統(tǒng)。環(huán)境概述服務(wù)器型號(hào)長(zhǎng)城信安擎天DF720服務(wù)器CPU類(lèi)型飛騰2000+處理器操作系統(tǒng)版本Kylin-4.0.2-server-sp2-2000-內(nèi)核版本mongodb版本mongodb軟件簡(jiǎn)介MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)。由C++語(yǔ)言編寫(xiě)。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)jsonbson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類(lèi)型。Mongo最大的特點(diǎn)是它支持的查詢(xún)語(yǔ)言非常強(qiáng)大,其語(yǔ)法有點(diǎn)類(lèi)似于面向?qū)ο蟮牟樵?xún)語(yǔ)言,幾乎可以實(shí)現(xiàn)類(lèi)似關(guān)系數(shù)據(jù)庫(kù)單表查詢(xún)的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。Mongodb特點(diǎn)面向集合存儲(chǔ),易存儲(chǔ)對(duì)象類(lèi)型的數(shù)據(jù);模式自由;支持動(dòng)態(tài)查詢(xún)支持完全索引,包含內(nèi)部對(duì)象;支持查詢(xún);支持復(fù)制和故障恢復(fù);使用高效的二進(jìn)制數(shù)據(jù)存儲(chǔ),包括大型對(duì)象(如視頻等自動(dòng)處理碎片,以支持云計(jì)算層次的擴(kuò)展性;支持RUBY,PYTHON,JAVA,C++,PHP,C#等多種語(yǔ)言;文件存儲(chǔ)格式為BSON(JSON的擴(kuò)展可通過(guò)網(wǎng)絡(luò)訪問(wèn)。Mongodb使用原理所謂“面向集合”(Collection-Oriented),意思是數(shù)據(jù)被分組存儲(chǔ)在數(shù)據(jù)集中,被稱(chēng)為一個(gè)集合(Collection)。每個(gè)集合在數(shù)據(jù)庫(kù)中都有一個(gè)唯一的標(biāo)識(shí)名,并且可以包含無(wú)限數(shù)目的文檔。集合的概念類(lèi)似關(guān)系型數(shù)據(jù)庫(kù)(RDBMS)(table),不同的是它不需要定義任何模式(schema)。NytroMegaRAID技術(shù)中的閃存高速緩存算法,能夠快速識(shí)別數(shù)據(jù)庫(kù)內(nèi)大數(shù)據(jù)集中的熱數(shù)據(jù),提供一致的性能改進(jìn)。模式自由(schema-free),意味著對(duì)于存儲(chǔ)在mongodb數(shù)據(jù)庫(kù)中的文件,我們不需要知道它的任何結(jié)構(gòu)定義。如果需要的話(huà),你完全可以把不同結(jié)構(gòu)的文件存儲(chǔ)在同一個(gè)數(shù)據(jù)庫(kù)里。存儲(chǔ)在集合中的文檔,被存儲(chǔ)為鍵-值對(duì)的形式。鍵用于唯一標(biāo)識(shí)一個(gè)文檔,為字符串類(lèi)型,而值則可以是各種復(fù)雜的文件類(lèi)型。這種存儲(chǔ)形式稱(chēng)為BSON(BinarySerializedDocumentFormat)MongoDB已經(jīng)在多個(gè)站點(diǎn)部署,其主要場(chǎng)景如下:網(wǎng)站實(shí)時(shí)數(shù)據(jù)處理。它非常適合實(shí)時(shí)的插入、更新與查詢(xún),并具備網(wǎng)站實(shí)時(shí)數(shù)據(jù)存儲(chǔ)所需的復(fù)制及高度伸縮性。緩存。由于性能很高,它適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由它搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過(guò)載。高伸縮性的場(chǎng)景。非常適合由數(shù)十或數(shù)百臺(tái)服務(wù)器組成的數(shù)據(jù)庫(kù),它的路線圖中已經(jīng)包含對(duì)MapReduce引擎的內(nèi)置支持。不適用的場(chǎng)景如下:要求高度事務(wù)性的系統(tǒng)。傳統(tǒng)的商業(yè)智能應(yīng)用。復(fù)雜的跨文檔(表)級(jí)聯(lián)查詢(xún)。Mongodb數(shù)據(jù)邏輯結(jié)構(gòu)MongoDB數(shù)據(jù)邏輯結(jié)構(gòu)分為數(shù)據(jù)庫(kù)(database)、集合(collection)、文檔(document)三層mongod實(shí)例中允許創(chuàng)建多個(gè)數(shù)據(jù)庫(kù)。一個(gè)數(shù)據(jù)庫(kù)中允許創(chuàng)建多個(gè)集合(集合相當(dāng)于關(guān)系型數(shù)據(jù)庫(kù)的表)一個(gè)集合則是由若干個(gè)文檔構(gòu)成(文檔相當(dāng)于關(guān)系型數(shù)據(jù)庫(kù)的行,是MongoDB中數(shù)據(jù)的基本單元)mongodb軟件適配$$aptinstall$service$servicemongodMongodb常見(jiàn)操作$$創(chuàng)建數(shù)據(jù)庫(kù)及useuseTestswitchedtodbTest{"ok":1showshow 數(shù)據(jù)插入>db.student.insert({_id:1,>db.student.insert({_id:1,sname:'zhangsan',sage:WriteResult({"nInserted":1>db.student.save({_id:2,>db.student.save({_id:2,sname:'lisi',sage:WriteResult({"nMatched":1,"nUpserted":0,"nModified":1查看數(shù)據(jù){"_id":1,"sname":"zhangsan","sage":20{"_id":2,"sname":"lisi","sage":25{"_id":ObjectId("5afce712cdb7d29a97a9fc8e"),"sname":"lisi","sage":21{"_id":ObjectId("5afce712cdb7d29a97a9fc8f"),"sname":"wangwu","sage":22db.student.find({},{sname:1,db.student.find({},{sname:1,{"_id":1,"sname":"zhangsan","sage":20{"_id":2,"sname":"lisi","sage":25{"_id":ObjectId("5afce712cdb7d29a97a9fc8e"),"sname":"lisi","sage":21{"_id":ObjectId("5afce712cdb7d29a97a9fc8f"),"sname":"wangwu","sage":22and與條件查詢(xún)db.student.find({sname:db.student.find({sname:'zhangsan',sage:{"_id":1,"sname":"zhangsan","sage":20db.student.find({$or:[{sage:db.student.find({$or:[{sage:20},{sage:{"_id":1,"sname":"zhangsan","sage":20{{"_id":2,"sname":"lisi","sage":25修改數(shù)據(jù)db.student.update({sname:'lisi'},{$set:{sage:db.student.update({sname:'lisi'},{$set:{sage:30}},false,WriteResult({"nMatched":2,"nUpserted":0,"nModified":2db.student.remove({sname:db.student.remove({sname:WriteResult({"nRemoved":1刪除文檔WriteResult({"nRemoved":0{{"dropped":"Test","ok":1退出V4Caffe軟件適配手冊(cè)銀河麒麟服務(wù)器操作系統(tǒng)V4銀河麒麟服務(wù)器操作系統(tǒng)V4caffe軟件適配手冊(cè)目錄概 系統(tǒng)概 環(huán)境概 CAFFE軟件簡(jiǎn) CAFFE特 CAFFE架 CAFFE運(yùn)行依賴(lài)(硬件 CAFFE運(yùn)行依賴(lài)(軟件 CAFFE軟件適 安裝編譯所需依 下載CAFFE源 修改 編譯及安 CAFFE軟件功能驗(yàn) 驗(yàn)證CAFFE安 測(cè)試MNIST數(shù)據(jù) 銀河麒麟服務(wù)器操作系統(tǒng)V4銀河麒麟服務(wù)器操作系統(tǒng)V4caffe軟件適配手冊(cè)概述系統(tǒng)概述銀河麒麟服務(wù)器操作系統(tǒng)主要面向軍隊(duì)綜合電子信息系統(tǒng)、金融系統(tǒng)以及電力系統(tǒng)等國(guó)家關(guān)鍵行業(yè)的服務(wù)器應(yīng)用領(lǐng)域,突出高安全性、高可用性、高效數(shù)據(jù)處理、虛擬化等關(guān)鍵技術(shù)優(yōu)勢(shì),針對(duì)關(guān)鍵業(yè)務(wù)構(gòu)建的豐富高效、安全可靠的功能特性,兼容適配長(zhǎng)城、聯(lián)想、浪潮、華為、曙光等國(guó)內(nèi)主流廠商的服務(wù)器整機(jī)產(chǎn)品,以及達(dá)夢(mèng)、金倉(cāng)、神通等主要國(guó)產(chǎn)數(shù)據(jù)庫(kù)和中創(chuàng)、金蝶、東方通等國(guó)產(chǎn)中間件,滿(mǎn)足虛擬化、云計(jì)算和大數(shù)據(jù)時(shí)代,服務(wù)器業(yè)務(wù)對(duì)操作系統(tǒng)在性能、安全性及可擴(kuò)展性等方面的需求,是一款具有高安全、高可用、高可靠、高性能的自主可控服務(wù)器操作系統(tǒng)。環(huán)境概述服務(wù)器型號(hào)長(zhǎng)城信安擎天DF720服務(wù)器CPU類(lèi)型飛騰2000+處理器操作系統(tǒng)版本Kylin-4.0.2-server-sp2-2000-內(nèi)核版本caffe版本Caffe軟件簡(jiǎn)介Caffe是一個(gè)清晰而高效的深度學(xué)習(xí)框架,是純粹的C++/CUDA架構(gòu),支持命令行、pythonmatlab接口;可以在CPUGPU之間無(wú)縫切換,其作者是賈揚(yáng)清,目前caffe2已經(jīng)發(fā)布。Caffe的全稱(chēng)是ConvolutionalArchitectureforFastFeatureEmbedding(譯為:快速特征嵌入的卷積體系結(jié)構(gòu)),核心語(yǔ)言是C++。Caffe的基本工作流程是設(shè)計(jì)建立在神經(jīng)網(wǎng)絡(luò)的一個(gè)簡(jiǎn)單假設(shè),所有的計(jì)算都是層的形式表示的,網(wǎng)絡(luò)層所做的事情就是輸入數(shù)據(jù),然后輸出計(jì)算結(jié)果。比如卷積就是輸入一幅圖像,然后和這一層的參數(shù)(filter)做卷積,最終輸出卷積結(jié)果。每層需要兩種函數(shù)計(jì)算,一種是forward,從輸入計(jì)算到輸出;另一種是backward,從上層給的gradient來(lái)計(jì)算相對(duì)于輸入層的gradient。這兩個(gè)函數(shù)實(shí)現(xiàn)之后,我們就可以把許多層連接成一個(gè)網(wǎng)絡(luò),這個(gè)網(wǎng)絡(luò)輸入數(shù)據(jù)(圖像,語(yǔ)音或其他原始數(shù)據(jù)),然后計(jì)算需要的輸出(比如識(shí)別的標(biāo)簽)。在訓(xùn)練的時(shí)候,可以根據(jù)已有的標(biāo)簽計(jì)算loss和gradient,然后用gradient來(lái)更新網(wǎng)絡(luò)中的參數(shù)。Caffe特點(diǎn)模塊化Caffe設(shè)計(jì)之初就做到了盡可能的模塊化,允許對(duì)數(shù)據(jù)格式、網(wǎng)絡(luò)層和損失函數(shù)進(jìn)行擴(kuò)展。表示和實(shí)現(xiàn)分離Caffe的模型定義是用ProtocolBuffer(協(xié)議緩沖區(qū))語(yǔ)言寫(xiě)進(jìn)配置文件的,以任意有向無(wú)環(huán)圖的形式,Caffe支持網(wǎng)絡(luò)架構(gòu)。Caffe會(huì)根據(jù)網(wǎng)絡(luò)需要正確占用內(nèi)存,通過(guò)一個(gè)函數(shù)調(diào)用實(shí)現(xiàn)CPU和GPU之間的切換。測(cè)試覆蓋每一個(gè)單一的模塊都對(duì)應(yīng)一個(gè)測(cè)試。pythonmatlab接口同時(shí)提供兩種接口。預(yù)訓(xùn)練參考模型針對(duì)視覺(jué)項(xiàng)目,Caffe提供了一些參考模型,這些模型僅應(yīng)用在學(xué)術(shù)和非商業(yè)領(lǐng)域。Caffe架構(gòu)數(shù)據(jù)存儲(chǔ)Caffe通過(guò)“Blobs”即以四維數(shù)組的方式存儲(chǔ)和傳遞數(shù)據(jù)。Blobs提供了一個(gè)統(tǒng)一的內(nèi)存接口,用于批量圖像(或其他數(shù)據(jù))的操作和參數(shù)更新,Models是以GoogleProtocolBuffers的方式存儲(chǔ)在磁盤(pán)上的。大型數(shù)據(jù)存儲(chǔ)在LevelDB數(shù)據(jù)庫(kù)中。Caffe層(Layer)是一個(gè)神經(jīng)網(wǎng)絡(luò)層的本質(zhì),它采用一個(gè)或多個(gè)Blobs作為輸入,并產(chǎn)生一個(gè)或者多個(gè)Blobs作為輸出。層有兩個(gè)關(guān)鍵的職責(zé),前向傳播,需要輸入并產(chǎn)生輸出;反向傳播,取梯度作為輸出通過(guò)參數(shù)和輸入計(jì)算梯度。網(wǎng)絡(luò)和運(yùn)行方式Caffe保留所有的有向無(wú)環(huán)圖,保證前向傳播和反向傳播正確進(jìn)行。Caffe模型是終端到終端的機(jī)器學(xué)習(xí)系統(tǒng)。一個(gè)典型的網(wǎng)絡(luò)開(kāi)始于數(shù)據(jù)層,結(jié)束于loss層。在CPU和GPU上,層會(huì)產(chǎn)生相同的結(jié)果。Caffe運(yùn)行依賴(lài)(硬件CPU的選擇Caffe支持CPUGPU訓(xùn)練。如果采用CPU訓(xùn)練,CPU支持的線程越多越好,因?yàn)镃affe本身顯性的使用兩個(gè)線程。一個(gè)線程用來(lái)讀取數(shù)據(jù),另一個(gè)線程用來(lái)執(zhí)行前向傳播和反向傳播;如果采用GPU訓(xùn)練,則大量運(yùn)算由GPU完成,CPUCaffeCPU也無(wú)法大幅度加速訓(xùn)練,訓(xùn)練時(shí)效取決于GPU。GPU的選擇Caffe只支持cuda(ComputerUnifiedDeviceArchitecture)cudaNVIDIACaffe作為深度學(xué)習(xí)框架一定要選用NVIDIA顯卡。如果電腦使用兩個(gè)不同顯卡的版本,則訓(xùn)練速度是兩張低速卡一起訓(xùn)練的速度。內(nèi)存的選擇選擇支持雙通道的內(nèi)存以及高頻率的內(nèi)存有利于訓(xùn)練,GPU訓(xùn)練下,內(nèi)存頻率不是重要影響因素。硬盤(pán)選擇Caffe采用單獨(dú)線程異步方式從硬盤(pán)中順序讀取數(shù)據(jù),需要根據(jù)實(shí)際情況看是否考慮固態(tài)硬盤(pán)(SSD),硬盤(pán)容量和數(shù)據(jù)集密切相關(guān)。Caffe運(yùn)行依賴(lài)(軟件Boost庫(kù):一個(gè)可移植、提供源代碼的C++庫(kù),作為標(biāo)準(zhǔn)庫(kù)的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開(kāi)發(fā)引擎之一。Caffe采用C++作為主開(kāi)發(fā)語(yǔ)言,其中大量的代碼依賴(lài)于Boost庫(kù)。GFlags庫(kù):Google的一個(gè)開(kāi)源的處理命令行參數(shù)的庫(kù),使用C++開(kāi)發(fā)。庫(kù)采用GFlags庫(kù)開(kāi)發(fā)Caffe的命令行。GLog庫(kù):一個(gè)應(yīng)用程序的日志庫(kù),提供基于C++風(fēng)格的流日志運(yùn)行時(shí)的日志依賴(lài)于GLog庫(kù)。LevelDB庫(kù):Google實(shí)現(xiàn)的一個(gè)非常高效的Key-Value數(shù)據(jù)庫(kù)。單進(jìn)程服務(wù),性能非常高。是Caffe支持的兩種數(shù)據(jù)庫(kù)之一。LMDB庫(kù):是一個(gè)超級(jí)小、超級(jí)快的Key-Value數(shù)據(jù)存儲(chǔ)服務(wù),使用內(nèi)存映射文件,因此在讀取數(shù)據(jù)的性能跟內(nèi)存數(shù)據(jù)庫(kù)一樣,其大小受限于虛擬地址空間的大小。是Caffe支持的兩種數(shù)據(jù)庫(kù)之一。ProtoBuf庫(kù):GoogleProtocolBuffer,一種輕便高效的結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)格式,可用于結(jié)構(gòu)化數(shù)據(jù)的串行化(序列化),適合做數(shù)據(jù)存儲(chǔ)或RPC數(shù)據(jù)交換格式??捎糜谕ㄐ艆f(xié)議、數(shù)據(jù)存儲(chǔ)等領(lǐng)域的語(yǔ)言無(wú)關(guān)、平臺(tái)無(wú)關(guān)、可擴(kuò)展的序列化結(jié)構(gòu)數(shù)據(jù)格式。Caffe使用起來(lái)非常方便很大程度上是因?yàn)椴捎?proto文件作為用戶(hù)的輸入接口。用戶(hù)通過(guò)編寫(xiě).proto文件定義網(wǎng)絡(luò)模型和Solver。按序排列時(shí)二進(jìn)制字符串尺寸最小,高效序列化,易讀的文本格式與二進(jìn)制版本兼容,可用多種語(yǔ)言實(shí)現(xiàn)高效的接口,尤其是C++和Python。這些優(yōu)勢(shì)造就了Caffe模型的靈活性與擴(kuò)展性。HDF5庫(kù):HierarchicalDataFile,一種高效存儲(chǔ)和分發(fā)科學(xué)數(shù)據(jù)的新型數(shù)據(jù)格式,可存儲(chǔ)不同類(lèi)型的圖像和數(shù)碼數(shù)據(jù)的文件格式,可在不同的機(jī)器上進(jìn)行傳輸,同時(shí)還有統(tǒng)一處理這種文件格式的函數(shù)庫(kù)。Caffe支持HDF5格式。snappy庫(kù)C++庫(kù),用來(lái)壓縮和解壓縮的開(kāi)發(fā)包。旨在提供高速壓縮速度和合理的壓縮率。Caffe在數(shù)據(jù)處理時(shí)依賴(lài)于snappy庫(kù)。Caffe軟件適配安裝編譯所需依賴(lài)$$apt-getinstalllibopencv-devpython-$apt-getinstalllibopenblas-$apt-getinstalllibboost-all-$apt-getinstallpython-pippython-devbuild-$pipinstall--upgrade$cp/usr/local/bin/pip$pipinstall libhdf5-serial-devprotobuf-compiler$apt-getinstallpython-$apt-getinstalllibgflags-devlibgoogle-glog-devliblmdb-$apt-getinstallCaffe源碼$$wget$tarxvf$cdcaffe-$$cpMakefile.config.example編譯及安裝$$make$make$make$make$$exportPYTHONPATH=/opt/caffe-Caffe軟件功能驗(yàn)證Caffe安裝$apt-getinstall$apt-getinstallpython-驗(yàn)證安裝:mnist數(shù)據(jù)集$$$$$$vimCPU模式。$$對(duì)訓(xùn)練好的模型進(jìn)行測(cè)試$$./build/tools/caffe.bintest-modelexamples/mnist/lenet_train_totxt-examples/mnist/lenet_iter_10000.caffemodel-iterations測(cè)試結(jié)果如下:99%18s左右。V4CouchDB軟件適配手冊(cè)銀河麒麟服務(wù)器操作系統(tǒng)V4銀河麒麟服務(wù)器操作系統(tǒng)V4CauchDB軟件適配手冊(cè)目錄目 概 系統(tǒng)概 環(huán)境概 COUCHDB軟件簡(jiǎn) 工作原 文檔介 ACID介 壓 視 視圖模 COUCHDB軟件適 安裝COUCHDB軟 從安裝源安 從源碼安 驗(yàn)證安 獲取所有數(shù)據(jù) 創(chuàng)建數(shù)據(jù) 刪除數(shù)據(jù) 創(chuàng)建數(shù)據(jù)庫(kù)和文 銀河麒麟服務(wù)器操作系統(tǒng)V4銀河麒麟服務(wù)器操作系統(tǒng)V4CauchDB軟件適配手冊(cè)概述系統(tǒng)概述銀河麒麟服務(wù)器操作系統(tǒng)主要面向軍隊(duì)綜合電子信息系統(tǒng)、金融系統(tǒng)以及電力系統(tǒng)等國(guó)家關(guān)鍵行業(yè)的服務(wù)器應(yīng)用領(lǐng)域,突出高安全性、高可用性、高效數(shù)據(jù)處理、虛擬化等關(guān)鍵技術(shù)優(yōu)勢(shì),針對(duì)關(guān)鍵業(yè)務(wù)構(gòu)建的豐富高效、安全可靠的功能特性,兼容適配長(zhǎng)城、聯(lián)想、浪潮、華為、曙光等國(guó)內(nèi)主流廠商的服務(wù)器整機(jī)產(chǎn)品,以及達(dá)夢(mèng)、金倉(cāng)、神通、南大通用等主要國(guó)產(chǎn)數(shù)據(jù)庫(kù)和中創(chuàng)、金蝶、東方通等國(guó)產(chǎn)中間件,滿(mǎn)足虛擬化、云計(jì)算和大數(shù)據(jù)時(shí)代,服務(wù)器業(yè)務(wù)對(duì)操作系統(tǒng)在性能、安全性及可擴(kuò)展性等方面的需求,是一款具有高安全、高可用、高可靠、高性能的自主可控服務(wù)器操作系統(tǒng)。環(huán)境概述服務(wù)器型號(hào)長(zhǎng)城信安擎天DF720服務(wù)器CPU類(lèi)型飛騰2000+處理器操作系統(tǒng)版本Kylin-4.0.2-server-sp2-2000-內(nèi)核版本CouchDB版本CouchDB軟件簡(jiǎn)介CouchDB是用Erlang開(kāi)發(fā)的面向文檔的數(shù)據(jù)庫(kù)系統(tǒng)。CouchDB不是一個(gè)傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù),而是面向文檔的數(shù)據(jù)庫(kù),其數(shù)據(jù)存儲(chǔ)方式有點(diǎn)類(lèi)似lucene的index文件格式,CouchDB最大的意義在于它是一個(gè)面向web應(yīng)用的新一代存儲(chǔ)系統(tǒng),事實(shí)上,CouchDB的口號(hào)就是:下一代的Web應(yīng)用存儲(chǔ)系統(tǒng)。CouchDB是分布式的數(shù)據(jù)庫(kù),他可以把存儲(chǔ)系統(tǒng)分布到n臺(tái)物理的節(jié)點(diǎn)上面,并且很好的協(xié)調(diào)和同步節(jié)點(diǎn)之間的數(shù)據(jù)讀寫(xiě)一致性。這當(dāng)然也得靠Erlang無(wú)與倫比的并發(fā)特性才能做到。對(duì)于基于web的大規(guī)模應(yīng)用文檔應(yīng)用,分布式可以讓它不必像傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)那樣分庫(kù)拆表,在應(yīng)用代碼層進(jìn)行大量的改動(dòng)。CouchDB是面向文檔的數(shù)據(jù)庫(kù),存儲(chǔ)半結(jié)構(gòu)化的數(shù)據(jù),比較類(lèi)似lucene的index結(jié)構(gòu),特別適合存儲(chǔ)文檔,因此很適合CMS,電話(huà)本,地址本等應(yīng)用,在這些應(yīng)用場(chǎng)合,文檔數(shù)據(jù)庫(kù)要比關(guān)系數(shù)據(jù)庫(kù)更加方便,性能更好。CouchDBRESTAPI,可以讓用戶(hù)使用JavaScript來(lái)操作CouchDB數(shù)據(jù)庫(kù),也可以用JavaScript編寫(xiě)查詢(xún)語(yǔ)句,我們可以想像一下,用AJAX技術(shù)結(jié)合CouchDB開(kāi)發(fā)出來(lái)的CMS系統(tǒng)會(huì)是多么的簡(jiǎn)單和方便。工作原理CouchDB構(gòu)建在強(qiáng)大的B-樹(shù)儲(chǔ)存引擎之上。這種引擎負(fù)責(zé)對(duì)CouchDB中的數(shù)據(jù)進(jìn)行排序,并提供一種能夠在對(duì)數(shù)均攤時(shí)間內(nèi)執(zhí)行搜索、插入和刪除操作的機(jī)制。CouchDB將這個(gè)引擎用于所有內(nèi)部數(shù)據(jù)、文檔和視圖。因?yàn)镃ouchDB數(shù)據(jù)庫(kù)的結(jié)構(gòu)獨(dú)立于模式,所以它依賴(lài)于使用視圖創(chuàng)建文檔之間的任意關(guān)系,以及提供聚合和報(bào)告特性。使用Map/Reduce計(jì)算這些視圖的Map/Reduce是一種使用分布式計(jì)算來(lái)處理和生成大型數(shù)據(jù)集的模型。Map/Reduce模型由Google引入,可分為Map和Reduce兩個(gè)步驟。在Map步驟中,由主節(jié)點(diǎn)接收文檔并將問(wèn)題劃分為多個(gè)子問(wèn)題。然后將這些子問(wèn)題發(fā)布給工作節(jié)點(diǎn),由它處理后再將結(jié)果返回給主節(jié)點(diǎn)。在Reduce步驟,主節(jié)點(diǎn)接收來(lái)自工作節(jié)點(diǎn)的結(jié)果并合并它們,以獲得能夠解決最初問(wèn)題的總體結(jié)果和答案。CouchDB中的Map/Reduce特性生成鍵/值對(duì),CouchDB將它們插入到B-樹(shù)引擎中并根據(jù)它們的鍵進(jìn)行排序。這就能通過(guò)鍵進(jìn)行高效查找,并且提高B-樹(shù)中的操作的性能。此外,這還意味著可以在多個(gè)節(jié)點(diǎn)上對(duì)數(shù)據(jù)進(jìn)行分區(qū),而不需要單獨(dú)查詢(xún)每個(gè)節(jié)點(diǎn)。傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)有時(shí)使用鎖來(lái)管理并發(fā)性,從而防止其他客戶(hù)機(jī)訪問(wèn)某個(gè)客戶(hù)機(jī)正在更新的數(shù)據(jù)。這就防止多個(gè)客戶(hù)機(jī)同時(shí)更改相同的數(shù)據(jù),但對(duì)于多個(gè)客戶(hù)機(jī)同時(shí)使用一個(gè)系統(tǒng)的情況,數(shù)據(jù)庫(kù)在確定哪個(gè)客戶(hù)機(jī)應(yīng)該接收鎖并維護(hù)鎖隊(duì)列的次序時(shí)會(huì)遇到困難,這很常見(jiàn)。在CouchDB中沒(méi)有鎖機(jī)制,它使用的是多版本并發(fā)性控制(Multiversionconcurrencycontrol,MVCC)—它向每個(gè)客戶(hù)機(jī)提供數(shù)據(jù)庫(kù)的最新版本的快照。這意味著在提交事務(wù)之前,其他用戶(hù)不能看到更改。許多現(xiàn)代數(shù)據(jù)庫(kù)開(kāi)始從鎖機(jī)制前移到MVCCOracl(V7之后)和Microsoft?SQLServer2005及更新版本。文檔介紹Couchdb是一個(gè)用文檔存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫(kù)服務(wù)器。每個(gè)文檔在數(shù)據(jù)庫(kù)中都是唯一命名的,CouchDB提供了一個(gè)RESTfulHTTPAPI,用于讀取和更新(添加、編輯、刪除)數(shù)據(jù)庫(kù)文檔。CouchDB中的主要數(shù)據(jù)單元,由任意數(shù)量的字段和附件組成。文檔還包括由數(shù)據(jù)庫(kù)系統(tǒng)維護(hù)的元數(shù)據(jù)。文檔字段具有唯一的名稱(chēng),并且包含各種類(lèi)型的值(文本、數(shù)字、布爾值、列表等),并且沒(méi)有對(duì)文本大小或元素計(jì)數(shù)的設(shè)置限制。CouchDB文檔更新模型是無(wú)鎖的、樂(lè)觀的。文檔編輯是由客戶(hù)端應(yīng)用程序加載文檔、應(yīng)用更改并將其保存回?cái)?shù)據(jù)庫(kù)來(lái)完成的。如果編輯同一文檔的另一個(gè)客戶(hù)機(jī)先保存其更改,則客戶(hù)機(jī)在保存時(shí)會(huì)收到一個(gè)編輯沖突錯(cuò)誤。若要解決更新沖突,可以打開(kāi)最新的文檔版本,重新應(yīng)用編輯,然后重試更新。單個(gè)文檔更新(添加、編輯、刪除)要么全部成功,要么全部失敗。數(shù)據(jù)庫(kù)從不包含部分保存或編輯的文檔。ACID介紹couchdb文件布局和提交系統(tǒng)具有所有原子一致的隔離持久性(acid)屬性。在磁盤(pán)上,CouchDB從不覆蓋提交的數(shù)據(jù)或相關(guān)結(jié)構(gòu),確保數(shù)據(jù)庫(kù)文件始終處于一致?tīng)顟B(tài)。這是一種“僅崩潰”的設(shè)計(jì),在這種設(shè)計(jì)中,CouchDB服務(wù)器不會(huì)經(jīng)歷關(guān)閉過(guò)程,它只能被終止。文檔更新(添加、編輯、刪除)是序列化的,但同時(shí)寫(xiě)入的二進(jìn)制blob除外。數(shù)據(jù)庫(kù)讀卡器從不被鎖定,也不必等待編寫(xiě)器或其他讀卡器。任何數(shù)量的客戶(hù)機(jī)都可以在不被鎖定或不被并發(fā)更新中斷的情況下讀取文檔,即使是在同一文檔上。CouchDB讀取操作使用多版本并發(fā)控制(MVCC)模型,其中每個(gè)客戶(hù)機(jī)從讀取操作的開(kāi)始到結(jié)束都會(huì)看到數(shù)據(jù)庫(kù)的一致快照。這意味著CouchDB可以保證每個(gè)文檔的事務(wù)語(yǔ)義。文檔在B樹(shù)中按其名稱(chēng)(docid)和序列ID進(jìn)行索引。對(duì)數(shù)據(jù)庫(kù)實(shí)例的每次更新都會(huì)生成一個(gè)新的序列號(hào)。序列ID稍后用于增量查找數(shù)據(jù)庫(kù)中的更改。保B樹(shù)索引會(huì)同時(shí)更新。索引更新總是發(fā)生在文件的末尾(僅追加更新)。文檔的優(yōu)點(diǎn)是,數(shù)據(jù)已經(jīng)方便地打包存儲(chǔ),而不是在大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)中跨多個(gè)表和行進(jìn)行拆分。當(dāng)文檔被提交到磁盤(pán)時(shí),文檔字段和元數(shù)據(jù)被打包到緩沖區(qū)中,依次排列一個(gè)文檔和另一個(gè)文檔(稍后有助于有效地構(gòu)建視圖)。CouchDB文檔被更新時(shí),所有數(shù)據(jù)和相關(guān)索引都被刷新到磁盤(pán)上,事務(wù)提交總是使數(shù)據(jù)庫(kù)處于完全一致的狀態(tài)。提交分兩步進(jìn)行:所有文檔數(shù)據(jù)和相關(guān)的索引更新都同步刷新到磁盤(pán)。4K,然后同步刷新到磁盤(pán)。如果在步驟1中發(fā)生操作系統(tǒng)崩潰或電源故障,重新啟動(dòng)時(shí)只會(huì)忘記部分刷新的更新。如果在步驟2(提交頭)期間發(fā)生這種崩潰,那么將保留以前相同頭的一個(gè)保留副本,以確保以前提交的所有數(shù)據(jù)的一致性。除了收割臺(tái)區(qū)域,在發(fā)生故障或電源故障后,不需要進(jìn)行一致性檢查或修復(fù)。壓縮浪費(fèi)的空間通過(guò)偶爾的壓縮來(lái)恢復(fù)?;蛘弋?dāng)數(shù)據(jù)庫(kù)文件超過(guò)了一定的浪費(fèi)空間時(shí),壓縮過(guò)程會(huì)將所有活動(dòng)數(shù)據(jù)克隆到一個(gè)新文件中,然后丟棄舊文件。數(shù)據(jù)庫(kù)始終保持完全聯(lián)機(jī),并且允許成功完成所有更新和讀取。只有在復(fù)制了所有數(shù)據(jù)并且所有用戶(hù)都轉(zhuǎn)換到新文件時(shí),才會(huì)刪除舊的數(shù)據(jù)庫(kù)文件。視圖ACID只處理存儲(chǔ)和更新,但我們還需要能夠以有趣和有用的方式顯示數(shù)據(jù)。與必須小心地將數(shù)據(jù)分解為表的SQL數(shù)據(jù)庫(kù)不同,CouchDB中的數(shù)據(jù)存儲(chǔ)在半結(jié)構(gòu)化文檔中。CouchDB文檔是靈活的,并且每個(gè)文檔都有自己的隱式結(jié)構(gòu),這可以緩解雙向復(fù)制表模式及其所包含數(shù)據(jù)的問(wèn)題。但是,除了充當(dāng)一個(gè)奇特的文件服務(wù)器之外,一個(gè)用于數(shù)據(jù)存儲(chǔ)和共享的簡(jiǎn)單文檔模型太簡(jiǎn)單,無(wú)法在其上構(gòu)建真正的應(yīng)用程序——它只是做不到我們想要和期望的足夠多的事情。我們希望以多種不同的方式對(duì)數(shù)據(jù)進(jìn)行切片和切塊。需要的是一種對(duì)尚未分解成表的數(shù)據(jù)進(jìn)行篩選、組織和報(bào)告的方法。視圖模型為了解決將結(jié)構(gòu)添加回非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)的問(wèn)題,CouchDB集成了一個(gè)視圖模型。視圖是聚合和報(bào)告數(shù)據(jù)庫(kù)中文檔的方法,可根據(jù)需要構(gòu)建,以聚合,加入和報(bào)告數(shù)據(jù)庫(kù)文檔。由于視圖是動(dòng)態(tài)構(gòu)建的,并且不會(huì)影響基礎(chǔ)文檔,因此您可以根據(jù)需要使用相同數(shù)據(jù)的多個(gè)不同視圖表示。視圖定義是嚴(yán)格虛擬的,只顯示當(dāng)前數(shù)據(jù)庫(kù)實(shí)例中的文檔,使它們與顯示的數(shù)據(jù)分開(kāi)并與復(fù)制兼容。CouchDB視圖在特殊設(shè)計(jì)文檔中定義,可以跨數(shù)據(jù)庫(kù)實(shí)例(如常規(guī)文檔)進(jìn)行復(fù)制,因此不僅可以在CouchDB中復(fù)制數(shù)據(jù),而且整個(gè)應(yīng)用程序設(shè)計(jì)也可以復(fù)制。視圖索引視圖是數(shù)據(jù)庫(kù)的實(shí)際文檔內(nèi)容的動(dòng)態(tài)表示,而CouchDB可以輕松創(chuàng)建有用的數(shù)據(jù)視圖。但是生成具有數(shù)十萬(wàn)或數(shù)百萬(wàn)個(gè)文檔的數(shù)據(jù)庫(kù)視圖是耗費(fèi)時(shí)間和資源的,并不是系統(tǒng)每次都應(yīng)該從頭開(kāi)始做的事情。為了保持視圖快速查詢(xún),視圖引擎維護(hù)其視圖的索引,并逐步更新它們以反映數(shù)據(jù)庫(kù)中的更改。CouchDB的核心設(shè)計(jì)主要針對(duì)高效,漸進(jìn)式創(chuàng)建視圖及其索引的需求進(jìn)行了優(yōu)化。視圖及其功能在特殊的“設(shè)計(jì)”文檔中定義,設(shè)計(jì)文檔可以包含任意數(shù)量的唯一命名視圖函數(shù)。當(dāng)用戶(hù)打開(kāi)視圖并且其索引自動(dòng)更新時(shí),同一設(shè)計(jì)文檔中的所有視圖都將編入索引為單個(gè)組。視圖構(gòu)建器使用數(shù)據(jù)庫(kù)序列ID來(lái)確定視圖組是否與數(shù)據(jù)庫(kù)完全一致。如果不是,則視圖引擎檢查自上次刷新以來(lái)已更改的所有數(shù)據(jù)庫(kù)文檔(按打包順序)。文檔按照它們?cè)诖疟P(pán)文件中出現(xiàn)的順序讀取,從而降低了磁頭搜索的頻率和成本。可以同時(shí)讀取和查詢(xún)視圖,同時(shí)還可以刷新視圖。如果客戶(hù)端正在慢慢地流出大視圖的內(nèi)容,則可以在不阻塞第一個(gè)客戶(hù)端的情況下為另一個(gè)客戶(hù)端同時(shí)打開(kāi)和刷新相同的視圖。對(duì)于任何數(shù)量的同時(shí)客戶(hù)端讀者來(lái)說(shuō)都是如此,他們可以讀取和查詢(xún)視圖,同時(shí)為其他客戶(hù)端刷新索引而不會(huì)給讀者帶來(lái)問(wèn)題。由于視圖引擎通過(guò)“map”和“reduce”函數(shù)處理文檔,因此它們之前的行值將從視圖索引中刪除(如果存在)。如果文檔由視圖函數(shù)選擇,則函數(shù)結(jié)果將作為新行插入視圖中。當(dāng)視圖索引更改寫(xiě)入磁盤(pán)時(shí),更新始終附加在文件末尾,用于減少磁盤(pán)提交期間的磁頭搜索時(shí)間,并確保崩潰和電源故障不會(huì)導(dǎo)致索引損壞。如果在更新視圖索引時(shí)發(fā)生崩潰,則不完整的索引更新將丟失并從其先前提交的狀態(tài)逐步重建。安全和驗(yàn)證為了保護(hù)誰(shuí)可以閱讀和更新文檔,CouchDB有一個(gè)簡(jiǎn)單的讀者訪問(wèn)和更新驗(yàn)證模型,可以擴(kuò)展以實(shí)現(xiàn)自定義安全模型。CouchDB數(shù)據(jù)庫(kù)實(shí)例具有管理員帳戶(hù)。管理員帳戶(hù)可以創(chuàng)建其他管理員帳戶(hù)并更新設(shè)計(jì)文檔。設(shè)計(jì)文檔是包含視圖定義和其他特殊公式的特殊文檔,以及常規(guī)字段和blob。當(dāng)文檔寫(xiě)入磁盤(pán)時(shí),可以通過(guò)JavaScript函數(shù)動(dòng)態(tài)驗(yàn)證它們的安全性和數(shù)據(jù)驗(yàn)證。當(dāng)文檔通過(guò)所有公式驗(yàn)證標(biāo)準(zhǔn)時(shí),允許更新繼續(xù)。如果驗(yàn)證失敗,則更新將中止,并且用戶(hù)客戶(hù)端將收到錯(cuò)誤響應(yīng)。用戶(hù)憑證和更新文檔都作為驗(yàn)證公式的輸入,并可用于通過(guò)驗(yàn)證用戶(hù)更新文檔的權(quán)限來(lái)實(shí)現(xiàn)自定義安全模型?;镜摹皟H作者”更新文檔模型實(shí)現(xiàn)起來(lái)很簡(jiǎn)單,其中驗(yàn)證文檔更新以檢查用戶(hù)是否列在現(xiàn)有文檔的“作者”字段中。還可以使用更多動(dòng)態(tài)模型,例如檢查單獨(dú)的用戶(hù)帳戶(hù)配置文件以獲取權(quán)限設(shè)置。對(duì)實(shí)時(shí)使用和復(fù)制更新強(qiáng)制執(zhí)行更新驗(yàn)證,確保在共享的分布式系統(tǒng)中進(jìn)行安全性和數(shù)據(jù)驗(yàn)證。分布式更新和復(fù)制CouchDB是一個(gè)基于對(duì)等的分布式數(shù)據(jù)庫(kù)系統(tǒng)。它允許用戶(hù)和服務(wù)器在斷開(kāi)連接時(shí)訪問(wèn)和更新相同的共享數(shù)據(jù)。然后可以在以后雙向復(fù)制這些更改。CouchDB文檔存儲(chǔ),視圖和安全模型旨在協(xié)同工作,使真正的雙向復(fù)制高效可靠。文檔和設(shè)計(jì)都可以復(fù)制,允許將完整的數(shù)據(jù)庫(kù)應(yīng)用程序(包括應(yīng)用程序設(shè)計(jì),邏輯和數(shù)據(jù))復(fù)制到筆記本電腦以供脫機(jī)使用,或者復(fù)制到遠(yuǎn)程辦公室中的服務(wù)器,在這些服務(wù)器中,緩慢或不可靠的連接使共享數(shù)據(jù)變得困難。復(fù)制過(guò)程是增量的。在數(shù)據(jù)庫(kù)級(jí)別,復(fù)制僅檢查自上次復(fù)制以來(lái)更新的文檔。如果由于網(wǎng)絡(luò)問(wèn)題或崩潰而導(dǎo)致復(fù)制在任何步驟失敗,則下一次復(fù)制將在最后一個(gè)檢查點(diǎn)重新啟動(dòng)。可以創(chuàng)建和維護(hù)部分副本??梢酝ㄟ^(guò)JavaScript函數(shù)過(guò)濾復(fù)制,以便僅復(fù)制特定文檔或滿(mǎn)足特定條件的文檔。這可以允許用戶(hù)將大型共享數(shù)據(jù)庫(kù)應(yīng)用程序的子集脫機(jī)以供自己使用,同時(shí)保持與應(yīng)用程序和該數(shù)據(jù)子集的正常交互。沖突沖突檢測(cè)和管理是任何分布式編輯系統(tǒng)的關(guān)鍵問(wèn)題。CouchDB存儲(chǔ)系統(tǒng)將編輯沖突視為一種常見(jiàn)狀態(tài),而非特殊狀態(tài)。沖突處理模型簡(jiǎn)單且“非破壞性”,同時(shí)保留單個(gè)文檔語(yǔ)義并允許分散的沖突解決。CouchDB允許在數(shù)據(jù)庫(kù)中同時(shí)存在任意數(shù)量的沖突文檔,每個(gè)數(shù)據(jù)庫(kù)實(shí)例確定性地決定哪個(gè)文檔是“贏家”,哪些是沖突。只有獲勝文檔才能顯示在視圖中,而“丟失”沖突仍然可以訪問(wèn)并保留在數(shù)據(jù)庫(kù)中,直到數(shù)據(jù)庫(kù)壓縮期間被刪除或清除。由于沖突文檔仍然是常規(guī)文檔,因此它們像常規(guī)文檔一樣進(jìn)行復(fù)制,并遵循相同的安全性和驗(yàn)證規(guī)則。當(dāng)發(fā)生分布式編輯沖突時(shí),每個(gè)數(shù)據(jù)庫(kù)副本都會(huì)看到相同的獲勝版本,并且每個(gè)副本都有機(jī)會(huì)解決沖突。解決沖突可以通過(guò)自動(dòng)代理手動(dòng)完成,也可以根據(jù)數(shù)據(jù)的性質(zhì)和沖突完成。系統(tǒng)可以在保持單個(gè)文檔數(shù)據(jù)庫(kù)語(yǔ)義的同時(shí)實(shí)現(xiàn)分散式?jīng)_突解決。即使多個(gè)斷開(kāi)連接的用戶(hù)或代理嘗試解決相同的沖突,沖突管理仍會(huì)繼續(xù)有效。如果已解決的沖突導(dǎo)致更多沖突,則系統(tǒng)以相同的方式容納它們,在每臺(tái)機(jī)器上確定相同的獲勝者并維護(hù)單個(gè)文檔語(yǔ)義。CouchDB軟件適配CouchDB軟件$sudoapt-get$sudoapt-getinstall從安裝源安裝后,deb安裝后腳本會(huì)自動(dòng)對(duì)couchDB進(jìn)行配置,并設(shè)置為服務(wù)啟動(dòng),可直接進(jìn)入后續(xù)驗(yàn)證步驟.$sudoapt-getinstall$sudoapt-getinstallbuild-essentialpkg-configerlang\libicu-devlibmozjs185-devlibcurl4-openssl-dev$$$make執(zhí)行configure時(shí)可以使用--help參數(shù)查看幫助文檔,添加需要的參數(shù);如果執(zhí)行...Youcannow...Youcannowcopytherel/couchdbdirectoryanywhereonyoursystem.StartCouchDBwith./bin/couchdbfromwithinthatdirectory.安裝:adduser--system--shell/bin/bashadduser--system--shell/bin/bash--group--gecos"CouchDBAdministrator"測(cè)試用戶(hù)shell可用,并且擁有一個(gè)可寫(xiě)的主目錄:以couchdb用戶(hù)登錄;pwd查看該用戶(hù)的主目錄.$cp-R/path/to/couchdb/rel/couchdb$cp-R/path/to/couchdb/rel/couchdb$chown-Rcouchdb:couchdb$find/home/couchdb-typed-execchmod0770{}$chmod0644$sudo-i$sudo-i-ucouchdb第一次運(yùn)行可能會(huì)報(bào)錯(cuò):{database_does_not_exist,[{mem3_shards,load_shards_from_db,"_users"{database_does_not_exist,[{mem3_shards,load_shards_from_db,"_users"這是提示我們要完成數(shù)據(jù)庫(kù)的初始化工作,打開(kāi)瀏覽器,輸入地址:選擇初始化為單節(jié)點(diǎn)還是集群,完成初始化工作.驗(yàn)證安裝$$curl正確安裝時(shí),程序會(huì)返回類(lèi)似以下的信息:獲取所有數(shù)據(jù)庫(kù)$$curl-XGET:5984/_all_dbs創(chuàng)建數(shù)據(jù)庫(kù)$curl-XPUT$curl-XPUT$curl-XGET:5984/_all_dbs$curl-XPUT{"error":"file_exists","reason":"Thedatabasecouldnotbecreated,thefilealreadyexists."}刪除數(shù)據(jù)庫(kù)$curl-XPUT$curl-XPUT$curl-XDELETE$curl-XGET:5984/_all_dbsFauxtonCouchDB提供的一套內(nèi)置的Web管理界面,它實(shí)現(xiàn)了對(duì)CouchDB所有功能的完全訪問(wèn),使用Fauxton,我們可以創(chuàng)建和刪除數(shù)據(jù)庫(kù),查看和編輯文檔,撰寫(xiě)和運(yùn)行MapReduce視圖,以及復(fù)制數(shù)據(jù)庫(kù)等.在瀏覽器中輸入以下內(nèi)容訪問(wèn)Fauxton界面:創(chuàng)建數(shù)據(jù)庫(kù)和文檔Fauxton中創(chuàng)建數(shù)據(jù)庫(kù)很簡(jiǎn)單。在“概述”“創(chuàng)建數(shù)據(jù)庫(kù)”。當(dāng)要求輸入名稱(chēng)時(shí),輸入hello-world并單擊“創(chuàng)建”按鈕。創(chuàng)建數(shù)據(jù)庫(kù)后,F(xiàn)auxton將顯示其所有文檔的列表。這個(gè)列表剛開(kāi)始是空的,讓我們創(chuàng)建第一個(gè)文檔。單擊“所有文檔”旁邊的加號(hào),然后選擇“新建文檔”鏈接。CouchDB將為您生成一個(gè)UUID。"hello":"mynewFauxton將顯示新創(chuàng)建的文檔及其_id字段。要?jiǎng)?chuàng)建一個(gè)新字段,只需使用編輯器編寫(xiě)有效的"hello":"mynew單擊綠色的“創(chuàng)建文檔”按鈕以完成創(chuàng)建文檔。文檔的_rev會(huì)自動(dòng)重新生成。我們可以將_rev認(rèn)為是一個(gè)安全特性,只有和CouchDB文檔的最新_rev達(dá)成一致時(shí),才可以成功保存更改。傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)允許運(yùn)行任何數(shù)據(jù)結(jié)構(gòu)正確的查詢(xún)。而CouchDB使用預(yù)定mapreduce函數(shù),稱(chēng)為MapReduce。這些函數(shù)提供了很大的靈活性,因?yàn)樗鼈兛梢赃m應(yīng)文檔結(jié)構(gòu)的變化,并且可以獨(dú)立和并行地計(jì)算每個(gè)文檔的索引。在CouchDB術(shù)語(yǔ)中,一個(gè)map和一個(gè)reduce的組合稱(chēng)為一個(gè)視圖。對(duì)于經(jīng)驗(yàn)豐富的關(guān)系數(shù)據(jù)庫(kù)程序員,MapReduce需要一些適應(yīng)。reduce查詢(xún)不是聲明要包含在結(jié)果集中的表的行,而是基于對(duì)映射函數(shù)生成的索引的簡(jiǎn)單范圍請(qǐng)求,而取決于數(shù)據(jù)庫(kù)來(lái)確定運(yùn)行查詢(xún)的最有效方式。映射函數(shù)以每個(gè)文檔為參數(shù)調(diào)用一次。函數(shù)可以選擇全部跳過(guò)文檔,或者將一個(gè)或多個(gè)視圖行作為鍵/值對(duì)發(fā)出。映射函數(shù)不能依賴(lài)于文檔之外的任何信息。這種獨(dú)立性允許以增量和并行方式生成CouchDB視圖。CouchDB視圖存儲(chǔ)為按鍵排序的行。這使得從一系列鍵中檢索數(shù)據(jù)變得高效,即使在有數(shù)千或數(shù)百萬(wàn)行的情況下也是如此。在編寫(xiě)CouchDBmap函數(shù)時(shí),您的主要目標(biāo)是構(gòu)建一個(gè)索引,在附近的鍵下存儲(chǔ)相關(guān)數(shù)據(jù)。在運(yùn)行示例MapReduce視圖之前,我們需要先創(chuàng)建一些數(shù)據(jù)。我們將創(chuàng)建包含不同商店中各種超市商品價(jià)格的文檔。讓我們?yōu)樘O(píng)果、桔子和香蕉創(chuàng)建文檔。"_id":"00a271787f89c0ef2e10e88a0c0001f4","_rev":"1-2628a75ac8c3abfffc8f6e30c9949fd6","item":"apple","prices":"FreshMart":"PriceMax":(可以使用CouchDB自動(dòng)生成的_id和_rev"_id":"00a271787f89c0ef2e10e88a0c0001f4","_rev":"1-2628a75ac8c3abfffc8f6e30c9949fd6","item":"apple","prices":"FreshMart":"PriceMax":"ApplesExpress":"_id":"00a271787f89c0ef2e10e88a0c0003f0","_rev":"1-e9680c5d9a688b4ff8dd68549e8e072c","item":"orange","prices":"FreshMart":"PriceMax":"CitrusCircus":"_id":"00a271787f89c0ef2e10e88a0c00048b","_rev":"1-60e25d93dc12884676d037400a6fa189","item":"banana","prices":{"FreshMart":"PriceMax":"BananaMontana":想象一下,我們正在為一個(gè)大型的午餐會(huì)做準(zhǔn)備,但客戶(hù)對(duì)價(jià)格非常敏感。為了找到最低價(jià),我們將創(chuàng)建第一個(gè)視圖,顯示按價(jià)格排序的每個(gè)水果。單擊“所有文檔”HelloWorld概述,然后從“所有文檔”加號(hào)中單擊“新建視圖”創(chuàng)建新視圖。function(doc)varshop,price,if(doc.item&&doc.prices){for(shopindoc.prices)price=function(doc)varshop,price,if(doc.item&&doc.prices){for(shopindoc.prices)price=doc.prices[shop];value=[doc.item,shop];emit(price,value);這是一個(gè)javascript函數(shù),CouchDB在計(jì)算視圖時(shí)為每個(gè)文檔運(yùn)行。我們暫reduce函數(shù)留空。單擊“保存文檔,然后構(gòu)建索引”,將看到按價(jià)格排序的結(jié)果行。如果按類(lèi)型對(duì)項(xiàng)目進(jìn)行分組,則會(huì)得到所有香蕉的價(jià)格排列在一起的結(jié)果。CouchDB的關(guān)鍵字排序系統(tǒng)允許任何有效的JSON對(duì)象作為密鑰。在本例中,我們將emit一個(gè)[item,price]數(shù)組,以便couchdb按item類(lèi)型和價(jià)格分組。function(doc)varshop,price,if(doc.item&&doc.prices){for(shopindoc.prices)function(doc)varshop,price,if(doc.item&&doc.prices){for(shopindoc.prices)price=doc.prices[shop];key=[doc.item,price];emit(key,shop);首先檢查文檔是否具有對(duì)我們有用的字段。CouchDB可以從一些map函數(shù)故障中優(yōu)雅地恢復(fù),但是當(dāng)一個(gè)映射函數(shù)定期失?。ㄓ捎谌鄙俦匦枳侄位蚱渌鹙avascript異常)時(shí),CouchDB會(huì)關(guān)閉其索引以防止進(jìn)一步使用。因此,在使用任何字段之前,檢查它們是否存在是很重要的。在這種情況下,我們的map函數(shù)將跳過(guò)我們創(chuàng)建的第一個(gè)“helloworld”文檔,而不會(huì)emit任何行或遇到任何錯(cuò)誤,直接顯示此查詢(xún)的結(jié)果。一旦我們知道我們獲取到一個(gè)帶有項(xiàng)目類(lèi)型和一些價(jià)格的文檔,我們就迭代項(xiàng)目的價(jià)格并發(fā)出鍵/值對(duì)。鍵是項(xiàng)目和價(jià)格的數(shù)組,它構(gòu)成了CouchDB排序索引的基礎(chǔ)。在這種情況下,值是可以在其中找到所列價(jià)格項(xiàng)目的商店的名稱(chēng)。視圖行按其鍵排序——在本例中,首先按項(xiàng)目排序,然后按價(jià)格排序。這種復(fù)雜排序方法是使用CouchDB創(chuàng)建有用索引的核心。MapReduce對(duì)于已經(jīng)花了多年時(shí)間使用關(guān)系數(shù)據(jù)庫(kù)的開(kāi)發(fā)人員具有一定的挑戰(zhàn)性。需要記住的重要事項(xiàng)是,映射函數(shù)可以讓您有機(jī)會(huì)使用所選的任何鍵對(duì)數(shù)CouchDB的設(shè)計(jì)重點(diǎn)在于提供對(duì)鍵范圍內(nèi)數(shù)據(jù)的快速、高效訪問(wèn)。V4docker軟件適配手冊(cè)銀河麒麟服務(wù)器操作系統(tǒng)V4銀河麒麟服務(wù)器操作系統(tǒng)V4docker軟件適配手冊(cè)目錄概 系統(tǒng)概 環(huán)境概 DOCKER及相關(guān)軟件簡(jiǎn) 架構(gòu)及原 優(yōu) 使用方 安裝DOCKER及相關(guān)軟 設(shè)置開(kāi)機(jī)自啟動(dòng)并啟動(dòng)DOCKER- DOCKER容器使 DOCKER客戶(hù) 運(yùn)行一個(gè)應(yīng) 查看應(yīng)用容 網(wǎng)絡(luò)端口的快捷方 查看應(yīng)用程序日 查看應(yīng)用程序容器的進(jìn) 檢查應(yīng)用程 停止應(yīng)用容 重啟應(yīng)用容 移除應(yīng)用容 DOCKER容器連 網(wǎng)絡(luò)端口映 DOCKER容器連 容器命 DOCKER鏡像使 列出鏡像列 獲取一個(gè)新的鏡 查找鏡 創(chuàng)建鏡 更新鏡 銀河麒麟服務(wù)器操作系統(tǒng)V4銀河麒麟服務(wù)器操作系統(tǒng)V4docker軟件適配手冊(cè)概述系統(tǒng)概述銀河麒麟服務(wù)器操作系統(tǒng)主要面向軍隊(duì)綜合電子信息系統(tǒng)、金融系統(tǒng)以及電力系統(tǒng)等國(guó)家關(guān)鍵行業(yè)的服務(wù)器應(yīng)用領(lǐng)域,突出高安全性、高可用性、高效數(shù)據(jù)處理、虛擬化等關(guān)鍵技術(shù)優(yōu)勢(shì),針對(duì)關(guān)鍵業(yè)務(wù)構(gòu)建的豐富高效、安全可靠的功能特性,兼容適配長(zhǎng)城、聯(lián)想、浪潮、華為、曙光等國(guó)內(nèi)主流廠商的服務(wù)器整機(jī)產(chǎn)品,以及達(dá)夢(mèng)、金倉(cāng)、神通、南大通用等主要國(guó)產(chǎn)數(shù)據(jù)庫(kù)和中創(chuàng)、金蝶、東方通等國(guó)產(chǎn)中間件,滿(mǎn)足虛擬化、云計(jì)算和大數(shù)據(jù)時(shí)代,服務(wù)器業(yè)務(wù)對(duì)操作系統(tǒng)在性能、安全性及可擴(kuò)展性等方面的需求,是一款具有高安全、高可用、高可靠、高性能的自主可控服務(wù)器操作系統(tǒng)。環(huán)境概述服務(wù)器型號(hào)長(zhǎng)城信安擎天DF720服務(wù)器CPU類(lèi)型飛騰2000+處理器操作系統(tǒng)版本Kylin-4.0.2-server-sp2-2000-內(nèi)核版本docker版本docker及相關(guān)軟件簡(jiǎn)介Docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,基于Go語(yǔ)言并遵從Apache2.0協(xié)議開(kāi)源。Docker可以讓開(kāi)發(fā)者打包他們的應(yīng)用以及依賴(lài)包到一個(gè)輕量級(jí)、可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口,更重要的是容器性能開(kāi)銷(xiāo)極低。架構(gòu)及原理架構(gòu)如下圖所示:Docker是一個(gè)C/S模式的架構(gòu),后端是一個(gè)松耦合架構(gòu)。用戶(hù)使用DockerClient與DockerDaemon建立通信,并發(fā)送請(qǐng)求給后者。DockerDaemon作為Docker架構(gòu)中的主體部分,首先提供DockerServer的功能使其可以接受DockerClient的請(qǐng)求。DockerEngine執(zhí)行Docker內(nèi)部的一系列工作,每一項(xiàng)工作都是以一個(gè)Job的形式的存在。Job的運(yùn)行過(guò)程中,當(dāng)需要容器鏡像時(shí),則從DockerRegistry中下載鏡像,并通過(guò)鏡像管理驅(qū)動(dòng)Graphdriver將下載鏡像以Graph的形式存儲(chǔ)。當(dāng)需要為Docker創(chuàng)建網(wǎng)絡(luò)環(huán)境時(shí),通過(guò)網(wǎng)絡(luò)管理驅(qū)動(dòng)Networkdriver創(chuàng)建并配置Docker容器網(wǎng)絡(luò)環(huán)境。當(dāng)需要限制Docker容器運(yùn)行資源或執(zhí)行用戶(hù)指令等操作時(shí),則通過(guò)Execdriver來(lái)完成。Libcontainer是一項(xiàng)獨(dú)立的容器管理包,Networkdriver以及都是通過(guò)Libcontainer來(lái)實(shí)現(xiàn)具體對(duì)容器進(jìn)行的操作。優(yōu)點(diǎn)1,簡(jiǎn)化程序Docker讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴(lài)包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器上,便可以實(shí)現(xiàn)虛擬化。Docker改變了虛擬化的方式,使開(kāi)發(fā)者可以直接將自己的成果放入Docker中進(jìn)行管理。方便快捷已經(jīng)是Docker的最大優(yōu)勢(shì),過(guò)去需要用數(shù)天乃至數(shù)周的任務(wù),在Docker容器的處理下,只需要數(shù)秒就能完成。2、簡(jiǎn)化配置Docker鏡像中包含了運(yùn)行環(huán)境和配置,所以Docker可以簡(jiǎn)化部署多種應(yīng)用實(shí)例工作。比如Web應(yīng)用、后臺(tái)應(yīng)用、數(shù)據(jù)庫(kù)應(yīng)用、大數(shù)據(jù)應(yīng)用比如Hadoop集群、消息隊(duì)列等等都可以打包成一個(gè)鏡像部署。3、節(jié)省開(kāi)支:一方面,云計(jì)算時(shí)代到來(lái),使開(kāi)發(fā)者不必為了追求效果而配置高額的硬件,Docker改變了高性能必然高價(jià)格的思維定勢(shì)。Docker與云的結(jié)合,讓云空間得到更充分的利用。不僅解決了硬件管理的問(wèn)題,也改變了虛擬化的方式。使用方法docker及相關(guān)軟件[root@localhost[root@localhost~]#apt-getinstalldocker-cedocker-ce-clicontaine設(shè)置開(kāi)機(jī)自啟動(dòng)并啟動(dòng)Docker-[root@localhost[root@localhost sudosystemctlenable[root@localhost sudosystemctlstartDocker容器使用Docker客戶(hù)端[root@localhost~]#docker客戶(hù)端非常簡(jiǎn)單,我們可以直接輸入docker命令來(lái)查看到[root@localhost~]#可以通過(guò)命令dockercommand--help更深入的了解指定的Docker命令使用方法。運(yùn)行一個(gè)應(yīng)用使用docker構(gòu)建一個(gè)數(shù)據(jù)庫(kù)應(yīng)用程序。我們將在docker容器中運(yùn)行一個(gè)postgres應(yīng)用來(lái)運(yùn)行一個(gè)數(shù)據(jù)庫(kù)應(yīng)用。[root@localhost[root@localhost~]#dockerpullpostgres#[root@localhost~]#dockerrun--namedemo--privileged=trueTZ='Asia/Shanghai'POSTGRES_USER=koji\POSTGRES_DB=koji\/root/data:/tmp/5432:5432/root/pem/psql-run:/docker-entrypoint-initdb.d參數(shù)說(shuō)明-d:讓容器在后臺(tái)運(yùn)行。-P:將容器內(nèi)部使用的網(wǎng)絡(luò)端口映射到我們使用的主機(jī)上。查看應(yīng)用容器dockerps來(lái)查看我們正在運(yùn)行的容器:[root@localhost[root@localhost~]#dockerCONTAINERUp2daysdemo-"docker-9months:5432-demo-這里多了端口信息。:5432-網(wǎng)絡(luò)端口的快捷方式dockerps命令可以查看到容器的端口映射,docker還提供了另一個(gè)快捷方式dockerportdockerport可以查看指定(ID或者名字)容器的某個(gè)確定端口映射到宿主機(jī)的端口號(hào)。上面我們創(chuàng)建的應(yīng)用容器ID64b5f66eb029名字為demo-0104[root@localhost2_demo]#dockerport64b5f66eb0295432/tcp->:5432[root@localhost2_demo]#dockerport[root@localhost2_demo]#dockerport64b5f66eb0295432/tcp->:5432[root@localhost2_demo]#dockerportdemo-01045432/tcp->:5432查看應(yīng)用程序日志dockerlogs[ID或者名字]可以查看容器內(nèi)部的標(biāo)準(zhǔn)輸出。root@localhostroot@localhost:~#dockerlogs-f-f:dockerlogs像使用tail-f一樣來(lái)輸出容器內(nèi)部的標(biāo)準(zhǔn)輸出。查看應(yīng)用程序容器的進(jìn)程我們還可以使用dockertop來(lái)查看容器內(nèi)部運(yùn)行的進(jìn)程[root@localhost2_demo]#dockertopdemo- checkpointerwriterwalwriterpostgres:autovacuumncherpostgres:statsr 檢查應(yīng)用程[root@localhost2_demo]#dockerinspectdemo-0104"Id":"Created":[root@localhost2_demo]#dockerinspectdemo-0104"Id":"Created":"2018-08-"Path":"docker-entrypoint.sh","Args":["State":"Status":"running","Running":true,"Paused":false,"Restarting":false,"OOMKilled":false,"Dead":false,"Pid":"ExitCode":0,"Error":"","StartedAt":"2019-06-11T06:28:47.716331395Z","FinishedAt":"2019-06-"Image":"ResolvConfPath":"/var/lib/docker/containers/64b5f66eb029f048c28b77b31e"HostnamePath":"/var/lib/docker/containers/64b5f66eb029f048c28b77b31e47"HostsPath":"LogPath":"/var/lib/docker/containers/64b5f66eb029f048c28b77b31e47eb864停止應(yīng)用容器dockerdockerstopdemo-重啟應(yīng)用容器已經(jīng)停止的容器,我們可以使用命令dockerstart來(lái)啟動(dòng)。dockerdockerstartdemo-[root@localhost2_demo]#dockerps[root@localhost2_demo]#dockerps-CONTAINER6weeks正在運(yùn)行的容器,我們可以使用dockerrestart命令來(lái)重啟移除應(yīng)用容器我們可以使用dockerrm命令來(lái)刪除不需要的容器[root@localhost[root@localhost2_demo]#dockerrmdemo-刪除容器時(shí),容器必須是停止?fàn)顟B(tài),否則會(huì)報(bào)如下錯(cuò)誤[root@localhost[root@localhost2_demo]#dockerrmdemo-Errorresponsefromdaemon:Youcannotremovearunningcontainer64b5f66eb029f048c28b77b31e47eb8644dc59a84f0db86345c39ef9ae36bce5.StopthecontainerbeforeattemptingremovalorforceremoveDocker容器連接前面我們實(shí)現(xiàn)了通過(guò)網(wǎng)絡(luò)端口來(lái)訪問(wèn)運(yùn)行在docker容器內(nèi)的服務(wù)。下面我們來(lái)實(shí)現(xiàn)通過(guò)端口連接到一個(gè)docker容器網(wǎng)絡(luò)端口映射我們創(chuàng)建了一個(gè)python應(yīng)用的容器。[root@localhost2_demo]#dockerrun-d-Ppostgres[root@localhost2_demo]#dockerrun-d-Ppostgres另外,我們可以指定容器綁定的網(wǎng)絡(luò)地址,比如綁定我們使用-P參數(shù)創(chuàng)建一個(gè)容器,使用dockerps可以看到容器端口5432綁定主機(jī)端口32768[root@localhost2_demo]#dockerportmodest_poincare5432/tcp->:32768[root@localhost2_demo]#dockerportmodest_poincare5432/tcp->:32768我們也可以使用-p標(biāo)識(shí)來(lái)指定容器端口綁定到主機(jī)端口。兩種方式的區(qū)別是:-P:是容器內(nèi)部端口隨機(jī)映射到主機(jī)的高端口。-p:是容器內(nèi)部端口綁定到指定的主機(jī)端口。[root@localhost[root@localhost2_demo]#dockerrun-d-p:5000:5432postgres[root@localhost2_demo]#dockerportzen_hugle5432/tcp->另外,我們可以指定容器綁定的網(wǎng)絡(luò)地址,比如綁定[root@localhost2_demo]#dockerrun-d-p:5001:5432postgres[root@localhost2_demo]#dockerrun-d-p:5001:5432postgres[root@localhost2_demo]#dockerportvibrant_mayer5432/tcp->這樣我們就可以通過(guò)訪問(wèn):5001來(lái)訪問(wèn)容器的5432端口。[root@localhost2_demo]#dockerrun-d-p[root@localhost2_demo]#dockerrun-d-p:5000:5432/udppostgres[root@localhost2_demo]#dockerportzealous_wescoff5432/udp->Docker容器連接端口映射并不是唯一把docker連接到另一個(gè)容器的方法。docker有一個(gè)連接系統(tǒng)允許將多個(gè)容器連接在一起,共享連接信息。docker連接會(huì)創(chuàng)建一個(gè)父子關(guān)系,其中父容器可以看到子容器的信息。容器命名[root@localhost2_demo]#dockerrun[root@localhost2_demo]#dockerrun-d-P--namekylinpostgres我們可以使用dockerps命令來(lái)查看容器名稱(chēng)。[root@localhost[root@localhost2_demo]#dockerCONTAINERUp56secondsUp2"docker- 57seconds:32769-demo-"docker-9months:5432-demo-Docker鏡像使用當(dāng)運(yùn)行容器時(shí),使用的鏡像如果在本地中不存在,docker就會(huì)自動(dòng)從docker鏡像倉(cāng)庫(kù)中下載,默認(rèn)是從DockerHub公共鏡像源下載。下面我們來(lái)學(xué)習(xí):1、管理和使用本地Docker主機(jī)鏡像2、創(chuàng)建鏡像列出鏡像列表我們可以使用dockerimages來(lái)列出本地主機(jī)上的鏡像。[root@localhost[root@localhost2_demo]#dockerdemo-monthsmonthsgoogle/nodejs-yearsyearsIMAGE3months5months6monthsREPOSITORY表示鏡像的倉(cāng)庫(kù)源TAG:鏡像的標(biāo)簽IMAGEID:CREATED鏡像創(chuàng)建時(shí)間SIZE:鏡像大小同一倉(cāng)庫(kù)源可以有多個(gè)TAG,代表這個(gè)倉(cāng)庫(kù)源的不同個(gè)版本獲取一個(gè)新的鏡像[root@localhost2_demo]#dockerpullubuntu:16.0416.04:Pullingfromlibrary/ubuntu9ff7e2e5f967:Pullcomplete59856638ac9f:Pullcomplete6f317d6d954b:Pullcompletea9dde5e2a643:[root@localhost2_demo]#dockerpullubuntu:16.0416.04:Pullingfromlibrary/ubuntu9ff7e2e5f967:Pullcomplete59856638ac9f:Pullcomplete6f317d6d954b:Pullcompletea9dde5e2a643:PullDigest:sha256:cad5e101ab30bb7f7698b277dd49090f520fe063335643990ce8fbd15ff920efStatus:Downloadednewerimageforubuntu:16.04下載完成后,我們可以直接使用這個(gè)鏡像來(lái)運(yùn)行容器。查找鏡像root@localhostroot@localhost:~$dockersearchNAME:鏡像倉(cāng)庫(kù)源的名稱(chēng)DESCRIPTION:鏡像的描述OFFICIAL:是否docker官方發(fā)布創(chuàng)建鏡像當(dāng)我們從docker鏡像倉(cāng)庫(kù)中下載的鏡像不能滿(mǎn)足我們的需求時(shí),我們可以通過(guò)以下兩種方式對(duì)鏡像進(jìn)行更改。1.從已經(jīng)創(chuàng)建的容器中更新鏡像,并且提交這個(gè)鏡像2.使用Dockerfile指令來(lái)創(chuàng)建一個(gè)新的鏡像更新鏡像更新鏡像之前,我們需要使用鏡像來(lái)創(chuàng)建一個(gè)容器。[root@localhost[root@localhost2_demo]#dockerrun-itubuntu:16.04在運(yùn)行的容器內(nèi)使用apt-getupdate命令進(jìn)行更新。在完成操作之后,輸入exit命令來(lái)退出這個(gè)容器。[root@localhost2_demo]#dockercommit-m="hasupdate"[root@localhost2_demo]#dockercommit-m="hasupdate"-a="kylin"84b9fd344162kyli各個(gè)參數(shù)說(shuō)明:-m:提交的描述信息-a:指定鏡像作者84b9fd344162:容器kylin/ubuntu:v2:指定要?jiǎng)?chuàng)建的目標(biāo)鏡像名我們可以使用dockerimages命令來(lái)查看我們的新鏡像[root@localhost[root@localhost2_demo]#docker IMAGE35seconds4weeksdemo-9months9months3years4years[root@localhost2_demo]#dockerrun-t-ikylin/ubuntu:v2/bin/bash[root@localhost2_demo]#dockerrun-t-ikylin/ubuntu:v2/bin/bashV4Hadoop軟件適配手冊(cè)銀河麒麟服務(wù)器操作系統(tǒng)V4銀河麒麟服務(wù)器操作系統(tǒng)V4hadoop軟件適配手冊(cè)目錄目 概述 系統(tǒng)概 環(huán)境概 HADOOP軟件簡(jiǎn)介 HDFS架構(gòu)原 MAPREDUCE介 YARN介紹 HADOOP軟件適配 解壓HADOOP軟件 配置文件修 配置HADOOP- 配置YARN- 配置CORE- 配置HDFS- 配置MAPRED- 配置YARN- 配置 格式化并啟動(dòng)集 格式化 啟動(dòng)NAMENODE和DATANODE守護(hù)進(jìn) 啟動(dòng)RESOURCEMANAGER和NODEMANAGER守護(hù)進(jìn) 執(zhí)行WORDCOUNT測(cè)試用 銀河麒麟服務(wù)器操作系統(tǒng)V4銀河麒麟服務(wù)器操作系統(tǒng)V4hadoop軟件適配手冊(cè)概述系統(tǒng)概述銀河麒麟服務(wù)器操作系統(tǒng)主要面向軍隊(duì)綜合電子信息系統(tǒng)、金融系統(tǒng)以及電力系統(tǒng)等國(guó)家關(guān)鍵行業(yè)的服務(wù)器應(yīng)用領(lǐng)域,突出高安全性、高可用性、高效數(shù)據(jù)處理、虛擬化等關(guān)鍵技術(shù)優(yōu)勢(shì),針對(duì)關(guān)鍵業(yè)務(wù)構(gòu)建的豐富高效、安全可靠的功能特性,兼容適配長(zhǎng)城、聯(lián)想、浪潮、華為、曙光等國(guó)內(nèi)主流廠商的服務(wù)器整機(jī)產(chǎn)品,以及達(dá)夢(mèng)、金倉(cāng)、神通等主要國(guó)產(chǎn)數(shù)據(jù)庫(kù)和中創(chuàng)、金蝶、東方通等國(guó)產(chǎn)中間件,滿(mǎn)足虛擬化、云計(jì)算和大數(shù)據(jù)時(shí)代,服務(wù)器業(yè)務(wù)對(duì)操作系統(tǒng)在性能、安全性及可擴(kuò)展性等方面的需求,是一款具有高安全、高可用、高可靠、高性能的自主可控服務(wù)器操作系統(tǒng)。環(huán)境概述服務(wù)器型號(hào)長(zhǎng)城信安擎天DF720服務(wù)器CPU類(lèi)型飛騰2000+處理器操作系統(tǒng)版本Kylin-4.0.2-server-sp2-2000-內(nèi)核版本hadoop版本Hadoop軟件簡(jiǎn)介Hadoop是一個(gè)由Apache基金會(huì)所開(kāi)發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。用戶(hù)可以在不了解分布式底層細(xì)節(jié)的情況下,開(kāi)發(fā)分布式程序。充分利用集群的威力進(jìn)行高速運(yùn)算和存儲(chǔ)。Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(HadoopDistributedFileSystem),簡(jiǎn)稱(chēng)HDFS。HDFS有高容錯(cuò)性的特點(diǎn),并且設(shè)計(jì)用來(lái)部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(highthroughput)來(lái)訪問(wèn)應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(largedataset)的應(yīng)用程序。HDFS放寬了(relax)POSIX的要求,可以以流的形式訪問(wèn)(streamingaccess)文件系統(tǒng)中的數(shù)據(jù)。Hadoop的框架最核心的設(shè)計(jì)就是:HDFSMapReduce。HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),而MapReduce則為海量的數(shù)據(jù)提供了計(jì)算。HDFS架構(gòu)原理HDFSHadoop分布式文件系統(tǒng)(HadoopDistributedFileSystem)的縮寫(xiě),為分布式計(jì)算存儲(chǔ)提供了底層支持。采用Java語(yǔ)言開(kāi)發(fā),可以部署在多種普通的廉價(jià)機(jī)器上,以集群處理數(shù)量積達(dá)到大型主機(jī)處理性能。HDFS采用master/slave架構(gòu)。一個(gè)HDFS集群包含一個(gè)單獨(dú)的和多個(gè)DataNodeNameNode作為master服務(wù),它負(fù)責(zé)管理文件系統(tǒng)的命名空間和客戶(hù)端對(duì)文件的訪問(wèn)。NameNode會(huì)保存文件系統(tǒng)的具體信息,包括文件信息、文件被分割成具體block塊的信息、以及每一個(gè)block塊歸屬的DataNode的信息。對(duì)于整個(gè)集群來(lái)說(shuō),HDFS通過(guò)NameNode對(duì)用戶(hù)提供了一個(gè)單一的命名空間。DataNode作為slave服務(wù),在集群中可以存在多個(gè)。通常每一個(gè)DataNode都對(duì)應(yīng)于一個(gè)物理節(jié)點(diǎn)。DataNode負(fù)責(zé)管理節(jié)點(diǎn)上它們擁有的存儲(chǔ),它將存儲(chǔ)劃分為多個(gè)blockblock塊信息,同時(shí)周期性的將其所有的block塊信息發(fā)送給NameNode。MapReduce介紹MapReduce是一種計(jì)算模型,該模型可以將大型數(shù)據(jù)處理任務(wù)分解成很多單個(gè)的、可以在服務(wù)器集群中并行執(zhí)行的任務(wù),而這些任務(wù)的計(jì)算結(jié)果可以合并在一起來(lái)計(jì)算最終的結(jié)果。簡(jiǎn)而言之,HadoopMapreduce是一個(gè)易于編程并且能在大型集群(上千節(jié)點(diǎn))快速地并行得處理大量數(shù)據(jù)的軟件框架,以可靠,容錯(cuò)的方式部署在商用機(jī)器上。MapReduce這個(gè)術(shù)語(yǔ)來(lái)自?xún)蓚€(gè)基本的數(shù)據(jù)轉(zhuǎn)換操作:map過(guò)程和reduce過(guò)程。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論