Водич за стриминг стриминг - Анализа расположења користећи Апацхе Спарк



Овај Спарк Стреаминг блог ће вас упознати са Спарк Стреамингом, његовим карактеристикама и компонентама. Укључује пројекат анализе расположења користећи Твиттер.

Спарк Стреаминг је проширење основног Спарк АПИ-ја који омогућава скалабилну обраду токова података уживо са великом пропусношћу и толерантним грешкама. Спарк Стреаминг се може користити за струјање података уживо, а обрада се може догодити у реалном времену. Сталну корисничку базу Спарк Стреаминг-а чине имена домаћинстава попут Убер, Нетфлик и Пинтерест.

Када је реч о аналитици података у реалном времену, Спарк Стреаминг пружа јединствену платформу за унос података за брзу и живу обраду и доказује своју вештину у истом.Кроз овај блог упознаћу вас са овом новом узбудљивом доменом Спарк Стреаминг-а и проћи ћемо кроз комплетан случај употребе, Твиттер анализа расположења користећи Спарк Стреаминг.





Следе теме о којима ће бити речи на овом блогу:

  1. Шта је стриминг?
  2. Зашто Спарк Стреаминг?
  3. Спарк Стреаминг преглед
  4. Спарк Стреаминг карактеристике
  5. Основе стримског стриминга
    5.1 Контекст струјања
    5.2 ДСтреам
    5.3 Кеширање / истрајност
    5.4 Акумулатори, променљиве емитовања и контролне тачке
  6. Случај употребе - Твиттер анализа расположења

Шта је стриминг?

Пренос података је техника за пренос података, тако да се они могу обрађивати као сталан и непрекидан ток. Стреаминг технологије постају све важније са растом Интернета.



Шта је стреаминг - Спарк Стреаминг - ЕдурекаФигура: Шта је стриминг?

када ово користити. у јави

Зашто Спарк Стреаминг?

Спарк Стреаминг можемо користити за стримовање података у реалном времену из различитих извора као што су Твиттер, Берза и Географски системи и обављамо моћну аналитику како бисмо помогли предузећима.

Фигура: Зашто Спарк Стреаминг?



Спарк Стреаминг преглед

Спарк Стреаминг користи се за обраду података у реалном времену. То је користан додатак основном АПИ-ју Спарк. Спарк Стреаминг омогућава обраду токова података уживо са великом протоком и отпорним на грешке.

Фигура: Стреамови у Спарк Стреаминг-у

Основна јединица тока је ДСтреамшто је у основи низ РДД-ова за обраду података у реалном времену.

Спарк Стреаминг карактеристике

  1. Скалирање: Спарк Стреаминг се лако може скалирати на стотине чворова.
  2. Брзина: Ит ацхиевес мала латенција.
  3. Толеранција грешке: Спарк има способност да елековито се опоравити од неуспеха.
  4. Интеграција: Спарк се интегрише са шаржном и обрадом у реалном времену.
  5. Анализа пословања: Спарк Стреаминг је усед да прати понашање купаца које се може користити у пословној анализи.

Спарк Стреаминг Воркфлов

Ток рада Спарк Стреаминг има четири фазе на високом нивоу. Први је пренос података из различитих извора. Ови извори могу бити извори података као што су Акка, Кафка, Флуме, АВС или Паркет за струјање у реалном времену. Друга врста извора укључује ХБасе, МиСКЛ, ПостгреСКЛ, Еластиц Сеарцх, Монго ДБ и Цассандра за статички / батцх стреаминг. Једном када се то догоди, Спарк се може користити за извођење машинског учења на подацима путем свог МЛлиб АПИ-ја. Даље, Спарк СКЛ се користи за обављање даљих операција на овим подацима. Коначно, стриминг излаз се може сачувати у различитим системима за складиштење података као што су ХБасе, Цассандра, МемСКЛ, Кафка, Еластиц Сеарцх, ХДФС и локални систем датотека.

Фигура: Преглед Спарк Стреаминг-а

Основе стримског стриминга

  1. Контекст струјања
  2. ДСтреам
  3. Кеширање
  4. Акумулатори, променљиве емитовања и контролне тачке

Контекст струјања

Контекст струјања троши ток података у Спарк-у. Региструје се Унесите ДСтреам за производњу а Пријемник објект. То је главна улазна тачка за Спарк функционалност. Спарк пружа бројне подразумеване примене извора као што су Твиттер, Акка Ацтор и ЗероМК којима је могуће приступити из контекста.

Објекат СтреамингЦонтект може се креирати од објекта СпаркЦонтект. СпаркЦонтект представља везу са Спарк кластером и може се користити за креирање РДД-ова, акумулатора и променљивих емитовања на том кластеру.

импорт орг.апацхе.спарк._ импорт орг.апацхе.спарк.стреаминг._ вар ссц = нови СтреамингЦонтект (сц, секунде (1))

ДСтреам

Дискретни ток (ДСтреам) је основна апстракција коју пружа Спарк Стреаминг. То је континуирани ток података. Примљен је од извора података или обрађеног тока података генерисаног трансформацијом улазног тока.

Фигура: Издвајање речи из улазног ДСтреама

Интерно, ДСтреам је представљен континуираном серијом РДД-ова и сваки РДД садржи податке из одређеног интервала.

Улазни ДСтреамови: Улазни ДСтреамови су ДСтреамови који представљају ток улазних података примљених из извора струјања.

Фигура: Пријемник шаље податке на Инпут ДСтреам где свака серија садржи РДД-ове

Сваки улазни ДСтреам повезан је са објектом пријемника који прима податке из извора и чува их у Спарковој меморији за обраду.

Трансформације на ДСтреамс-у:

Свака операција примењена на ДСтреам-у преводи се на операције на основним РДД-овима. Трансформације омогућавају модификовање података из улазног ДСтреама слично РДД-овима. ДСтреамс подржавају многе трансформације доступне на нормалним Спарк РДД-има.

Фигура: ДСтреам трансформације

Следе неке од популарних трансформација на ДСтреамс-у:

Мапа( фунц )Мапа( фунц ) враћа нови ДСтреам преношењем сваког елемента изворног ДСтреама кроз функцију фунц.
флатМап ( фунц )флатМап ( фунц ) је сличан мапи ( фунц ), али свака улазна ставка може се пресликати на 0 или више излазних ставки и враћа нови ДСтреам пролазећи сваки изворни елемент кроз функцију фунц.
филтер ( фунц )филтер ( фунц ) враћа нови ДСтреам одабиром само записа изворног ДСтреама на којем фунц враћа тачно.
смањити ( фунц )смањити ( фунц ) враћа нови ДСтреам једноелементних РДД-а агрегирањем елемената у сваком РДД-у изворног ДСтреам-а помоћу функције фунц .
група од( фунц )група од( фунц ) враћа нови РДД који је у основи састављен од кључа и одговарајуће листе ставки те групе.

Излазни ДСтреамови:

Излазне операције омогућавају избацивање података ДСтреама у спољне системе као што су базе података или системи датотека. Излазне операције покрећу стварно извршавање свих ДСтреам трансформација.

Фигура: Излазне операције на ДСтреамс-у

Кеширање

ДСтреамс омогућавају програмерима да кеширају / устрају податке тока у меморији. Ово је корисно ако ће се подаци у ДСтреам рачунати више пута. То се може учинити помоћу персист () метода на ДСтреам-у.

Фигура: Кеширање у 2 чвора

За улазне токове који примају податке преко мреже (као што су Кафка, Флуме, Соцкетс, итд.),задати ниво постојаности је постављен за копирање података на два чвора ради толеранције грешака.

Акумулатори, променљиве емитовања и контролне тачке

Акумулатори: Акумулатори су променљиве које се додају само асоцијативном и комутативном операцијом. Користе се за примену бројача или сума. Акумулатори за праћење у корисничком интерфејсу могу бити корисни за разумевање напредовања фаза. Спарк изворно подржава нумеричке акумулаторе. Можемо створити именоване или неименоване акумулаторе.

Променљиве емитовања: Емитоване променљиве дозволите програмеру да на сваком рачунару држи кеширану променљиву само за читање, уместо да испоручује њену копију са задацима. Помоћу њих могу на ефикасан начин дати сваком чвору копију великог улазног скупа података. Спарк такође покушава да дистрибуира емитоване променљиве помоћу ефикасних алгоритама за емитовање како би смањио трошкове комуникације.

Контролне тачке: Контролне тачке слични су пунктовима у играма. Они га раде 24/7 и чине га отпорним на кварове који нису повезани са логиком апликације.


Фигура:
Карактеристике контролних пунктова

Случај употребе - Твиттер анализа расположења

Сада када смо разумели основне концепте Спарк Стреаминг-а, решимо стварни проблем користећи Спарк Стреаминг.

Изјава о проблему: Да дизајнирамо систем за анализу расположења на Твиттер-у, где у реалном времену попуњавамо осећања за управљање кризама, прилагођавање услуга и циљни маркетинг.

шта је цхарат у јави

Примене анализе расположења:

  • Предвидите успех филма
  • Предвидите успех политичке кампање
  • Одлучите да ли ћете инвестирати у одређено предузеће
  • Циљано оглашавање
  • Прегледајте производе и услуге

Имплементација Спарк Стреаминг-а:

Пронађите псеудо код испод:

// Увоз потребних пакета у програм Спарк импорт орг.апацхе.спарк.стреаминг. {Сецондс, СтреамингЦонтект} импорт орг.апацхе.спарк.СпаркЦонтект._ ... импорт јава.ио.Филе објецт твиттерСентимент {деф маин (аргс : Арраи [Стринг]) {иф (аргс.ленгтх<4) { System.err.println('Usage: TwitterPopularTags ' + ' []') System.exit(1) } StreamingExamples.setStreamingLogLevels() //Passing our Twitter keys and tokens as arguments for authorization val Array(consumerKey, consumerSecret, accessToken, accessTokenSecret) = args.take(4) val filters = args.takeRight(args.length - 4) // Set the system properties so that Twitter4j library used by twitter stream // Use them to generate OAuth credentials System.setProperty('twitter4j.oauth.consumerKey', consumerKey) ... System.setProperty('twitter4j.oauth.accessTokenSecret', accessTokenSecret) val sparkConf = new SparkConf().setAppName('twitterSentiment').setMaster('local[2]') val ssc = new Streaming Context val stream = TwitterUtils.createStream(ssc, None, filters) //Input DStream transformation using flatMap val tags = stream.flatMap { status =>Преузми текст из хеш-ознака} // РДД трансформација помоћу сортБи, а затим мапирај функцијске ознаке.цоунтБиВалуе () .фореацхРДД {рдд => вал нов = Добиј тренутно време сваког Твеет-а рдд .сортБи (_._ 2) .мап (к => (к, сада)) // Чување резултата на ~ / твиттер / дирецтори .савеАсТектФиле (с '~ / твиттер / $ нов')} // ДСтреам трансформација помоћу функција филтера и мапе вал твеетс = стреам.филтер {т => вал тагови = т. Сплит Он Спацес .филтер (_. СтартВитх ('#')). Претвори у мала слова тагс.екистс {к => труе}} вал подаци = твеетс.мап {статус => вал сентимент = СентиментАналисисУтилс.детецтСентимент (статус.гетТект) вал тагсс = статус.гетХасхтагЕнтитиес.мап (_. ГетТект.тоЛоверЦасе) (статус.гетТект, сентимент.тоСтринг, тагсс.тоСтринг ())} дата.принт () // Спремање резултата на ~ / са именима датотека која почињу попут твиттера дата.савеАсТектФилес ('~ / твиттерс', '20000') ссц. старт () ссц.аваитТерминатион ()}}

Резултати:

Следе резултати који се приказују у Ецлипсе ИДЕ током извођења програма Твиттер Сентимент Стреаминг.

Фигура: Излаз анализе расположења у Ецлипсе ИДЕ

Као што можемо видети на снимку екрана, сви твеетови су категорисани у позитивне, неутралне и негативне у складу са сентиментом садржаја твеетова.

за шта се користи монгодб

Излаз Сентимент оф Твеетс чува се у директоријумима и датотекама у складу са временом када су створени. Овај излаз се по потреби може похранити у локални систем датотека или ХДФС. Излазни директориј изгледа овако:

Фигура: Излазне фасцикле у нашој фасцикли „твиттер“ пројекта

Овде, унутар директорија твиттер-а, можемо пронаћи корисничка имена корисника Твиттер-а заједно са временском ознаком за сваки твит, као што је приказано доле:

Фигура: Излазна датотека која садржи Твиттер корисничка имена са временском ознаком

Сад кад смо добили корисничка имена и временску ознаку за Твиттер, погледајмо Сентименте и твитове сачуване у главном директоријуму. Овде сваки твит прати емоција осећања. Ово чување које се чува даље се користи за анализу огромног мноштва увида компанија.

Фигура: Излазна датотека која садржи твеетове са осећањима

Подешавање кода:

Хајде сада да мало модификујемо наш код да бисмо добили сентименте за одређене хасхтагове (теме). Тренутно, Доналд Трумп, председник Сједињених Држава, креће по вестима на вестима и на друштвеним мрежама на мрежи. Погледајмо осећања повезана са кључном речи „ Трамп ‘.

Фигура: Извођење анализе сентимента на твитовима са кључном речи „Трумп“

Кретање напред:

Као што смо видели из наше демонстрације Анализе расположења, можемо извући осећања одређених тема баш као што смо то учинили за „Трампа“. Слично томе, Сентимент Аналитицс могу да се користе у управљању кризама, прилагођавању услуга и циљном маркетингу од стране компанија широм света.

Компаније које користе Спарк Стреаминг за анализу осећања примениле су исти приступ да би постигле следеће:

  1. Побољшање корисничког искуства
  2. Стицање конкурентске предности
  3. Стицање пословне интелигенције
  4. Ревитализација бренда који губи

Овим смо дошли до краја овога Спарк Стреаминг Туториал блог. До сада сте сигурно стекли добро разумевање шта је Спарк Стреаминг. Случај употребе Твиттер Сентимент Аналисис пружиће вам потребно поверење за рад на било којим будућим пројектима са којима се сусрећете у Спарк Стреаминг-у и Апацхе Спарк-у. Пракса је кључна за савладавање било ког предмета и надам се да је овај блог створио довољно интереса за вас да даље истражујете Апацхе Спарк.

За почетак препоручујемо следећи водич за Спарк Стреаминг ИоуТубе од Едуреке:

Спарк Стреаминг | Пример анализе расположења Твиттер-а | Едурека

Ова видео серија на водичу Спарк пружа потпуну позадину компонената заједно са стварним случајевима употребе као што су Твиттер анализа расположења , НБА анализа предвиђања игре , Систем за откривање земљотреса , Аналитика података о лету и Системи за препоруку филмова . Лично смо осмислили случајеве употребе како бисмо пружили свеобухватну стручност свима који користе код.

Имате питање за нас? Молимо вас да то споменете у одељку за коментаре и јавићемо вам се најраније. Ако желите да научите Спарк и изградите каријеру у домену Спарк-а и изградите стручност за обављање велике обраде података помоћу РДД-а, Спарк Стреаминг-а, СпаркСКЛ-а, МЛлиб-а, ГрапхКс-а и Сцала-е са случајевима примене из стварног живота, погледајте нашу интерактивну, уживо на мрежи овде, која долази са подршком 24 * 7 која ће вас водити током читавог периода учења.