Fortsetzung des Blogartikels Neuigkeiten im Überblick - Apache Hadoop 3 (Teil 2)
Wir geben einen Überblick über die Neuerungen und beleuchten die wichtigen Features der neuen Hadoop-Version.
Verbesserte Clusterauslastung durch Yarn Opportunistic Containers
Um die Effizienz eines Hadoop Clusters zu erhöhen, muss die Ressourcenauslastung (Prozessor, Hauptspeicher) über einen Zeitraum möglichst gleich verteilt sein. Mit
Opportunistic Containers bietet Hadoop 3 eine Möglichkeit an, dies zu erreichen.
Mit einem neuen Feature soll die Ressourcenauslastung (Prozessor, Hauptspeicher) über Yarn verbessert werden. Die Opportunistic Containers ermöglichen den Start einer Applikation mit garantierten Containern und opportunistischen Containern. Für Erstere müssen zum Startzeitpunkt ausreichend Ressourcen verfügbar sein – für Letztere können Ressourcen zusätzlich allokiert werden, sofern welche zur Verfügung stehen. Opportunistic Containers können gestoppt (Preemption) werden, falls auf einem NodeManager ein anderer Container mit Ausführungsgarantie eintrifft.
Was ändert sich noch mit Hadoop 3?
- Yarn Timeline Service v2
Mapreduce Native Optimierungen - Um die Performance des Mapreduce-Frameworks zu steigern, wurden Teile der Implementation auf nativer Ebene verlagert und optimiert. - Migration auf Java 8
Die Unterstützung für Java 7 (öffentliche Updates) ist bereits April 2015 abgelaufen. Mit der Migration zu Java 8 geht die Hadoop Community den logischen Schritt, um Updates bis Januar 2019 zu gewährleisten. - Shellscript Rewrite
Für Hadoop 3 wurden die Shell-Skripte zum Administrieren von Hadoop neu geschrieben, um Fehler zu beheben und die Benutzung zu optimieren.
Die Hadoop Daemons werden nun über die Option --daemon gestartet. Zusätzlich ermöglicht die Option --debug eine einfachere Fehlerbehebung der Shell-Skripte. - Shaded Client Jars
Bisher konnte es bei der Entwicklung von Hadoop-Clients zu Versionskonflikten zwischen eigenen und Hadoop-spezifischen, transitiv eingebundenen, Abhängigkeiten kommen. Mit Hadoop 3 werden die transitiven Abhängigkeiten der Hadoop Client Libraries versteckt (shaded).
Portbelegungen
Weil die Portbelegungen von Hadoop 2 gegen die Empfehlungen der IANA für temporäre Ports verstoßen, wurden die Belegungen in Hadoop 3 angepasst. Die Ports im Bereich zwischen 49152 und 65535 sind für dynamische, temporäre Zuweisungen vorgesehen.
In Hadoop 3 wird daher auf Ports im Bereich zwischen 9600 und 9871 ausgewichen. Zusätzlich wurde für KMS der Standard-Port geändert, um Konflikten mit dem Apache HBase Master Service vorzubeugen.
Service | Hadoop 2 | Hadoop 3 |
HDFS NameNode | 50470 | 9871 |
| 50070 | 9870 |
| 8020 | 9820 |
HDFS Secondary NameNode | 50091 | 9869 |
| 50090 | 9868 |
HDFS DataNode | 50020 | 9867 |
| 50010 | 9866 |
| 50475 | 9865 |
| 50075 | 9864 |
KMS Service | 16000 | 9600 |
Fazit
Hadoop 3 bietet neue Features, die vor allem Vorteile für den Produktiveinsatz bringen. Mit Erasure Coding kann der Datenverbrauch durch das HDFS reduziert werden, was Kosteneinsparungen bei der Hardware mit sich bringt, ohne dabei auf Verlusttoleranz verzichten zu müssen. Die Erweiterung oder der Austausch von Festplattenspeicher wird mit dem Intra DataNode Diskbalancer nun erheblich vereinfacht. Der Einsatz mehrerer NameNodes bietet noch mehr Ausfallsicherheit im Betrieb. Und die Ressourcenauslastung wird durch die Yarn Opportunistic Containers zusätzlich erhöht. Zu beachten sind die Änderungen der Service-Ports, die mögliche Rekonfiguration der Firewall-Einstellungen mit sich bringen. Die Migration auf Java 8 ist der logische Schritt, um eine Langlebigkeit zu gewährleisten.
Links/Quellen
- [Q1] Einführung in Erasure Coding (Cloudera Blog)
http://blog.cloudera.com/blog/2015/09/introduction-to-hdfs-erasure-coding-in-apache-hadoop/ - [Q2] Portbelegung Cloudera CDH 6
https://www.cloudera.com/documentation/enterprise/6/6.0/topics/cdh_ports.html - [Q3] HDFS Intra DataNode Disk Balancer (Cloudera Blog)
http://blog.cloudera.com/blog/2016/10/how-to-use-the-new-hdfs-intra-datanode-disk-balancer-in-apache-hadoop/ - [Q4] Hortonworks HDP Platform 3 Datasheet
https://de.hortonworks.com/datasheet/hortonworks-data-platform-3-0-datasheet/ - [Q5] Apache Hadoop Releases
https://hadoop.apache.org/releases.html - [Q6] Apache Hadoop 3 Dokumentation
https://hadoop.apache.org/docs/r3.0.0/index.html - [Q7] Cloudera Unsupported Features
https://www.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_600_unsupported_features.html#hdfs_600_unsupported - [Q8] Portänderungen (Apache Software Foundation JIRA)
https://issues.apache.org/jira/browse/HDFS-9427 und https://issues.apache.org/jira/browse/HADOOP-12811 - [Q9] Mapreduce Native Optimization (Apache Software Foundation JIRA)
https://issues.apache.org/jira/browse/MAPREDUCE-2841 - [Q10] Migration auf Java 8 (Apache Software Foundation JIRA)
https://issues.apache.org/jira/browse/HADOOP-9902 - [Q11] Shellscript Rewrite (Apache Software Foundation JIRA)
https://issues.apache.org/jira/browse/HADOOP-11656
Seminarempfehlung: Big Data – Apache Hadoop Grundlagen
Wir leben in einer Zeit, in der immer mehr Daten in immer kürzerer Zeit gespeichert und verarbeitet werden müssen. Klassische relationale Datenbanken stoßen dabei immer öfter an Ihre Grenzen. Hier setzt das Apache Hadoop Framework an. In diesem Seminar bekommen Sie einen Überblick über die wichtigsten Komponenten des Hadoop Ökosystems. In praktischen Übungen wenden Sie das Erlernte an. Unter anderem verwenden Sie die Hadoop File System Shell, programmieren Spark Jobs, analysieren Daten mit HiveQL oder administrieren das HDFS und YARN.
Informationen/Online-Anmeldung: https://seminare.ordix.de/seminare/big-data-und-data-warehouse/big-data/big-data-apache-hadoop-grundlagen.html
Seminarinhalte
- Überblick über das Hadoop Ökosystem
- HDFS, YARN und MapReduce
- Neuerungen in Hadoop 3
- Hive und der Hive Metastore
- Dateiformate (z.B. Parquet, Avro und ORC)
- Spark und Spark SQL
- Einführung in den Hadoop Zoo (z.B. Sqoop, Kafka, HBase, ZooKeeper)
- Architekturen und Anwendungsfälle
- Cluster Planung