你想不想利用自己手頭上的現(xiàn)有日常硬件、自由軟件等資源去搭建一個(gè)屬于個(gè)人的小型數(shù)據(jù)中心呢?
1.硬件
設(shè)計(jì)數(shù)據(jù)中心的時(shí)候,我們的目標(biāo)是在每個(gè)環(huán)節(jié)上有冗余的時(shí)候保持系統(tǒng)最大的可用性,因此,即使有些環(huán)節(jié)不工作了,可影響不會(huì)受到影響。
服務(wù)器使用了日常硬件:我們所有的服務(wù)器硬件基于Inter Core i3處理器,16G內(nèi)存和3TB的存儲(chǔ)空間,為了做到最大可用性,設(shè)備共用了硬盤(pán)、網(wǎng)卡、路由和交換機(jī)。
多UPS和發(fā)電設(shè)備:我們意識(shí)到在印度經(jīng)常會(huì)停電。我們不能因?yàn)橥k姸鵂奚?wù)器,因此我們?cè)O(shè)置了多個(gè)UPS,一個(gè)附加的發(fā)電設(shè)備——用來(lái)防備USP也撐不住的時(shí)候。
多個(gè)網(wǎng)絡(luò)專線:雖然有一條專線我們的服務(wù)器和爬蟲(chóng)就應(yīng)該能7×24小時(shí)的工作,但為了防止網(wǎng)絡(luò)中斷,我們做了冗余——來(lái)自兩個(gè)不同服務(wù)商的專線。
2.硬件監(jiān)控和軟件配置的工具
自動(dòng)化的安裝、配置和監(jiān)控至關(guān)重要,可以接受日常的維護(hù)工作。
自動(dòng)安裝和配置:Mondo (linux下的ghost)和 Puppet用來(lái)完成系統(tǒng)配置的自動(dòng)化管理。Mondo 用來(lái)批量安裝Puppt到裸機(jī),Puppt安裝既定的設(shè)置進(jìn)行管理和配置。
監(jiān)控和警告: Nagios, Munin and WinPower(伊頓中國(guó)|winpower),這些軟件用來(lái)監(jiān)控我們的私有云設(shè)備。Nagios 對(duì)主機(jī)進(jìn)行頻繁的檢查并通過(guò)郵件、短信、聊天工具提出警報(bào),我們通過(guò)一個(gè)藍(lán)牙發(fā)射器連接一個(gè)廢棄手機(jī),用來(lái)發(fā)送警報(bào)短信。
數(shù)據(jù)備份:所有數(shù)據(jù)復(fù)制在多個(gè)硬盤(pán)上備份。關(guān)鍵數(shù)據(jù)仍然要用一套獨(dú)立的外部系統(tǒng)和存儲(chǔ)設(shè)備再備份一次。我們使用rsync配合BackupPC進(jìn)行每周一次的全局備份和每日的增量備份。周備份按時(shí)傳送到外部硬盤(pán)上。
3.設(shè)置爬取設(shè)施
我們使用如下開(kāi)源軟件進(jìn)行7×24小時(shí)的爬取、分布式存儲(chǔ)和工作處理。
Hadoop HDFS:阿帕奇Hadoop 是一個(gè)支持?jǐn)?shù)據(jù)庫(kù)分布式處理的開(kāi)源框架。Hadoop Distributed File System (HDFS)是其使用的主要存儲(chǔ)系統(tǒng),HDFS能夠串聯(lián)一個(gè)計(jì)算機(jī)集群中以極快的速度地為數(shù)據(jù)塊進(jìn)行拷貝和分發(fā)。
上面提到的Cassandra 非關(guān)系型數(shù)據(jù)庫(kù):阿帕奇Cassandra 是一個(gè)開(kāi)源的分布式數(shù)據(jù)庫(kù)管理系統(tǒng)。它被設(shè)計(jì)用來(lái)通過(guò)日常服務(wù)器處理大數(shù)量級(jí)的數(shù)據(jù),提供沒(méi)有單點(diǎn)故障的高可用性。
Hadoop Map-Reduce :是一個(gè)使用簡(jiǎn)易的軟件框架,基于它寫(xiě)出來(lái)的應(yīng)用程序能夠運(yùn)行在由上千個(gè)商用機(jī)器組成的分布式大型集群架構(gòu)上,并以一種可靠容錯(cuò)的方式并行處理上T級(jí)別的數(shù)據(jù)集。
Pig腳本:“ Pig是一種編程語(yǔ)言,它簡(jiǎn)化了Hadoop常見(jiàn)的工作任務(wù)。Pig可加載數(shù)據(jù)、表達(dá)轉(zhuǎn)換數(shù)據(jù)以及存儲(chǔ)最終結(jié)果。Pig內(nèi)置的操作使得半結(jié)構(gòu)化數(shù)據(jù)變得有意義(如日志文件)。同時(shí)Pig可擴(kuò)展使用Java中添加的自定義數(shù)據(jù)類型并支持?jǐn)?shù)據(jù)轉(zhuǎn)換。”
Zookeeper:是Hadoop的正式子項(xiàng)目,它是一個(gè)針對(duì)大型分布式系統(tǒng)的可靠協(xié)調(diào)系統(tǒng),提供的功能包括:配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù)等。
Apache Nutch :基于Lucene 和 Java的開(kāi)源搜索引擎,用于爬蟲(chóng)搜索和索引。
文本處理通過(guò)Lucene
4.成本
1)設(shè)備支出:
整個(gè)設(shè)施花費(fèi)了大概一萬(wàn)二千美元,包括服務(wù)器、冷卻系統(tǒng)、電源組件的價(jià)格,我們從當(dāng)?shù)毓?yīng)商購(gòu)買,自己組裝,每個(gè)服務(wù)器成本控制在了500美元。效率方面從組裝到提供給用戶需要2-3小時(shí)時(shí)間。(一小時(shí)組裝,30分鐘用Mondo恢復(fù)統(tǒng)一鏡像,一小時(shí)用Puppt安裝和配置)
日本云專線原生IP必須是獨(dú)立的,有些公司提供的加速線路,給你的是一樣共享的IP,很多客戶共同使用一個(gè)IP。這個(gè)對(duì)于運(yùn)營(yíng)TikTok賬戶的商家來(lái)說(shuō)是大忌。