k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz...

124
k8s : h4p k8s : h4p

Transcript of k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz...

Page 1: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

k8s : h4pk8s : h4p

Page 2: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 3: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 4: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

RAFT library for Java

Page 5: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

RAFT library for Java

Page 6: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

RAFT library for Java

Page 7: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

https://flokkr.github.io

RAFT library for Java

Page 8: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 9: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 10: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 11: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 12: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 13: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 14: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 15: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 16: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 17: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 18: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 19: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 20: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 21: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 22: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

What is Apache HadoopWhat is Apache Hadoop

Page 23: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

What is Apache HadoopWhat is Apache Hadoopin 60 secondsin 60 seconds

Page 24: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 25: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 26: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

HDFS

Page 27: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

HDFS

YARN

Page 28: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

HDFS

MapreduceYARN

Page 29: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

HDFS

Ozone + HDDSMapreduceYARN

Page 30: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 31: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop

DockerfileDockerfile

Page 32: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 33: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

<configuration> <property> <name>dfs.namenode.rpc-address</name> <value>namenode:9000</value> </property> <property> <name>dfs.datanode.plugins</name> <value>org.apache.hadoop.ozone.HddsDatanodeService</value> </property> <property> <name>rpc.metrics.percentiles.intervals</name> <value>60,300</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/data/namenode</value> </property> <property> <name>rpc.metrics.quantile.enable</name> <value>true</value> </property> </configuration>

Page 34: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

version: "3" services: service1: image: apache/imagename hostname: namenode ports: - 9870:9870 environment: CONFIGURATION1: value DFS_DIR: /dfs THREAD_NUMBER: 1

Page 35: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

How to handle configuration?How to handle configuration?Create a simple launcher script to

Create config file from environment variablesStart the application

Page 36: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

version: "3" services: namenode: image: flokkr/hadoop hostname: namenode command: ["hdfs","namenode"] ports: - 9870:9870 environment: ENSURE_NAMENODE_DIR: "/tmp/hadoop-root/dfs/name" CORE-SITE.XML_fs.defaultFS: "hdfs://namenode:9000" HDFS-SITE.XML_dfs.namenode.rpc-address: "namenode:9000" HDFS-SITE.XML_dfs.replication: "1" datanode: image: flokkr/hadoop command: ["hdfs", "datanode"] environment: CORE-SITE.XML_fs.defaultFS: "hdfs://namenode:9000" HDFS-SITE.XML_dfs.namenode.rpc-address: "namenode:9000" HDFS-SITE.XML_dfs.replication: "1" LOG4J.PROPERTIES_log4j.rootLogger: "INFO, stdout" LOG4J.PROPERTIES_log4j.appender.stdout: "org.apache.log4j.ConsoleAppender" LOG4J.PROPERTIES_log4j.appender.stdout.layout: "org.apache.log4j.PatternLayout" LOG4J.PROPERTIES_log4j.appender.stdout.layout.ConversionPattern: "%d{yyyy-MM-dd HH:mm:ss} %-5p

Page 37: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Configuration management isConfiguration management is managing the configuration managing the configuration valuesvalues

Page 38: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

ENV (script)n/an/a

Page 39: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 40: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 41: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 42: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 43: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Container is the unit of packaging.

Page 44: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Launcher script has the power

Page 45: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Launcher scriptLauncher script

Page 46: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Launcher scriptLauncher scriptCreate config files from ENV

Page 47: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Launcher scriptLauncher scriptCreate config files from ENVWait for the dependency (TCP check)

Page 48: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Launcher scriptLauncher scriptCreate config files from ENVWait for the dependency (TCP check)Download additional optional component

Page 49: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Launcher scriptLauncher scriptCreate config files from ENVWait for the dependency (TCP check)Download additional optional componentPrepare HDFS (format namenode, ...)

Page 50: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Launcher scriptLauncher scriptCreate config files from ENVWait for the dependency (TCP check)Download additional optional componentPrepare HDFS (format namenode, ...)Retrieve kerberos/SSL secrets

Page 51: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Launcher scriptLauncher scriptCreate config files from ENVWait for the dependency (TCP check)Download additional optional componentPrepare HDFS (format namenode, ...)Retrieve kerberos/SSL secretsEnable prometheus monitoring (Java agent)

Page 52: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Launcher scriptLauncher scriptCreate config files from ENVWait for the dependency (TCP check)Download additional optional componentPrepare HDFS (format namenode, ...)Retrieve kerberos/SSL secretsEnable prometheus monitoring (Java agent)Show network traffic (Instrumentation with Java agent)

Page 53: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 54: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 55: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 56: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 57: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 58: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Hashicorp stackHashicorp stack"do it yourself""do it yourself"

Page 59: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 60: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 61: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 62: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 63: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 64: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 65: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 66: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 67: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 68: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 69: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 70: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Docker network

Page 71: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Host network

Page 72: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

docker host host dns

Page 73: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

<configuration> <property> <name>dfs.namenode.rpc-address</name> <value>namenode:9000</value> </property> <property> <name>dfs.datanode.plugins</name> <value>org.apache.hadoop.ozone.HddsDatanodeService</value> </property> <property> <name>rpc.metrics.percentiles.intervals</name> <value>60,300</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/data/namenode</value> </property> <property> <name>rpc.metrics.quantile.enable</name> <value>true</value> </property> </configuration>

Page 74: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 75: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 76: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 77: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 78: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 79: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 80: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 81: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 82: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 83: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

DIYDIY

Page 85: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Consul Yes (script) Restart

host netw Nomad .nomad redeploy no yes

host netw yes consul yes host

Page 86: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 87: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

KubernetesKubernetes"out of the box""out of the box"

Page 88: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 89: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 90: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 91: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 92: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 93: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

+Network!+Storage!!

(volume, secrets,configs)

Page 94: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

DaemonSet

Page 95: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

ReplicaSet

Page 96: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 97: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 98: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 99: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Service Pod

Page 100: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

StatefulSet

Page 101: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

DaemonSet

Page 102: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 103: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 104: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 105: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Benefits ofBenefits of Hadoop + k8s?Hadoop + k8s?

Page 106: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Benefits ofBenefits of Hadoop + k8s?Hadoop + k8s?  Ecosystem Flexibility

Page 107: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Example:Example: Monitor Hadoop with PrometheusMonitor Hadoop with Prometheus

Page 108: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 109: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 110: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 111: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

apiVersion: apps/v1beta1 kind: StatefulSet metadata: name: ozone-hdfs-namenode spec: serviceName: ozone2-hdfs-namenode replicas: 1 template: metadata: labels: app: ozone spec: containers: - name: hdfs-namenode image: flokkr/ozone:2.1.0 args: ["hdfs","namenode"]

Page 112: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

apiVersion: apps/v1beta1 kind: StatefulSet metadata: name: ozone-hdfs-namenode spec: serviceName: ozone2-hdfs-namenode replicas: 1 template: metadata: labels: app: ozone annotations: prometheus.io/scrape: "true" prometheus.io/port: "28942" spec: containers: - name: hdfs-namenode image: flokkr/ozone:2.1.0 args: ["hdfs","namenode"]

Page 113: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 114: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile
Page 115: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Pod

Page 116: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Sidecar pattern

Pod

Page 117: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

apiVersion: apps/v1beta1 kind: StatefulSet metadata: name: ozone-hdfs-namenode spec: serviceName: ozone2-hdfs-namenode replicas: 1 template: metadata: labels: app: ozone annotations: prometheus.io/scrape: "true" prometheus.io/port: "28942" spec: shareProcessNamespace: true containers: - name: hdfs-namenode image: flokkr/ozone:2.1.0 args: ["hdfs","namenode"] - name: jmxpromo image: flokkr/jmxpromo-sidecar

Page 118: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

configmap helm n/a

CNI kubectl

helm, yaml yes

namespaces yes

CNI statefuset

DNS no

service/ingress

Page 119: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

SummarySummary

Page 120: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

SummarySummaryDon't buy without checkingthe label

Page 121: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

SummarySummaryDon't buy without checkingthe label

Hadoop is first class citizenof cloud-native/containerizedenvironments*

Page 122: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

SummarySummaryDon't buy without checkingthe label

Hadoop is first class citizenof cloud-native/containerizedenvironments*

Containerization can help alot to manage our Bigdataclusters

Page 123: k8s : h4p - ApacheCon · 2018-07-12 · FROM frolvlad/alpine-oraclejdk8 ADD hadoop-3.2.0.tar.gz /opt WORKDIR /opt/hadoop Dockerfile

Q&AQ&A

  Márton Elek @anzixhttps://flokkr.github.io (bigdata + containers project)https://github.com/flokkr (source)[email protected]

Apache Roadshow EU:Kubernetes + Hadoop + Ozone

13th June, 14:20