Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MapReduce базаны пайдалана отырып, RDFS OWL п...docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
218 Кб
Скачать
☆

3 Тапсырма өз міндеті id кодтау байт. Міндет id маркер өзіндік ретінде әрекет

бұл карта құрушының тағайындауға болады, онда ауқымын басталу нүктесін көрсетеді

сандар. Келесі 4 байт, бұл жергілікті санауыш мәнін жазады

түрлендіргіш енгізу әрбір үштік үшін арттырады. міндет ID комбинациясы және

Жергілікті қарсы Triple идентификаторы білдіреді бірегей нөмірі болып табылады.

Реттелуіне құнының соңғы байт біз ресурс ұстанымын кодтау

Атап айтқанда, үштік жылы.

Біз кіріс үштік Мысалы:

<С> <P> <O>.

түрлендіргіш ерік шығу үш луын

<С, triple_id + пән>

<P, triple_id + предикат>

<O, triple_id + нысан>

ресурстар азайту кезеңінде топтастырылған болады. Бірінші

редукторы ресурстарды әр бірегей нөмірін тағайындайды. Содан кейін ол Итерация

кілтімен байланысты құндылықтар астам және негізгі ретінде бар қойылуы шығарады

өту жалауы бастап алынған бір ресурсқа және мән ретінде тағайындалған саны.

идентификациясына міндет идентификаторымен, бұрынғыға қарағанда ұқсас жолмен тағайындалған

біз емес бұл тұрғыда соңғы 4 алғашқы 3 байт және жергілікті мән санауыш

бұл кіріс нөмірі өңделген болуы мүмкін, себебі салдары нөмірлерін тағайындау

редукторлар арқылы ауқымында қол жетімді сандар қарағанда кішірек болады. Алайда, бұл

Біріншіден, біз шығаруды қысудан көп қызықтырады, себебі: үлкен мәселе емес

жақсы және тиімді сөздік және екінші ғимарат қарағанда, біз шектеуге болады

мүмкіндігінше жақын ауқымын таңдау бөлімдер арасындағы алшақтық

Кетіргіш енгізуін нақты мөлшері тыс қалған аз ғана сандар бар, сондықтан. The

алгоритм алгоритм хабарлайды 2.

Page 32

MAPREDUCE функциялары ретінде 32CHAPTER 4. сөздік кодтау

Алгоритм 2 Сөздік кодтамасы: бірінші жұмыс

Картада (басты, мәні):

// Кілт: маңызды емес

// Мәні: N-үштік форматында үштік

Жергілікті қарсы = жергілікті есептегіш + 1

алғашқы 3 байт tripleid = тапсырма ID + жергілікті есептегіш

ресурстар [] = сплит (құны)

шығару. (ресурс [0], tripleid + пән) жинау

шығару. (ресурс [1], tripleid + предикат) жинау

шығару. (ресурс [2], tripleid + нысан) жинау

(кілтін итератора мәндерін) азайту:

// Мен 'кілт' ресурстың үшін бірегей ID тағайындау

Жергілікті қарсы = жергілікті есептегіш + 1

алғашқы 3 байт ресурс ID = тапсырма ID + жергілікті есептегіш

(құндылықтар құнының) үшін

шығыс (ресурстық ID, ИТҚ келесі)

өндірісінің луын ресурстар мен арасындағы қарым-қатынастарды қамтиды

үштік. біз екі нөмері ретінде ресурсқа қатынау ғана сәт

бер және мәтіндік сондықтан біз осында, редуктор тапсырманы орындау кезінде, сондай-ақ

қауымдастығын бар сөздік <нөмері құрылыс қамқорлық керек

бер, мәтін>. Сөздік MySQL жылы бөлінген хэш кестеде сақтауға болады

дерекқор немесе жай жекелеген файлдарда. Біз сөздік біз сақтауға келмесе,

олардың түпнұсқа форматында үштіктің кодтан мүмкін емес болады.

Екінші тапсырманы 4.4.3: үштіктің жазып

Бұл екінші тапсырма жеңіл және алдыңғысынан орындауға жылдам. The

түрлендіргіш алдыңғы жұмыс шығаруды оқиды және құны бар пернесін ауыстыра

және ол қор идентификаторы реттелуіне негізгі үштік идентификаторы ретінде және мән ретінде орнатады плюс

ресурс позиция.

Азайту кезеңінде үштік Triple себебі топтастырылған болады

ID реттелуіне негізгі болып табылады. редукторы жай құндылықтарды жылжиды және қалпына келтіру

қор идентификаторы мен жағдайы қамтылған ақпаратты пайдалана отырып, үштіктің.

Біздің іске асыру үштік бар Java объектісі сақталады

пән, предикат және ұзақ сандармен ұсынылған нысан. The

нысан, егер жазу үшін ресурстарды плюс бір байттан сақтау үшін кеңістік 24 байт алады

нысан мағынада немесе жоқ болып табылады. Бұл үштік бір дискіде сақтауға болады дегенді білдіреді

тек 25 байт бар. Үштіктің 800 млн, сондықтан қысылмаған бар

кодталған нұсқасы 150GB қажет қарсы сақталуы тиіс тек 19GB талап

Page 33

4.4. ТЕК MAPREDUCE ПАЙДАЛАНУ сөздік кодтау

33

Алгоритм 3 Сөздік кодтамасы: екінші тапсырма

Картада (басты, мәні):

// Негізгі: Ресурс идентификаторы

// Мәні: үштік ID + позиция

шығару. (мәні. tripleid, кілт + мәні. позиция) жинау

(кілтін итератора мәндерін) азайту:

(құндылықтар құнының) үшін

мәні болса. позиция = пән жоқ

пән = мәні. ресурс

мәні болса. лауазымы = предикат істеу

предикат = мәні. ресурс

позиция = objectnotliteral, егер

нысан = мәні. ресурс

жалған = objectliteral

позиция = objectliteral, егер

нысан = мәні. ресурс

шынайы = objectliteral

шығару (нөл,

Triple (тақырыбы, предикат, объектісі, objectliteral))

бастапқы форматта үштіктің сақтау үшін. Бұл негіздері тарылуына пайдалану

деңгейі шамамен 1: 8.

Жүктемені теңгеру болдырмау үшін кэшті пайдалану 4.4.4

бірінші жұмыс баяулатуы мүмкін жүктеуді теңдестіру проблемасын зардап шегуі мүмкін

есептеу. Белгілі бір ресурс өте танымал болса көптеген халықаралық болады

дәл сол пернеде және олардың барлық луын жіберген және өңделетін болады араағайындық

бір машинада орындалады бір редукторы міндет.

Бұл жүктеуді теңдестіру проблема біз тек Triple жіберу фактісі шектеледі

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]