HPM: een nieuwe opensource tool voor Hadoop-beheerders
SIDN Labs’ meest recente bijdrage aan de internetonderzoeksgemeenschap
Kies jouw kleur
Veel bezocht
Veelgestelde vragen
Via de Whois kun je de huidige houder van een domeinnaam opzoeken. Om de persoonsgegevens in te zien moet je vanwege de privacygevoelige informatie eerst de gebruikersvoorwaarden van de Whois accepteren. Gegevens van privé personen kunnen ook afgeschermd zijn vanwege de AVG (Algemene verordening gegevensbescherming).
Op de pagina domeinnaam zoeken lees je meer over wat een domeinnaam is, de werking van de Whois en de privacy van persoonsgegevens.
Je wilt je domeinnaam verhuizen naar een andere registrar. Vraag dan je verhuistoken op bij je huidige registrar. Lees de verhuisstappen op de pagina domeinnaam verhuizen.
Neem contact op met je registrar. Jouw registrar kan de contactgegevens bij je domeinnaam voor je aanpassen. Wij raden je aan het resultaat te controleren via de Whois. Lees meer over het aanpassen van je gegevens bij contactgegevens wijzigen.
Wij weten niet wat de reden van de opheffing is. Neem contact op met je registrar. Het voordeel van de quarantaine is dat je altijd de mogelijkheid hebt om een opheffing die je niet had bedoeld te herstellen.
Voorbeeld: In de voorwaarden van je registrar staat dat je elk jaar je abonnement moet verlengen. Dat gebeurt dan niet automatisch. Zo kan het gebeuren dat je domeinnaam wordt opgeheven zonder dat je er om gevraagd hebt.
Wanneer je een klacht hebt over of een geschil met je registrar dan zijn er verschillende mogelijkheden om tot een oplossing te komen. Hierover lees je meer op pagina klacht over registrar. SIDN heeft geen formele klachtenprocedure voor het behandelen van een klacht over jouw registrar.
Wil je zelf direct domeinnamen kunnen registreren bij SIDN voor je klanten of voor je eigen organisatie? Dan kun je .nl-registrar worden. Lees meer over de voorwaarden en de manier waarop je je kunt inschrijven als registrar via de pagina registrar worden.
SIDN Labs’ meest recente bijdrage aan de internetonderzoeksgemeenschap
Net als veel andere onderzoekers maken we bij SIDN Labs veel gebruik van Apache Hadoop en daaraan gerelateerde software zoals Apache Spark en Apache Impala. Hiervoor hebben we jarenlang gebruik gemaakt van een Cloudera Express (CDH), een tool om clusters van Hadoop-servers te beheren. In 2021 veranderde Cloudera echter haar licentiemodel, waardoor we bij een volgende software-upgrade jaarlijks fors moesten gaan betalen. Dit geld besteden we natuurlijk liever aan onderzoek om de veiligheid van de internetinfrastructuur te verhogen. Daarom ontwikkelden we de afgelopen 6 maanden zelf de ‘Hadoop Provisioning Manager’ (HPM). Na uitgebreid testen gebruiken we de HPM nu voor ons productie Hadoop-cluster dat de basis vormt van bijvoorbeeld ENTRADA. We stellen onze HPM als opensource beschikbaar (MIT-licentie). Zo kunnen andere internetonderzoekers er ook hun voordeel mee doen.
Bij SIDN Labs maken we sinds 2014 gebruik van Hadoop-software en daaraan gerelateerde softwarecomponenten zoals Apache Spark. Hadoop is opensourcesoftware en wordt gebruikt om grote hoeveelheden data op te slaan en efficiënt te analyseren. Wij gebruiken Hadoop bijvoorbeeld voor ENTRADA, waarbij we grote hoeveelheden DNS-data opslaan en analyseren. De huidige ENTRADA-database bevat ruim 2,3 biljoen rijen, waarvoor we ongeveer 320TB aan opslag nodig hebben. Onze Hadoop-omgeving is, voor Hadoop-begrippen, zeer kleinschalig en bestaat uit 14 servers met een 10Gbit-netwerk. Het Hadoop-cluster als geheel heeft 600TB opslag, 624 CPU-cores en 1600GB RAM beschikbaar voor applicaties.
Het installeren, configureren en beheren van de softwarecomponenten van een Hadoop-cluster is complex, tijdrovend en vereist veel specialistische kennis. Om dit werk te vereenvoudigen en om tijd te besparen, hebben we jarenlang gebruikgemaakt van de Cloudera Express (CDH). Dit was een Hadoop-distributie die kosteloos werd aangeboden door Cloudera. CDH maakt de installatie en het beheer van een Hadoop-cluster makkelijker door middel van een op een webapplicatie gebaseerde managementinterface. Hadoop-beheerders kunnen hun cluster ook zonder CDH of een vergelijkbare tool draaien, maar dan moeten ze de Hadoop-componenten handmatig downloaden en installeren wat tijdrovend en foutgevoelig werk is.
Helaas levert Cloudera sinds begin 2021 CDH alleen nog maar met een betaalde licentie. De jaarlijkse kosten zijn afhankelijk van het aantal servers in een cluster, de hardware specificaties van de servers en het gekozen licentie type. Voor ons kleine Hadoop-cluster zouden de licentiekosten rond de 150K per jaar bedragen.
Omdat we dit geld liever besteden aan onderzoek om de veiligheid van de internetinfrastructuur te verhogen, besloten we om naar alternatieven te gaan kijken. Andere redenen waren dat we maar een relatief klein deel van de CDH-functionaliteit gebruikten en dat we wisten dat andere onderzoekers (bijvoorbeeld netwerksecurityonderzoekers van de Universiteit Twente) tegen hetzelfde probleem aanliepen.
Voordat we naar mogelijke alternatieven voor CDH zijn gaan kijken, hebben we eerst onze belangrijkste eisen op een rij gezet:
Hoge beschikbaarheid (productiestatus) Ons CDH-alternatief moet een Hadoop-cluster op kunnen zetten met een hoge beschikbaarheid (high availability). Dit betekent dat als een deel van de software- of hardwarecomponenten uitvallen, het Hadoop-cluster als geheel blijft functioneren en weinig verstoring oplevert. Dit is belangrijk, omdat we Hadoop niet alleen bij SIDN Labs gebruiken (bijv. via ENTRADA). Ook onze DNS-operaters gebruiken het om de .nl-nameservers te optimaliseren. Er zijn daardoor veel verschillende applicaties afhankelijk van het correct werken van onze Hadoop-omgeving. Daarnaast is SIDN Labs een researchteam, wat betekent dat we ons graag willen richten op data-analyses en niet continu bezig willen zijn met storingen verhelpen.
Authenticatie en autorisatie Een CDH-alternatief moet authenticatie en autorisatie-componenten kunnen configureren op ons cluster, zoals Kerberos en Apache Ranger. Authenticatie betekent dat een serverproces of eindgebruiker zijn identiteit moet kunnen aantonen, waaraan dan autorisatieregels zijn gekoppeld. Hiermee voorkomen we dat iedere geauthentiseerde gebruiker zomaar alles kan doen wat hij wil.
Data integriteit en vertrouwelijkheid De (web)interfaces van de componenten die een CDH-alternatief installeert (bijv. die van de Hadoop HDFS name node), moeten hun data versleuteld via het netwerk versturen. Hierdoor wordt de integriteit en vertrouwelijkheid van de data gegarandeerd, ook als de Hadoop-servers in verschillende netwerken staan.
Meerdere besturingssystemen Het CHD-alternatief moet om kunnen gaan met meerdere besturingssystemen tegelijk, omdat we een mix van Red hat Enterprise Linux 9 (RHEL) en Ubuntu gebruiken voor ons Hadoop-cluster. RHEL gebruiken we op de servers waarop de Hadoop-componenten draaien; Ubuntu voor de zogenaamde gateway-servers om gebruikers toegang te geven tot het cluster of om applicaties te starten die draaien op het cluster.
Schaalbaarheid Een mogelijk CDH-alternatief moet ondersteuning hebben voor het opzetten van zowel heel kleine Hadoop-clusters met maar een paar servers als ook grotere Hadoop-clusters met vele tientallen servers, bijvoorbeeld bij grotere onderzoeksorganisaties zoals universiteiten.
Opensource Naast de bovenstaande eisen, willen we ook dat een CDH-alternatief opensource beschikbaar is. Zo kunnen we het zelf nog aanpassen en kunnen we onze ervaringen met de internetresearchcommunity delen om gezamenlijk bij te dragen aan een nog veiligere internetinfrastructuur.
We hebben verschillende bestaande alternatieven voor Cloudera getoetst tegen onze eisen:
Cloudoplossingen De grote cloudleveranciers zoals Microsoft, Amazon en Oracle bieden CDH-achtige oplossingen, maar vielen voor ons af omdat de kosten ervan flink kunnen oplopen bij de hoeveelheid data die wij verwerken. De kosten zijn ook minder voorspelbaar dan wanneer we een Hadoop-cluster op eigen hardware gebruiken.
Apache Ambari Dit is een opensource beheertool, enigszins vergelijkbaar met wat CDH biedt. Oorspronkelijk is Ambari ontwikkeld door Hortonworks, dat later is overgenomen door Cloudera. Helaas wordt het Ambar-project niet meer actief onderhouden en is het daardoor voor ons geen optie.
Apache Bigtop Dit is een opensourceproject dat Hadoop-componenten beschikbaar maakt voor verschillende besturingssystemen via het bestaande installatiemechanisme van een besturingssysteem. Bigtop ondersteunt echter niet alle componenten. Het kan bijvoorbeeld niet omgaan met Apache Impala en Apache Ranger. Ook heeft Bigtop alleen ondersteuning voor het installeren van componenten en is het nog steeds veel werk om de configuraties van de verschillende componenten te beheren. Een ander nadeel van Bigtop (en ook van CDH) is dat we dan weer afhankelijk zijn van de versies die door Bigtop worden gepubliceerd.
Omdat de alternatieven voor CDH niet voldeden aan onze eisen ontwikkelden we een eigen tool: de ‘Hadoop Provisioning Manager’ (HPM). De HPM maakt gebruik van Ansible, een bestaande scriptingtaal voor het configureren (provisionen) van een server.
HPM (zie figuur 1) is bedoeld voor Hadoop-beheerders en stelt hen in staat bestaande opensource Hadoop-componenten te downloaden en te installeren op de clusterservers. Een andere belangrijke functie van de HPM is het genereren, beheren en uitrollen van de configuratie voor Hadoop-componenten. Het gaat dan om bijvoorbeeld om de netwerkpoorten waarop bepaalde diensten moeten luisteren of waar de data opgeslagen moet worden. Dit kunnen in totaal vele honderden verschillende configuratie opties zijn. De HPM voorkomt dat de Hadoop-servers individueel dezelfde data vanaf het internet downloaden. Dit is niet altijd mogelijk en om veiligheidsredenen ook niet altijd gewenst, ook kan het de deployment van componenten vertragen.
Figuur 1: Overzicht van de HPM.
De HPM is een relatief eenvoudige tool die voorkomt dat beheerders de Hadoop-componenten voor hun cluster met de hand moeten downloaden en installeren, wat tijdrovend en foutgevoelig werk is. In tegenstelling tot CDH heeft de HPM geen webapplicatie waarmee een beheerder met paar eenvoudige muisklikken een cluster kan uitrollen of configureren. Dit moet via de command line, door het aanroepen van scripts. We ontwikkelden en testten de HPM de afgelopen 6 maanden en gebruiken het op dit moment succesvol voor ons Hadoop-productiecluster.
De HPM is deels geïnspireerd op vergelijkbaar werk van CZ.NIC, de registry van het .cz-domein (Tsjechië). De playbooks van CZ.NIC zijn een proof-of-concept om te laten zien dat je met Ansible een Hadoop-cluster kunt opzetten, maar anders dan HPM is het nog niet geschikt om in een productieomgeving te gebruiken.
Omdat een Hadoop-cluster vaak veel verschillende componenten gebruikt en de meeste van deze componenten 1 of zelfs meerdere webinterfaces aanbieden, is het moeilijk om het overzicht te behouden, bijvoorbeeld waar de componenten zijn geïnstalleerd en welke andere componenten ervan gebruik maken.
Om dit probleem te verhelpen ontwikkelden we een eenvoudig managementconsole met webapplicatie (zie figuur 2). Hiermee kunnen Hadoop-beheerders navigeren tussen de webinterfaces van de verschillende componenten. De console biedt (nog) geen mogelijkheden om het cluster te configureren of beheren.
De HPM biedt ondersteuning voor 20 verschillende Hadoop-componenten, waarvan de belangrijkste zijn:
Apache Hadoop;
Apache Spark;
Apache Impala;
Apache Zookeeper;
Apache Hive;
Apache Ranger;
Hue SQL Assistant.
Deze componenten kan de HPM zowel op Red Hat Enterprise Linux als Ubuntu installeren. Een van de uitdagingen waar we bij de ontwikkeling tegenaan liepen, is dat het lastig is om versies van de Hadoop-componenten te vinden die goed samenwerken. Door onderlinge afhankelijkheden is het namelijk niet mogelijk om zomaar willekeurige versies te installeren.
Bij het ontwikkelen van HPM hebben we veel grote en kleine uitdagingen overwonnen. Deze hadden voor een deel te maken met de eisen die we aan het Hadoop-cluster stelden. Bijvoorbeeld: onze eis dat het cluster veilig moest zijn, betekende dat we authenticatie (Kerberos) moesten configureren voor alle componenten en ervoor zorgen dat autorisatie werd afgedwongen (Apache Ranger). Door onduidelijke of missende documentatie en bugs was het regelmatig nodig om in de broncode van de, gelukkig opensource, componenten te duiken om te achterhalen waarom bepaalde zaken niet werkten zoals we verwachtten.
Een andere uitdaging was dat ons bestaande cluster een iets oudere versie van RHEL gebruikt. Daarnaast ontbraken voor sommige opensource-componenten (bijv. Apache Impala) een gecompileerde versie die direct geïnstalleerd kan worden. Het compileren van een component voor een recent besturingssysteem is meestal geen groot probleem, maar voor Apache Impala en een oudere versie van RHEL was het een flinke uitdaging. Dit omdat Apache Impala zelf ook weer gebruik maakt van bepaalde versies van compilers en codebibliotheken die niet beschikbaar waren voor de RHEL-versie die we gebruiken. Daarom moesten we voor RHEL de vereiste compilerversie en bibliotheken eerst zelf compileren voordat we Apache Impala konden bouwen. Dit gold bijvoorbeeld ook voor de nieuwste versie van Python.
De komende tijd gaan we functies voor het monitoren en detecteren van problemen met de verschillende geïnstalleerde componenten of clusterhardware verder uitwerken. Ter voorbereiding hierop voegt de HPM tijdens de configuratie van een Hadoop-cluster al wel vast Prometheus en Grafana toe. De HPM configureert Prometheus om metrics te verzamelen van de verschillende geïnstalleerde componenten en Grafana is automatisch geconfigureerd met Prometheus als backend, zodat data uit Prometheus gevisualiseerd kan worden in een dashboard. We gaan ook werken aan support voor meer besturingssysteem n zoals Red hat Enterprise Linux 9.
De HPM is beschikbaar als opensource onder een MIT-licentie. Ons doel is dat andere (internet)onderzoekers en ENTRADA-gebruikers ook van HPM gebruik kunnen maken en de tool verder kunnen ontwikkelen. De sourcecode vind je op Github.
Heb je vragen of feedback? Neem dan vooral contact met me op via maarten.wullink@sidn.nl.
Artikel door:
Deel dit artikel