Жерді қашықтан зондтау және гиперспектральді бейнелерді өңдеу алгоритмдері7



Қазіргі таңда дешифлеудің және объектің танылуын, жерде болатын құбылыстардың танылуның сенімділігін арттыру үшін көп мөлшерде жерді қашықтан зодтау әдісі қолданылады. Гиперспектральды бейнелерді өңдеу бағытының дамуын маңызды болуы себебі гиперспектральды бейнелерді өңдеу әдістері әліде кең түрде құрылмағандығы.
Гиперспектральді деректермен жұмыс істеу кезінде тек мықты есептеуіш машиналар ғана емес сонымен тағы бағдарламалық жабдықтауда қажет.Олар оз кезегінде спектральді рұқсат етілімдегі және үлкен кеңістіктегі бейнелердің жаңа дәуірімен жұмыс жасауға мүмкіндік береді. Кластерлеудің стандартты алгоритмдері әдеттегідей аз мөлшердегі каналдар санын өндеуде ғана тиімді болады.
ISODATA кластерлік алгоритмі қашықтан зондталған деректерді зерттеу облсында жалпы әдіс ретінде карастырылады. Бұл бейненің алдыңғы үлгісін құрғанға өте тиімде алгоритм болып табылады. Кластерлеудің бұндай әдістері қазіргі таңда персональді компьютерлерде құрылып жүзеге асырылады. Осыған қарамастан, қашықтан зондтау технологиясының дамуымен, кеңістік рұқсат етілімдері де тез өсіп келеді, және деректердің өлшемдеріде үлкейе түсуде. Үлкен көлемдегі бейнелерді персональді компьютерде кластерлеу аппараттық шектеулерден және бағдарламалық ресурстардың себебінен едәуір көп уақыт алады.
Hadoop – бұл үлкен көлемдегі деректерді өңдейтін үлестірмелі қолданбалылырды құруға және жіберуге арналған ашық нәтежилік коды бар қаңқа. Hadoop бейнелерді өңдеуге жақсы технология болып келеді, сондықтан біз оны қашықтан зондталған деректерді өңдеу үшін қолданамыз.
Жұмыстың мақсаты: Гиперспектральді бейнелерді өңдеу үшін ISODATA кластерлік алгоритмін Hadoop платформасында жүзеге асыру.
Қадамдар:
1. ISODATA кластерлік алгоритмін зерттеу.
2. Hadoop платформасын және оның HDFS файлдық жүйесін зерттеу.
3. Hadoop платформасын орнату және оның функционалдылығын тестілеп көру.
4. Hadoop платформасында ISODATA алгоритмін жүзеге асыру.
5. Тәжербелік зерттеулер жасау және алынған нәтежиелерге қорытынды жасау.
Практикалық мағанасы: MapReduce парадигмасын қолдану бейнені өңдеу кезіндегі алгоритмның уақытын айтарлықтай қысқартты. Біздің тәжірбелерімізде есептеулер үлсетірмелі есептеулерге арналған Hadoop платформасында, MapReduce парадигмасын қолданып есептелінді. Hadoop платформасын қолдану бізге есептің есеплеуінің маштабын өзгертуге мүмкіндік берді, бірнеше есептеуіш түйндерде есептелуін қамтамасыз етті.
1. Дж. Ту, Р. Гонсалес. Принципы распознавания образов. М.: «Мир», 1978 г.
2. С.А.Айвазян, В. М. Бухштабер, И.С. Енюков, Л.Д. Мешалкин. Прикладная статистика классификация и снижение размерности. М.: «Финансы и статистика», 1989 г.
3. Чак Лэм. Hadoop в действии. М.: ДМК Пресс, 2012.
4. http://www.codeinstinct.pro/2012/08/hdfs-design.html
5. Bo Li, Hui Zhao, ZhenHua LV. Parallel ISODATA Clustering of Remote Sensing Images Based on MapReduce // Proceedings of the International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery, 2010.
6. J. Dean, S. Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. Communications of The ACM, 2008. 51(1), 107-113.

Пән: География
Жұмыс түрі:  Дипломдық жұмыс
Тегін:  Антиплагиат
Көлемі: 48 бет
Таңдаулыға:   
КІРІСПЕ

Қазіргі таңда дешифлеудің және объектің танылуын, жерде болатын құбылыстардың танылуның сенімділігін арттыру үшін көп мөлшерде жерді қашықтан зодтау әдісі қолданылады. Гиперспектральды бейнелерді өңдеу бағытының дамуын маңызды болуы себебі гиперспектральды бейнелерді өңдеу әдістері әліде кең түрде құрылмағандығы.
Гиперспектральді деректермен жұмыс істеу кезінде тек мықты есептеуіш машиналар ғана емес сонымен тағы бағдарламалық жабдықтауда қажет.Олар оз кезегінде спектральді рұқсат етілімдегі және үлкен кеңістіктегі бейнелердің жаңа дәуірімен жұмыс жасауға мүмкіндік береді. Кластерлеудің стандартты алгоритмдері әдеттегідей аз мөлшердегі каналдар санын өндеуде ғана тиімді болады.
ISODATA кластерлік алгоритмі қашықтан зондталған деректерді зерттеу облсында жалпы әдіс ретінде карастырылады. Бұл бейненің алдыңғы үлгісін құрғанға өте тиімде алгоритм болып табылады. Кластерлеудің бұндай әдістері қазіргі таңда персональді компьютерлерде құрылып жүзеге асырылады. Осыған қарамастан, қашықтан зондтау технологиясының дамуымен, кеңістік рұқсат етілімдері де тез өсіп келеді, және деректердің өлшемдеріде үлкейе түсуде. Үлкен көлемдегі бейнелерді персональді компьютерде кластерлеу аппараттық шектеулерден және бағдарламалық ресурстардың себебінен едәуір көп уақыт алады.
Hadoop - бұл үлкен көлемдегі деректерді өңдейтін үлестірмелі қолданбалылырды құруға және жіберуге арналған ашық нәтежилік коды бар қаңқа. Hadoop бейнелерді өңдеуге жақсы технология болып келеді, сондықтан біз оны қашықтан зондталған деректерді өңдеу үшін қолданамыз.
Жұмыстың мақсаты: Гиперспектральді бейнелерді өңдеу үшін ISODATA кластерлік алгоритмін Hadoop платформасында жүзеге асыру.
Қадамдар:
1. ISODATA кластерлік алгоритмін зерттеу.
2. Hadoop платформасын және оның HDFS файлдық жүйесін зерттеу.
3. Hadoop платформасын орнату және оның функционалдылығын тестілеп көру.
4. Hadoop платформасында ISODATA алгоритмін жүзеге асыру.
5. Тәжербелік зерттеулер жасау және алынған нәтежиелерге қорытынды жасау.
Практикалық мағанасы: MapReduce парадигмасын қолдану бейнені өңдеу кезіндегі алгоритмның уақытын айтарлықтай қысқартты. Біздің тәжірбелерімізде есептеулер үлсетірмелі есептеулерге арналған Hadoop платформасында, MapReduce парадигмасын қолданып есептелінді. Hadoop платформасын қолдану бізге есептің есеплеуінің маштабын өзгертуге мүмкіндік берді, бірнеше есептеуіш түйндерде есептелуін қамтамасыз етті.
Жасалған тәжірбелерден үлестірмелі есептеулер есептеу жылдамдығын, түйндер санын көбейту арқылы сызықты түрде жылдамдатуға қол жеткізуге болады. Тағыда жасалған тәжірбелерден жай компьютерлерді қолданып, Hadoop платформасында үлкен көлемді деректерді өңдеуге тиімді екенін көреміз.

1 ЖЕРДІ ҚАШЫҚТАН ЗОНДТАУ ЖӘНЕ ГИПЕРСПЕКТРАЛЬДІ БЕЙНЕЛЕРДІ ӨҢДЕУ АЛГОРИТМДЕРІ

1.1 Жерді қашықтықтан зондтау

Соңғы он жылдықтарда жер беті жақта орналасқан объектiлердi дистанциялық зерттеуде үлкен табысқа ие болғанның бiрi тар спектрлiк ауқымдарды үлкен санды түрде ЖАЗ мәлiметтер алуға рұқсат беретiн көрсеткiштерiнiң жасауы болып табылады. Мәлiметтерлерiн гиперспектральды талдау туралы ақпаратты алшақ зерттелетiн объект толығырақ алуға рұқсат бередi. Гиперспектральды сурет қазiргi уақытта зерделеу үшiн және жердің бет жағынындағы объектiлерді картирлеу үшін белсене пайдаланылады. Мысалы: iздестiру үшiн және (органикалық заттың ылғалдық, ұстауы, тұздалу), туған жерлерiнiң картаға түсiруi, шөптесiндiк жамылқтың күйiн анықтау және тағы басқалар. Гиперспектральды мәлiметтермен жұмыс кезінде қуатты компьютерлер ғана емес, жаңа суреттердiң жаңа спектрлiк рұқсат та қажеттi жұмыс iстеуге рұқсат берген бағдарламалық қамтамасыз ету. ENVI программалық кешені гиперспектральді бейнелердiң және мультиспектрлiк талдауда лидер болғанын бүкiл әлемде мойындады [1-2].
Әдетте арналарды түсті синтез жасағанда үш спектрлiк аймақ ғана пайдаланылады. Спектрлiк арналардың көптiк тiркесiмдері объектiлердің әр түрлi түрлерiнің шифрын анықтауға және оларды үлкейтуге көмектеседi, дегенмен гиперспектральді суреттiң жүздiк спектрлiк аймақтарын көзге елестету өте қиын, сондықтан мұндай мәлiметтерлердi көрсету үшiн гиперспектральді текше пайдаланылады 1.1 суретте көрсетілген.
Қазiргi уақытта ЖАЗ суреттердi өңдеу және талдау үшiн игерiлген арнаулы программалық кешендер бар. Мысалдардың бiрi ENVI программалық кешендi болып табылады.

1.1-Сурет. Гиперспектральді кубтың үлгісі
Бұл алгоритмдердің көпшiлiгін мультиспектрлiк суреттермен жұмыс үшiн пайдалануға болады, кейбір шектелген түрде болсада.

1.2 ISODATA кластерлеудiң алгоритмі туралы

ISODATA алгоритімда негiзгi рәсiм орталықтарды теруден туған ең төменгi дистанциялық бөлiктеу болып табылады. Кластар саны алдын ала белгiлі емес, жiктеу барысында анықталады. Ол үшiн параметрлерiмен сипаттама класаралық реттелетiн қосалқы эвристикалық процедурлер қатарды және жiктеу iрiктеменiң тап iшiнде құрылымы кезеңде пайдаланады. [1].
Кластерлер санының өзгерiсiнiң негiзгi рәсiмдерiн қарап шығамыз.
1. Кластерлердi жою. Егер кластер (ISODATA алгоритмның q1 - параметрi) Xiq1 элементтерiнде ic-ден аз болса болса, ал кластерлердiң орталарының тiзiмiнен кластер центірі өшіріледі, яғни оның элементтерi басқа кластерлер бойымен үлестiредi.
2. Кластерлердi бөлу. Егер i дисперсия - болса Diq2-лер болса, егер элементтердiң кластердiң ортасынан шашылу әжептәуiр үлкен болса, онда i -шi кластер екi кластерде бөлiнедi:

Dik=1Xixj∈Xixjk-cik2,k=1,...n.
Ары қарай l-ші құрауыш алынып,осыған қарай DilDis кезіндегі, барлық s!=l,болғанда i-ші кластер l құрауышы бойынша бөлінеді. Осымен бірге кластердің центрлері қайта саналады c′ және c′′.
3. Кластерлердiң араласып кетуі. Егер екi кластерлердiң орталарының арасындағы қашықтық әжептәуiр аз болса, онда бұл кластерлер бiр кластерге топтастыру керек. Бұл рәсiмдi өткiзу үшiн екi кластерлердiң орталарының арасындағы қашықтықты есептейдi:
lij=ci-cj барлық i!=j үшін .
Егер lijq3 көрсетсе, онда кластер Xi және Xj топтастыру керек. Жаңа кластердiң ортасы формула бойымен есептейдi

c=ciXi+cjXjXi+Xj.
ISODATA алгоритмінде кластерлердiң санын реттейтiн тағыда басқа рәсiмдер болады. {x1, x2, ..., xN},терумен жұмыстың жасағанда , ISODATA N элемент жасалынған алгоритм x_N келесi негiзгi қадамдарды орындайды.
1-қадам. Кластерлеудiң процессін анықтайтын параметрлері беріледі:
К - кластердің керек саны;
QN - кластер iшiне кiретiн бейнелердi санмен теңестіретін параметр;
Qs - орташа квадраттық ауытқуды сипаттайтын параметр;
Qc - ықшамдылықты сипаттайтын параметр;
L - топтастыруға болатын кластерлердiң орталарының ең жоғары саны;
I - итерация ықтимал циклдер саны.
2-қадам. Берiлген N бейнелер кластерлер бойынша жiктеледi
𝑥∈𝑆𝑗, егер х - zj х - zi, i=1, 2, ...,Nc; 𝑖!=𝑗
3-қадам. Құрамына QN өйткенi элементтер кем кiрген бейнелердi көп астында жоғалтылады. егер j үшiн кейбiр Nj QN шартты орындаса, онда Sj iшкi жиын қарастырудан шығарады және Nc мағынаны 1-ге азаяды.
4-қадам. zj, j=1, 2, ..., Nc әр кластердiң ортасы,оны теңестiру арқылы таратпайды және Sj көп астында бойымен тиiстi табылған iшiнара орташа түзетiледi. Nj - Sj көп кiретiн объектiлердi санына кіреді.

zi=1N1x∊Sjx, j=1,2,..., Nc
5-қадам. Sj көп кiрушi объектiлердiң арасындағы Dj орта қашықтықты есептейдi, және формула бойымен тиiстi кластердiң ортасымен есептейді
Dj=1Njx∊Sjx-zj, j=1,2,..., Nc.
6-қадам. Объектiлердiң арасындағы жеке кластерлерде орналасқан, және тиiстi кластерлердiң орталарының формула бойымен қорытылған орта қашықтықты есептейдi
D=1Nj=1NcNjDj
7-қадам. (а) Егер итерацияның ағымдағы айналымы - соңғы болса, онда Qc=0 қояды ; 11-ші қадамға өтеді.(б) Егер Nc=К2-шi шартты орындаса, онда 8-шi қадамға өтеді.(в) Егер итерацияның ағымдағы айналымы жұп реттiк нөмiрге ие болса немесе Nc=2K шартты орындаса, онда 11-ші қадамға өтеді; итерацияның процесi басқа жағдайда жалғасады.
8-қадам. Ара қатынастың көмегiмен әр iшiнара бейнелердi iшкi жиын үшiн
орташа квадраттық ауытқудың векторын есептейдi σj=(σ1j, σ2j, ..., σnj)' п бұл бейненiң өлшемдiгi
σij=1Njx∊Sjxik-zij, i=1,2,...,n;j=1,2,..., Nc
xik,, k объектiнiң Sj iшкi жиында i -шi құрауышы, zij бұл i -шi zj кластердiң орта таныстыратын вектор құраушы, және Sj iшкi жиын қосылған iшiнара бейнелердi Nj - сан орташа квадраттық ауытқу әр вектор құраушы басты координаталар осьтардың бiрi бойымен Sj iшкi жиын кiресiн бейне орташа квадраттық ауытқуды мiнездейдi.
9-қадам. J=1 орташа квадраттық ауытқу әр векторда, σj, j=1, 2, ..., Nc, ең жоғары құрамдас бөлiк iзделеді σimax.
10-қадам. Егеркез-келген σimax, j=1, 2, ..., Nc, шарты орындалады σjmaxθs, және
а) DjD и Nj2(θN+1)
немесе
б) Nc=K2,

болса онда кластер zj центрімен сәйкесінше zj+ және zj- жаңа екі кластерге бөлінеді, кластер zj центрімен жойылады, ал Nc мәні бірге көбейеді. zj, тиiстi ең жоғары вектор құраушыны кластердiң орта zj+вектор құраушыға анықтамасы үшiн, берiлген шаманы ұзартылады σj ; zj- кластердiң ортасы - бұл шаманы шегерумен анықталады γjzj вектор құраушы соның өзiненiң. қойсын kσjmax 0k=1. Негiзгi сол таңдауда негiзге алу керек, үшiн кластерлеу жалпы құрылымды айтарлықтай өзгертпедi, бiрақ әжептәуiр аз, үшiн шама оны жаңа екi кластерлердiң орталарына кез келген бейнеден дейiн қашықтықтарындағын айырмашылықтың ажыратуы үшiн әжептәуiр үлкен болды.
Егер ыдырау бұл қадамда болса, керек қадамға 2 өтсiн, басқа жағдайда алгоритмның орындауын жалғастыру.
11-қадам. Кластерлердiң орталары арасындағы Dij қашықтығы барлық жұпты есептейдi:
Dij = zi - zj , i=1, 2, ..., Nc-1; j = i+1, 2, ..., Nc.
12-қадам. Dij қашықтық параметрiмен теңеседi. Сол L кем көрсететiн қашықтықтар, өсудiң ретi бойынша тұрғызады және
Di1j1 Di2j2 ... DiLjL,
Келесi адым кластерлердi араласып кетудiң процесiн жүзеге асырады.
[Di1j1, Di2j2, ..., DiLjL,]
13-қадам. Әр анықталған центірлері zil және zjl болатын кластер жұбы үшін Diljl қашықтығы есептелінеді. Тiзбекте бұл жұптарға, центрлердiң арақашықтықтың тиiстi көбеюiне, келесi ереженi негiзі iске асатыны араласып кету iс ретiн қолданылылады.
Кластерлер zil орталарымен және zjl, i = 1, 2, ..., L, (араласып кетудiң итерация iс ретi ағымдағы циклiнде не шарт кезiнде қолданылылмады не бұданға, не басқа кластерге) бiрiгедi
zi*=1Nil+NjlNilzil+Njlzjl
zil және zjl кластер центрлері жойылады, және Nc мәні бірге кемиді.
Белгiлеймiз, кластерлерiн ғана жұп бойынша араласып кетуi рұқсат берген және кластердiң алынған нәтижесiнiң ортасы, бiрлестiрiлетiн кластерлерiнiң орта алынатын позициялардан сүйене және алынған iшiнара бейнелердi тиiстi кластерде сан анықталатын таразымен есеп айырысады.
Тәжiрибе кластерлердi бiрiктiру пайдалану күрделi процедурден астам қанағаттанарлықсыз нәтижелердi алуға мүмкiн әкелетiнiн туралы куәландырады. Суреттеп айтылған iс ретi бейнелердiң шынайы орташа қотарылатын iшкi жиын таныстыратын нүкте бiрiккен кластерiн ортаның сапасында таңдауды қамтамасыз етедi. Маңызды да көздегенi болу, себебi араласып кетудiң iс ретiн әр кластердiң ортасына осы қадамның бiр ғана, өткiзуi қолдануға болады не жағдайлар какихтың жанында L бiрiккен кластерлерiн алуға мүмкiн әкелу.
14-қадам. Егер итерацияның ағымдағы айналымы - соңғы болса, онда алгоритм орындауын тоқтатады. Егер қолданушының ұйғарымы бойымен кластерлеудiң процесс анықтайтын параметрлердiң қайсы бiр айырбастаса, басқа жағдайда кайту керек немесе 1-қадамға өтеді, немесе 2-ші қадамға, егер процестiң параметрлер итерацияның кезектi айналымында өзгерiссiз қалуы керек болса. Итерацияның циклын аяқтау 1-шi немесе 2-ші қадамға өткенде есептейдi.

1.2-Сурет. ISODATA алгоритмінің жұмыс істеу үлгісі

2 ЖЕРДІ ҚАШЫҚТАН ЗОНДТАУ ҮШІН MAPREDUCE ПАРАДИГМАСЫ

2.1 Жердiң дистанциялық қашықтығын барлап байқауы үшiн
MapReduce мүмкiндiгiн қолдану

Ғылыми зерттеулердi жүргiзудiң нәтижесiнде қазiргi дәрiгерлiк сканирлейтiн жабдықпен, физикалық эксперименттермен астрономиялық бақылаулар, жұмыс кескiндi жиi жасаған мұндай сияқты. Бұл кескiндер одан әрi түсiндiру үшiн компьютер өңдеуiне содан соң ұшырайды және ғылыми нәтижелердi алу. Қазiргi әлемдiк деңгейде зерттеулердi жүргiзуде мүмкiн жүз-жүздеп өлшенген кескiндердi үлкен көлем қалыптасады, және гигабайттың мыңдарымен. Мұндай көлемдердi тиiмдi өңдеу ғана қатарлас есептеуiш жүйелерге мүмкiн.
Қазіргі таңда әйгілі параллелді архитектуралар үлкен көлемді декектерді және бейнені өңдеуге жақсы келмейді. MPI пайдаланумен хабар берудiң негiзiнде қатарлас програмдарды әзiрлеуге тәсiл қолданылатын iс жүзiнде барлық жерде биiк күрделiлiкке ие болады және артық көбiнесе болып көрiнедi, өйткенi әдеттегiдей кескiн, бiр-бiрiнен тәуелсiз жұмыстана алады. Қатарлас есептеуiш жүйе қолданылатын сақтау жүйе биiк құндар ерекшеленедi, бiрақ бұл ретте жеткiлiктi өнiмдiлiктерге жиi ие болмайды.
Архитектураның әзiрлеуi және аталған кемшiлiктердi жоюдың есептеуiмен үлкен масштабпен қатарлас есептеуiш жүйелерге кескiндердiң үлкен көлемдерiн өңдеу үшiн программалық құралдар өзектi мiндеттi болып көрiнедi. Бiртiндеп программаны автоматты параллельдеудiң мүмкiндiгi бұл мұндай архитектурасына негiзгi талаптар - және серверлердiң iшкi дисктерiне деректерлердi сақтау үшiн таралған файл жүйесi.

2.1-Сурет. MapReduce парадигмасының екі қадамнан тұратындығы көрсетілген.

Қатарлас программалаудың технологиясын таңдау. Қатарлас программалаудың технологиясын таңдауда келесi талаптарды ескеру керек:
:: әр бейненi өңдеу немесе бейнелердi тобы бiр-бiрiнен тәуелсiз болуы керек;
:: таралған файл жүйесiнiң қолдауы;
:: бiртiндеп бағдарламаны автоматты қатарластыру;
:: үйреншiктi архитектураның серверлерiнен кластерiндегi жұмысты қолдауы.
Талаптары есептеуiмен қатарлас программалауының әйгiлi технологияларын салыстыру аталған жоғары 1 кестеде келтірілген.

1-Кесте. MPI, OpenMP және MapReduce технологияларын салыстыру

MPI
OpenMP
MapReduce
Автоматты түрде үлестіру
Жоқ
Бар (компилятордың директивасы)
Бар
Архитектурасы жабдықтың
SMP, кластер, MPP
SMP
SMP, кластер
Үлестірілген файлдық жүйе
Жоқ
Жоқ
Бар
Жабдықтың iстен шығуларын нәтижеде қалпына келтiрудiң тетiктерi
Жоқ
Жоқ
Бар
Алгоритм
Кез-келген
Кез-келген
MapReduce

Кесте талдаудың негiзiнде бейнелердi өңдеу үшiн MapReduce технологияны жақсы барлығы жақындағанын қорытынды шығаруға болады. MapReduce таралған файл жүйесiн қосады. Технологияның маңызды шектеуi алгоритм MapReduce тәуелсiз есептерді қатарлас орындау бағдарлалған қолдау дұрыс емес болып көрiнедi. Дегенмен бейне немесе бейнелердi тобын тәуелсiз өңдеуге болады, сондықтан MapReduce қолдану мүмкiндігін ақтай алады [3-4].
ISODATA технология MapReduce негiзделген кластерлеуге алгоритмның қатарлас өткiзуiн негiзгi ой функция Map ең жақын кластерге дейiн әр пиксельдiң жiктеуiнде қосылады және функция Reduce жаңа кластер орталықтарын есептеу [5-6].
Кiретiн мәлiметтерде кiлт пайдалы ақпаратты алып жүрмейдi, бiрақ кiретiн мәлiметтердi құрылымға, әр пиксельдiң мағынасына сәйкес оның керекті R, G, B мағынадан тұратын жолы болады. Map функция кластер орталықтарын мағыналары бар пиксель алдымен мағынаны теңестiредi, ал кластер орталығына қай пиксель жақынырақ барлығы орналастырған содан соң анықтайды.
Map function Input:
(global object, in_key, in_value), global object contains the initial clustering centers, in_key has no usefulness, in_value is a string like (pixel_id, R, G, B). Output: (out_key, out_value), out_key is a string represents a clustering center, out_value is a same string as in_value.
1: construct initial clustering centers Array from global object;
2: labPixel = parseString ( in_value );
3: minDistance = MAX_VALUE;
4:initial_array_subscript = -1;
5: for (j = 0; j Array.length; ++j) {
6: dist = cal_dist_labpixel_to_centers(labPix el, Array[j]);
if (dist minDistance) { minDistance = dist; initial_array_subscript = j; } }
7: out_key = Array[initial_array_subscript];
8: out_value = in_value;
9: writeToHDFS(out_key,out_value);
10: output(out_key,out_value);
11: End;
1-қадамнан 4-қадамға дейiн - бұл ауыспалы инициализация, 6-шы қадам бастапқы кластер орталықтарының пиксель кiру нүктесiнің бiрiне дейiн қашықтықты есептейдi. 7-шi қадам циклда аяқтаудан кейiн және 8-шi қадам пиксел нүктесi жатқан кластер орталығын анықтайды. 9-қадамда және 10- қадамда HDFS шығыс файл жүйесiне кілтмән жұп бөлек жазады.
Reduce функциясы: Бұл функция Map функциясынан алынған барлық кілтмән жұптарын құрайды. Бір және сол кілтке ие барлық кілтмән жұптары итераторда сақталады. Reduce функциясы сол кілттің орташа мәнін есептейді, бірақ барлық ортақ әдіске ие болатын мәнді қосады, жаппай есептеу шартында толуға әкеп соғады. Сондықтан формула бойынша жаңа орташа мәнді есептейтін стратегия қолданылады:
mk' = mk + [Pi - mk] (Nk + 1) (1)
Nk мәні ағымдағы кілтмән жұбын білдіреді. Pi пиксельді нүктенің келесі мәнін білдіреді. [Pi - mk] Pi арасындағы айырмашылықты білдіреді және mk. mk' жаңа орташа мәнді білдіреді.
Reduce функциясының псевдо-коды төменде көрсетілген:
Reduce function Input: (in_key, in_value), in_key is a string represents a clustering center, in_value is a string like (pixel_id, R, G, B).
Output: (out_key, out_ value), out_key is a string represents the number of values which have the same key in iterator, out_value is a string represents a new clustering center after adjustment.
1: set the initial value of counter to 0;
2: set temp_ave like (null,null,null,null);
3: while(in_key.hasNext()) {
4: temp_ave=temp_ave+abs(in_value.Next () - temp_ave)(counter + 1);
++counter; }
5: out_key = counter.ToString();
6: out_value = temp_ave;
7: output(out_key,out_value);
8: End;
От 1-қадамнан до 3-қадамға дейін ауыспалы инициализациясы анықталған, 4-қадам жаңа орташа мәнді реттеп, итератор бос қалғанша жаңа орташа мәнді есептейді. Цикл аяқталғаннан кейін 5-қадам мен 6-қадам шығыс кілттері мен мәндерін анықтайды. 7-қадам кілтмән шығыс жұптарын шығарушы коллекторға жазады.

3 HADOOP АРХИТЕКТУРА

3.1 TaskTracker және JobTracker

Hadoop MapReduce master-worker архитектурасын қолданады ,мұнда master - (JobTracker) басқаратын процесстің жалғыз экземпляры. Worker-процесстер - бұл DataNode-та орындалатын көптеген TaskTracker процесстердің орындалуы.
JobTracker және TaskTracker HDFS деңгейінің сақталуында жатыр,сонымен қатар келесі заңдылықтарға сәйкес іске асады:
* JobTracker экземпляры HDFS - те NameNode-түйінінде орындалады;
* TaskTracker экземпляры DataNode-түйінінде орындалады;
TaskTracker мәліметтер жақын принципімен орындалады,яғни TaskTracker процесі DataNode түйінімен топологиялық максималды жақын түрде орналасады.
JobTracker MapReduce қосымшасы орындалатын жалғыз түйән болып табылады.
JobTracker келесідей функцияларды атқарады:
* DataNode-қа қатысты жеке map және reduce тапсырмаларды жобалау;
* тапсырмалар координациясы;
* тапсырмаларды орындау маниторингі;
* TaskTracker - дегі сәтсіз аяқталған түйіндерге тапсырма беру .
TaskTracker келесідей функцияларды атқарады:
* map және reduce-тапсырмаларды орындау;
* тапсырмалардың орындалуын басқару;
* JobTracker түйініне тапсырма статусы және жұмыстың аяқталуы туралы хабарлама жіберу;
* JobTracker түйініне диагностикалық heartbeat-хабарламалар жіберу.

3.1- Сурет. Басты түйін мен бағынышты түйіндердің жұмыс істеуі

3.2 MapReduce-Hadoop технологиясы және оның HDFS файлдық жүйесі

Hadoop - бұл үлкен көлемді мәлiметтердi өңдейтін қосымшаларды iске қосуы үшiн қолайлы ашық бастапқы кодты қаңқа. Анықталған есептеулерi - бұл кең және көп қырлы облыс, бiрақ Hadoop-та маңызды айырмашылықтармен ерекшеленеді, атап айтқанда:
Қол жетiмдiлiк - Hadoop стандартты компьютерлерден құралған немесе есептеуiш бұлттан құралған үлкен кластерлерде жұмыс жасайды мысалы,Amazon (EC2 ) компаниясы ұсынған Elastic Compute Cloud қызмет базасында
Сенiмдiлiк - Hadoop үйреншiктi жабдықта жұмыс істеуі керек, оның архитектурасы жұмыс iстеуi жиi iстен шығарылатын мүмкiндiктердің есептелуiмен жасалған.
Масштабталу - Hadoop сызықты масштаб жасайды яғни, мәлiметтерлердiң көлемi көбейгенде кластерге жаңа түйiндер қосу жеткілікті.
Қарапайымдылық - Hadoop қолданушыға тиiмдi үлестірілген кодты тез жасауға рұқсат бередi.

3.2-Сурет. HDFS файылдық жүйесіндегі деректердің орналасуының үлгісі.

3.3 Hadoop пайдалану арқылы бизнес - пайданы қалай анықтауға болады

Иiлгiштiк - жiктелген және мәлiметтердiң құрылым жасалмаған түрлерiн сақтау және талдау;
Тиiмдiлiк - салыстырғанда бол шешiмдердi мәлiметтерлердi терабайттың жағдайлардың көпшiлiгiнде аласарақ құн;
Кластердiң жасауының төмен құны - Hadoop жасау үшiн - кластер қымбат серверлiк аппараттық қамтамасыз етуді талап етпейдi.
Бейiмделудiң салыстырмалы жеңiлдiгi - Hadoop кең және белсенді дамитын экожүйеге ие
Open Source лицензиялау: енгiзудiң төмен құны және Hadoop тұғырдың иелiгi, үлкен developer community.
3.3-суретте қолданушы Hadoop кластерімен әрекеттесетіні көрсетілген. Hadoop кластері өзінің желіге біріктірілген стандартты компьютерлерінің жиынтығын ұсынады, физикалық тұрғыда бір жерде орналасқан. Сақтау сияқты, деректерді өңдеу де осы бұлттар машинасының ішінде орындалады. Әр түрлі қолданушылар Hadoop кластеріне есептеу тапсырмаларды жібереді, мысалы өздерінің кластерден алыс орналасқан үстел компьютерлерінен.

3.3-Сурет. Hadoop кластері

3.4 HDFS файлдық жүйенің құрылымы мен концепциясы

Hadoop Distributed File System (HDFS) - қосымшалардың деректеріне жоғары жылдамдықта қатынауды қамтамасыз ететін үлестірілген файлдық жүйе болып табылады.
HDFS иерархиялық файлдық жүйе болып табылады. Олай болса, HDFS-та каталогтарға салу қолдауы болады. Каталогта файл болуы да, болмауы да мүмкін, сонымен қатар ішкі каталогтардың кез келген саны болады.

3.4-Сурет. HDFS файлдық жүйенің құрылымы

4 HDFS ФАЙЛДЫҚ ЖҮЙЕНІҢ КОМПОНЕТТЕРІ МЕН ШЕКТЕУЛЕРІ

4.1 HDFS келесідей міндетті компоненттерден тұрады

* Есімдердің түйіні (NameNode) - берілген машинада HDFS экземплярын орындайтын және файл деңгейінің операциясына (метамәліметтермен жұмысын) жауап беретін программалық код;
* Мәліметтер түйіні (DataNode) - берілген машинада HDFS экземплярын орындайтын және файл деңгейінің операциясына (блоктар мәліметтерімен жұмысын) жауап беретін программалық код.
* Hadoop NameNode типінің жалғыз түйінін және DataNode типінің ерікті сандар түйінін құрайды.
HDFS жобалау кезіндегі кепілге алынған негізгі концепциялар, және осы концепциялардың өңдеуіне қолданылған архитектуралық шешімдер төменде келтірілген.

4.1-Сурет. HDFS файылдық жүйесінде NameNode пен DataNote демондарының жұмыс істеу үлгісі.

4.2 Мәліметтер көлемі.

HDFS сақталатын мәлiметтерлердiң көлемге шектеулерi қол жетерлiк көзге жететiн болашаққа алуы керек. HDFS файлдарды блокты сақтайды. HDFS блок есептеуiш кластердiң мәлiметтерлерi түйiндердiң арасындағы бөлiп берген. Барлық блок бiрдей өлшемге ие (файлдың соңғы блогiнен басқа) блок одан басқа бiрнеше түйiндерге орналастырылуы мүмкiн.

4.3 Тоқтамаушылық.

HDFS мәлiметтерлердiң істен шығуын қалыпты жағдай ретінде қарастырады, (және, шынымен, шығу ықтималдық ең болмаса мыңнан бiр түйiн тiптi сенiмдi физикалық жабдықта маңызды) . Екiншi түйiннiң көмегi бар атаулармен метамәлiметтерiн көшiруi.

4.4 Диагностика.

Hadoop түйiндердiң жарамдылығын диагностикасы - кластер қосымша әкiмшiлiк талап етуiді талап етпеуі керек. Архитектуралық шешiмдер: Мәлiметтерлердiң әр түйiні диагностикалық хабарламаларды белгiлi уақыт интервалдары арқылы түйiн атауына
Атап айтқанда бұл арналар таралған орталарда осал жердi жиiрек барлығы болып көрiнедi деректерлердi жiберудiң арналарына жүктеме азайтсын, сонымен бiрге қатты дисктерде орынды ұтымдырақ пайдалан деректерлердi қысу рұқсат еттi.

4.5 HDFS клиенттері.

Түйiндердiң өзара iс-әрекетi ие болған, мәлiметтерлердiң түйiндерi және клиент TCPIP хаттама негiздейтiн хаттамалар бойымен жүзеге асырылады. NameNode түйiнiмен клиенттiң өзара iс-әрекетi ClientProtocol хаттама бойымен болады. DataNode түйiн DataNode түйiнмен, DataNode Protocol хаттаманы пайдалана өзара әрекет етедi. Және ClientProtocol, және DataNode Protocol (RPC ) Remote Procedure Call ораған. NameNode түйiн ол шақыру RPC - ғана ешқашан аты-жөнiн көрсетпестен RPC жауап бередi - DataNode түйiндерiнiң және клиенттер шақырулары.

4.6 Файлдық операциялар мен репликациялар.

HDFS файлдық жүйесіндегі операциялар локальды файлдық жүйесіне ұқсас болып келеді тек модификация файлы HDFS-те архитектуралық ерекшеліктерңне байланысты жұмыс істемейді. Барлық файлдық операциялар үшін NameNode түйіні жауап береді. Кейбір файлдармен операцияларға DataNode түйiнінің жауапкершiлiгiнің аймағында болады.
Қызықты архитектуралық шешiмдер файлдарды жасау үшiн табылған.Бастапқы клиент (немесе тұрақты - оның iсi) уақытша қоймада ақпаратты жазып алу үшiн қажеттi жерлерді бүркемелейдi. HDFS ақпарат көлемі, клиент блогінің өлшемiн шамаланғаннан кейін клиент NameNode түйiнге файлдың жасауына сауал жiбередi, опциялы, жасалынатын файл үшiн блоктiң өлшемi және репликалардың саны көрсетіледі. NameNode түйiні клиент, мәлiметтердi түйiннiң идентификаторына жауапқа жiберiлiп және жазба хабар алатын тағайындаудың блогiна жауап бередi. NameNode түйiні DataNode басқа түйiндердi файл блогiнiң репликасы жазғанын хабарлайды. DataNode, қабылдайтын түйiн түйiнге файлдық ағынды берудi бастағаннан кейiн репликаның басқа түйiндерiне файл блогiнiң автоматты ретрансляциясын бастайды. Файл блогiнiң жазбасын аяқталуы түйiннiң журналында белгiленеді. Файл блогiнiң екiншi репликасы басқа түйiнде сақталады, ал үшiншiсі - басқа табанда орналасқан түйiнде. Келесi репликалардың орналастырылуын ретсіз есептейдi.Егер NameNode түйiні DataNode түйiнінен heartbeat - хабарлама қабылдамаса, онда атаулар түйiнi DataNode түйiнін бұл белгiге өлген деп белгілеп және мәлiметтерді тазалайды.

4.7 HDFS шектеулері.

HDFS файлдық жүйесі келесі шектеулерге ие:
* NameNode түйiнінің атауы iстен шығудың бiр ғана нүктесi болып табылады.
* Secondary NameNode толық репликация жоқтығы.
* Қысқалықты жазып бiтiру немесе HDFS файлдар жазбасы үшiн ашық қалдыру.
* Мәлiметтерлердiң реляциялық үлгiлерi қолдаудың жоқтығы.
* Мәлiметтерлердi сiлтеме бүтiндiктiң қолдауы үшiн құралдардың жоқтығы.
* Мәлiметтерлердi төмен қорқалуы

5 ҚАЖЕТТІ БАҒДАРЛАМАЛАРДЫ ОРНАТУ

5.1 Linux Ubuntu 11.10 операциялық жүйесін орнату

Алдымен мен LinuxUbuntu 11.10 операциялық жүйесін орнаттым, содан соң usrlocal архив hadoop каталогына көшіріп , оны архивтан шығарып және қолжітімділіктің құқығын анықтадым. (hadoop-master$ sudochmod 777 - Rhadoop)

5.1- Сурет. Ssh-та тексеру

Егер де жауапта қателік деген жауап қайтарылса, мына мысал сияқты: usrbinwhich: nosshin (usrbin:bin:usrsbin...
Бұл жағдайда менеджер пакеті көмегімен OpenSSH-ты (www.openssh.com) орнату керек немесе терминалда арнайы командаларды теру арқылы көрсету керек.
RSA кілтін генерациялау үшін ,SSH-тың барлық кластерлер түйіндерінде орнатылғанын толық білген соң , sshkeygen командасын бас түйінде қолданамыз. Парольді түйінге қоймаған жөн, себебі ол парольді әр кірген сайын сұрайтын болады және оны қайта-қайта қолмен жазу керек болады және бас түйін басқа жұмыс түйіндерге ұсынады.

5.2- Сурет. RSA кілтін генерациялау

Жаңа құрылған ашық кілт түрі мынадай болады:

5.3- Сурет. Жаңа құрылған ашық кілт

Жүйеге кірердегі тексеру мүмкіншілігі және ашық кілттің таралуы.
Мына команданың көмегімен басты түйіннен басқа жұмыс түйіндерге көшіруге болады.
Math121-11$ scp ~.sshid_rsa.pub 10.1.16.141: ~master_key
Ip адрестің орнына компьютер атын жазуға болады.
Енді көшірілген кілтті басты авторизациялық кілт қылу керек.(немесе авторизациялық кілт тізіміне қосу керек,егер де ең басында басқа кілттер анықталған болса):
[hadoop-user@target]$ mkdir ~.ssh
[hadoop-user@target]$ chmod 700 ~.ssh
[hadoop-user@target]$ mv ~master_key ~.sshauthorized_keys
[hadoop-user@target]$ chmod 600 ~.sshauthorized_keys
Кілт көшірілгеннен кейін және генерациядан кейін конфигурацияның дұрыстығын тексеруге болады және басты түйін арқылы кіресін:
Math121-11$ ssh 10.1.16.141
Басты түйін келесі рет терминалға кіруде сұрақтар қоймайды,егер толық түйін расталса.
Барлық түйіндерге Java-ны орнаттым,оларды пакеттер менеджері көмегімен орнатуға болады. Барлық түйіндерге Java-ны орнатқан соң,олардың мекенжайын бердім. usrlocalhadoopconf каталогында жатқан файл hadoop-env.sh

5.4- Сурет. Java каталогына сілтеп тұрған JAVA_HOME мағынасын көрсету.

5.5- Сурет. Java каталогына сілтеп тұрған JAVA_HOME мағынасын көрсеттім.

Core-site.xml

5.6- Сурет. Конфигурациялық файлды орнаттым.

5.7- Сурет. Mapred-site.xml

Hdfs-site.xml

5.8- Сурет.

Masters және Slaves фаилдарын қалпына келтірдім.

5.9- Сурет. Mastersфайлы

localhost-ты басты түйін атына өзгерттім.

5.10- Сурет. localhost-ты басты түйін атына өзгерту.

Slavesфайлы былай болды

5.11- Сурет. Slaves файлы

localhost-ты жұмыс түйіндер атына өзгерттім.

Сурет 5.12 localhost-ты жұмыс түйіндер атына өзгертту

"etc" каталогындағы Hosts файлының өзгертілуі Hosts файлы былай болды

5.13- Сурет. Hosts файлы

Содан соң барлығының ip адресін және түйін аттарын жаздым.

5.14- Сурет. Іp адресін және түйін аттарын жазу

Hadoop-ты мына команда көмегімен жойып,қайтадан жібердім.
* Жою үшін:[hadoop_master]: hadoop_home $ binhadoop namenode - format
* Жіберу үшін: :[hadoop_master]: hadoop_home $ binstart-all.sh
WordCount есебін платформадағы мысалдардан алып жібердім, содан соң тестіледім.
Мына кодта Map функциясы көрсетілген:

5.15- Сурет. Map функциясы

Ал Мына кодта Reduce функциясы көрсетілген:

5.16- Сурет. Reduce функциясы

6 ISODATA алгоритмі

6.1 ISODATA үлестірілген алгоритмін кластеризация тапсырмасын шешу үшін қолдану

Берілген бөлімде қолдануда өте оңай программалаудың параллельді моделі MapReduce-ке негізделген ISODATA параллель алгоритмінің кластеризациясы жобаланады. Алгоритм негізінен MapReduce технологиясының рамкасымен анықталатын екі этапқа бөлінеді. Тәжірибенің нәтижесі болжанатын алгоритм масштабталуға ие болуын және есептеу уақытын түйіндер санының өсу есебінен қысқартатынын көрсетеді.

6.2 MapReduce парадигмасына келтірілген ISODATA ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Жерді қашықтан зондылау
Ақпараттық жүйе және ақпараттық технологияның электр қауіпсіздігін басқарудағы алатын орны және мәні
Жерді қашықтықтан зондтау әдістері
Жерді қашықтықтан түсіру
Деректерді қашықтан зондтау арқылы өңдеу
«PHOTOMOD» Сандық фотограмметриялық жүйе
Ғарыштан алынған ЖҚЗ фотографиялық әдістің жалпы принциптері
Жерді қашықтықтан зондлау әдістері
Жерді қашықтықтан зондтау түсіру әдістері
Геоақпарат жүйелері бойынша дәрістер
Пәндер