轉(zhuǎn)自杰的博客
介紹
(1)Hadoop是一個(gè)由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。
用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力進(jìn)行高速運(yùn)算和存儲。
Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop Distributed File System),簡稱HDFS。HDFS有高容錯(cuò)性的特點(diǎn),并且設(shè)計(jì)用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序。HDFS放寬了(relax)POSIX的要求,可以以流的形式訪問(streaming access)文件系統(tǒng)中的數(shù)據(jù)。
Hadoop的框架最核心的設(shè)計(jì)就是:HDFS和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲,則MapReduce為海量的數(shù)據(jù)提供了計(jì)算。
(2)Hadoop是一個(gè)開源的框架,可編寫和運(yùn)行分布式應(yīng)用處理大規(guī)模數(shù)據(jù),是專為離線和大規(guī)模數(shù)據(jù)分析而設(shè)計(jì)的,并不適合那種對幾個(gè)記錄隨機(jī)讀寫的在線事務(wù)處理模式。Hadoop=HDFS(文件系統(tǒng),數(shù)據(jù)存儲技術(shù)相關(guān))+ Mapreduce(數(shù)據(jù)處理),Hadoop的數(shù)據(jù)來源可以是任何形式,在處理半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)上與關(guān)系型數(shù)據(jù)庫相比有更好的性能,具有更靈活的處理能力,不管任何數(shù)據(jù)形式最終會轉(zhuǎn)化為key/value,key/value是基本數(shù)據(jù)單元。用函數(shù)式變成Mapreduce代替SQL,SQL是查詢語句,而Mapreduce則是使用腳本和代碼,而對于適用于關(guān)系型數(shù)據(jù)庫,習(xí)慣SQL的Hadoop有開源工具h(yuǎn)ive代替。
(3)Hadoop就是一個(gè)分布式計(jì)算的解決方案.
Hadoop能做什么
hadoop擅長日志分析,facebook就用Hive來進(jìn)行日志分析,2009年時(shí)facebook就有非編程人員的30%的人使用HiveQL進(jìn)行數(shù)據(jù)分析;淘寶搜索中的自定義篩選也使用的Hive;利用Pig還可以做高級的數(shù)據(jù)處理,包括Twitter、LinkedIn 上用于發(fā)現(xiàn)您可能認(rèn)識的人,可以實(shí)現(xiàn)類似Amazon.com的協(xié)同過濾的推薦效果。淘寶的商品推薦也是!在Yahoo!的40%的Hadoop作業(yè)是用pig運(yùn)行的,包括垃圾郵件的識別和過濾,還有用戶特征建模。
大數(shù)據(jù)時(shí)代的到來,給GIS的創(chuàng)新發(fā)展帶來了前所未有的機(jī)遇。本文對Hadoop和GIS進(jìn)行了研究分析,提出了基于Hadoop的GIS大數(shù)據(jù)處理模型。試驗(yàn)結(jié)果顯示,該模型能夠擴(kuò)充Hadoop的空間運(yùn)算能力,對后期地理信息大數(shù)據(jù)挖掘和分析有一定的參考價(jià)值。
ArcGIS與Hadoop
隨著ArcGIS 10.2版本的發(fā)布,一同推出的開源工具包GIS Tools for Hadoop,完美的詮釋了海量空間數(shù)據(jù)與分布式運(yùn)算的結(jié)合。
GIS Tools for Hadoop 是一個(gè)開源的工具包,它定義和構(gòu)建了一整套空間分析的環(huán)境,在GIS與hadoop之間搭建起了一個(gè)橋梁。
從20世紀(jì)60年代至今,GIS已經(jīng)迅速發(fā)展成了一個(gè)獨(dú)特的研究與應(yīng)用領(lǐng)域,并形成一個(gè)全球性的重要行業(yè)。
Esri這些年來,一直致力于研究GIS信息與數(shù)據(jù)的標(biāo)準(zhǔn)化,推出了ArcSDE這樣的空間數(shù)據(jù)引擎,讓空間數(shù)據(jù)與關(guān)系型數(shù)據(jù)庫之間搭起了一個(gè)通路,可以讓空間數(shù)據(jù)保存在主流的商業(yè)數(shù)據(jù)庫中,使用每種DBMS所支持的標(biāo)準(zhǔn)SQL類型來管理數(shù)據(jù),并且支持所有的空間數(shù)據(jù)類型(包括要素、柵格、拓?fù)?、網(wǎng)絡(luò)、地形、測量數(shù)據(jù)、表格數(shù)據(jù),以及位置數(shù)據(jù),例如地址、模型和元數(shù)據(jù)),而無需用戶考慮DBMS的底層實(shí)現(xiàn)。
但是,空間數(shù)據(jù)更多的是像影像、TIN(Triangulated IrregularNetwork)這樣的非結(jié)構(gòu)化數(shù)據(jù),而數(shù)據(jù)庫中的查詢語言,正如其名稱的簡寫——SQL,就顯示了它的僵化。所以急需新的,非關(guān)系型、非結(jié)構(gòu)化的數(shù)據(jù)庫和數(shù)據(jù)分析方法的出現(xiàn)。
Hadoop以其高可靠性、高擴(kuò)展性、高效性和高容錯(cuò)性,特別是在海量的非結(jié)構(gòu)化或者半結(jié)構(gòu)化數(shù)據(jù)上的分析處理優(yōu)勢,給我們提供了另外一種思路。 Hadoop的核心算法就是“分而治之”,這個(gè)與GIS里面很多算法是相通的,GIS里面很多應(yīng)用場景都是要去分析不同區(qū)域內(nèi)的各種信息,把這樣的計(jì)算放到Hadoop上,正好利用了Hadoop的分布式計(jì)算特性。特別是一直讓GIS界最頭痛的海量影像數(shù)據(jù)存儲和分析,在Hadoop的分布式存儲和分布式運(yùn)算架構(gòu)上,更是能夠體現(xiàn)出Hadoop在GIS應(yīng)用上的優(yōu)勢。
當(dāng)我們數(shù)據(jù)量不夠的時(shí)候,我們需要設(shè)計(jì)一套很復(fù)雜的算法,在樣本數(shù)據(jù)中去探尋其中的規(guī)律,而且還要使用各種手段來保證數(shù)據(jù)的準(zhǔn)確無誤,但是當(dāng)數(shù)據(jù)量足夠大的時(shí)候,往往只需要一些很簡單的算法就可以從海量的數(shù)據(jù)中得到滿意的結(jié)果了。但是限于技術(shù)手段,特別是空間分析對計(jì)算資源的消耗,我們以前根本做不到基于如此龐大數(shù)據(jù)的分析。而放在hadoop上,可以利用Hadoop強(qiáng)大的分布式分析功能,來處理和分析更多的數(shù)據(jù)集。
比如在出租車輛定位的研究中,GPS數(shù)據(jù)每個(gè)1秒鐘就將記錄一條信息,信息的內(nèi)容包括經(jīng)緯度、海拔、時(shí)間、車速、方向等等,每輛車每天生成的數(shù)據(jù)量就高達(dá)8萬多條,北京市的目前有出租車約為7萬輛,也就是說每天生成GPS數(shù)據(jù)就高達(dá)60億條記錄。如果把這個(gè)信息的收集范圍擴(kuò)展到全國,年復(fù)一年,日復(fù)一日,那么收集上來的數(shù)據(jù),將遠(yuǎn)遠(yuǎn)超出人們的想象。
這些數(shù)據(jù)如同地下的金礦,等著我們?nèi)グl(fā)掘,有了這些數(shù)據(jù),利用空間分析的方法,我們就可以計(jì)算出很多有意義的結(jié)果。如用戶可以知道,在各種時(shí)段中,在何處打車最容易?出租車司機(jī)們可以知道在什么地方趴活最容易拉到客戶,而保證最省油。運(yùn)營公司可以知道在不同時(shí)間段出租車運(yùn)營數(shù)量最少的區(qū)域,進(jìn)行調(diào)整合理分配資源;交通部門可以根據(jù)出租車的時(shí)速來得到各道路的交通情況等等。
計(jì)算機(jī)和軟件的處理是有限的,當(dāng)數(shù)據(jù)量到達(dá)一定極限的時(shí)候,常規(guī)的手段就對這些龐大的數(shù)據(jù)無能為力了。這樣就需要有新的技術(shù)來實(shí)現(xiàn)這種突破,以轉(zhuǎn)變我們的處理手段。最能代表這種轉(zhuǎn)變的,就是Hadoop的流行。
而GIS Tools for Hadoop的發(fā)布,讓hadoop正式登上了空間分析的舞臺。
目前GIS Tools for Hadoop只是邁出了小小的一步,實(shí)現(xiàn)了包括相交、包含、緩沖等常用的空間分析功能,并且與ArcGIS產(chǎn)品無縫的集成,可以在ArcGIS for Desktop中直接調(diào)用,并且將結(jié)果以空間信息的方式展現(xiàn)出來。但是還僅僅是開始,未來我們還期待著能夠解決更多的問題,如GIS界最頭疼的地圖緩存切片生成和存儲的問題、海量遙感影像的計(jì)算、大規(guī)模批空間插值、海量空間數(shù)據(jù)聚合、空間數(shù)據(jù)處理等等。
GIS Tools for Hadoop的發(fā)布表現(xiàn)了Esri始終關(guān)注IT界的熱點(diǎn)技術(shù),并努力為不同行業(yè)用戶提供更多專業(yè)的支持。同時(shí)也是ArcGIS平臺集成大數(shù)據(jù)一次很好的嘗試。這個(gè)工具解決了Esri在大數(shù)據(jù)應(yīng)用方面從無到有的問題,有著重要的意義。GIS Tools for Hadoop在未來還有很大的發(fā)展空間,期待在后面的版本中會增加對影像數(shù)據(jù)的支持,這樣對GIS行業(yè)來說將有更加重要的應(yīng)用。
ArcGIS提供Hadoop方面的項(xiàng)目
首先可以打開github中Esri的內(nèi)容 https://github.com/Esri,然后在里面搜索 hadoop,會發(fā)現(xiàn)目前Esri在hadoop方面已經(jīng)提供了四個(gè)項(xiàng)目。
1、spatial-framework-for-hadoop 基于hadoop的空間數(shù)據(jù)處理和分析框架,該框架允許開發(fā)者和數(shù)據(jù)科學(xué)家通過hadoop云計(jì)算平臺來處理和分析空間數(shù)據(jù)。
2、gis-tools-for-hadoop 基于Hadoop的GIS工具箱,可以通過GIS工具對大數(shù)據(jù)進(jìn)行空間分析。
3、geoprocessing-tools-for-hadoop 基于Hadoop的地理處理工具箱,提供了地理數(shù)據(jù)庫和Hadoop之間數(shù)據(jù)存儲轉(zhuǎn)換功能,并且也實(shí)現(xiàn)了運(yùn)行Hadoop工作流的功能。
4、hadoop-for-geoevent 是對ArcGIS GeoEvent功能的一個(gè)擴(kuò)展,實(shí)現(xiàn)了GeoEvents數(shù)據(jù)在HDFS上的存儲。
1. 安裝操作系統(tǒng)
在虛擬機(jī)環(huán)境張安裝Ubuntu 操作系統(tǒng)
2.Hadoop 安裝與集群分布式配置
2.1創(chuàng)建HADOOP用戶
如果你安裝 Ubuntu 的時(shí)候不是用的 “hadoop” 用戶,那么需要增加一個(gè)名為 hadoop 的用戶。首先按 ctrl+alt+t 打開終端窗口,輸入如下命令創(chuàng)建新用戶 :
接著使用如下命令設(shè)置密碼,按提示輸入兩次密碼:
可為用戶增加管理員權(quán)限,方便部署,避免比較棘手的權(quán)限問題:
最后注銷當(dāng)前用戶(點(diǎn)擊屏幕右上角的齒輪,選擇注銷),返回登陸界面。在登陸界面中選擇剛創(chuàng)建的 hadoop 用戶進(jìn)行登陸。
2.2更新APT
用 hadoop 用戶登錄后,我們先更新一下 apt,后續(xù)我們使用 apt 安裝軟件,如果沒更新可能有一些軟件安裝不了。按 ctrl+alt+t 打開終端窗口,執(zhí)行如下命令: