HBase
 sql >> база данни >  >> NoSQL >> HBase

HDFS Erasure Coding в Big Data Hadoop

Този блог е изцяло за HDFS Erasure Coding. В този блог ще обсъдим концепцията за Erasure Coding в Hadoop , проблеми на стара схема за репликация. В този блог също се обсъждат два алгоритма за кодиране на изтриване на Hadoop, като алгоритъм XOR , алгоритъм на Рийд-Соломон.

Най-накрая ще видим архитектурата и предимствата на кодирането за изтриване в Hadoop HDFS.

Проблем с репликация на стара схема

Кодиране на HDFS Erasure е нова функция, въведена за намаляване на разходите за съхранение с приблизително 50% в сравнение с 3x репликация. Hadoop HDFS репликира всеки блок 3 пъти за различни цели. Това е много проста форма на резервиране за защита срещу повреда на възела на данни.

Наред с плюсовете има различни минуси, че е много скъп. 3 x репликация има 200% режийни разходи за пространство за съхранение и други ресурси. Набори от данни с ниска I/O активност, допълнителни реплики рядко се осъществяват по време на нормална работа, но все пак консумират други ресурси.

Това е причината да се появи кодирането на Hadoop Erasure. Той осигурява същото ниво на отказоустойчивост с по-малко място за съхранение и 50% режийни разходи за съхранение.

Когато сравнявате различните схеми за съхранение, важно съображение е:

  • Устойчивост на данните (брой на едновременна отказоустойчивост)
  • Ефективност на съхранение

Така че при N-посочена репликация има N-1 толерантност към грешки с 1/n ефективност на съхранение.

Какво е HDFS Erasure Coding в Hadoop?

HDFS Erasure Coding използва RAID . RAID прилага EC използва премахване. Изчистването логически съхранява данните под формата на блок. След това съхранява тезиблокове на различния диск. Той изчислява паритет за всеки блок и магазин. Това е кодирано. Чрез паритет възстановява грешката.

За отказоустойчивост EC разширява съобщението с излишни данни. HDFS Erasure кодирането ще работи върху клетки с данни с еднакъв размер. Кодека приема определен брой клетки с данни като вход. И след това произвежда клетки за четност като изход.

Целият този процес се нарича кодиране. Паритет и клетка с данни заедно се наричат ​​като група за кодиране на изтриване. Процесът, чрез който изгубената клетка с данни се реконструира върху останалите клетки, е известен като декодиране.

Два налични алгоритъма за HDFS Erasure Coding са както следва:

a) Алгоритъм XOR

Това е простата реализация на кодирането на Hadoop Erasure.

Да приемем, че клетките с данни X и Y и Z са клетка с данни, тогава клетката за четност е XOR на тези три клетки с данни x ⊕ y ⊕ z така че по време на операцията XOR се генерира само един бит за четност и ако някой бит бъде загубен, той може да бъде възстановен от останалите клетки с данни и бит за четност.

Той е много ограничен, тъй като произвежда 1 бит за четност, така че операцията XOR може да толерира само 1 грешка с n размер на групата.

При операция XOR толерантност към грешки 1 и ефективността на съхранение е n-1/n, когато размерът на групата е н.

b) Алгоритъм на Рийд-Соломон

Reed-Solomon адресира ограничението на операцията XOR. Той използва линейна алгебра за генериране на множество клетки за четност. RS използва два параметъра k и m, k е брой клетки с данни и m е брой клетки за четност.

RS работи чрез умножаване на k клетки с данни с генераторна матрица (G), за генериране на разширена кодова дума с k клетки с данни и m клетки за четност. Неизправността в паметта може да бъде възстановена чрез умножаване, обратно на матрицата на генератора с разширените кодови думи, стига k от k+m клетки да са налични.

„С Reed, Solomon отказоустойчивост е до m клетки и ефективност на съхранение k/k+m, където k са клетки с данни, а m са клетки за четност.“

Решение за проектиране и архитектура

EC ивици има няколко предимства:

  • Изчистването позволява онлайн EC (записване на данни незабавно във формат EC), избягване на фаза на преобразуване и незабавно спестяване на място за съхранение.
  • Разпределя малък файл на множество Datanodes. Той елиминира групирането на множество файлове в една кодираща група. По този начин опростява операциите с файлове, като изтриване и миграция между обединени пространства от имена.
  • За по-добра поддръжка на малки файлове, EC поддържа премахване. В бъдеще HDFS също ще поддържа непрекъснато EC оформление.

EC добави много нови компоненти са:

  • Разширения на NodeNode (ECManager ) – Stripe HDFS файловете са логически съставени от групи блокове. Всеки от тях съдържа определен брой вътрешни блокове. За да намали консумацията на памет на Namenode от тези допълнителни блокове, той въведе нов йерархичен протокол за именуване на блокове. EC извежда идентификатора на група блокове от идентификатора на всеки от нейните вътрешни блокове. Това позволява управление на ниво група блокове, а не блок.
  • Клиентски разширения (EC Client) – Клиентът може да извършва паралелно операции за четене и запис на множество вътрешни блокове в група блокове.
  • Разширения на DataNode (ECWorker)- DataNode изпълнява допълнителна задача на EC работник за възстановяване на кодирани блокове с неуспешно изтриване. И така, NameNode открива неуспешните EC блокове, namenode дава инструкция за възстановяване на възлите на данни. След това предава задачата за възстановяване като реакция на сърдечен ритъм.

Предимства от кодирането за изтриване

  • Наличност на данни при по-нисък капацитет: HDFS Кодовете за изтриване позволяват наличност на данни при по-нисък капацитет. Първоначално репликирайте блоковете в три реплики. Така че пространството за съхранение на три реплики е голямо. Но сега в кодирането за изтриване съхранявайте големи данни като бит за четност, така че съхранението намалява пространството.
  • Ефективност: Тъй като EC съхранява данни като паритет вместо 3 реплики, така че дава по-добра производителност.
  • Бързо възстановяване: Той открива и възстановява блоковите грешки на HDFS както активно (на заден план), така и пасивно (по пътя на четене).

Заключение

В заключение можем да кажем, че HDFS Erasure кодирането е намалило разходите за съхранение с 50%. EC намалява служебните разходи поради битове за паритет. Следователно тези HDFS функции да даде възможност на Apache Hadoop функционалност.

Ако имате някакви запитвания или предложения, свързани с Erasure Coding в HDFS, моля, коментирайте ни в раздела, даден по-долу.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да:Активирайте удостоверяване и оторизация на потребителя в Apache HBase

  2. Hadoop InputFormat &Типове InputFormat в MapReduce

  3. Как да:Използвайте HBase Thrift Interface, Част 2:Вмъкване/Получаване на редове

  4. Създаване на приложение за машинно обучение с Cloudera Data Science Workbench и оперативна база данни, част 1:Настройка и основи

  5. Apache HBase + Apache Hadoop + Xceivers