This is an automated email from the ASF dual-hosted git repository.

rskraba pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-training.git


The following commit(s) were added to refs/heads/master by this push:
     new a4486f0  Training-27: Hadoop Training Slides (#63)
a4486f0 is described below

commit a4486f06b2f5bf2f788eeaebc82609b98750f2ca
Author: Gautam Gupta <[email protected]>
AuthorDate: Fri May 29 01:20:35 2020 -0700

    Training-27: Hadoop Training Slides (#63)
    
    * Hadoop Slides
    
    * Training-28
    
    * Training-27: Apache Hadoop Training
    
    * Training-27
    
    * Training-27: Hadoop slides
    
    * Training-27: Hadoop slides
    
    * Training-27
    
    * Training-27
---
 content/Hadoop/pom.xml                             | 236 ++++++++++++++
 content/Hadoop/src/main/asciidoc/index.adoc        | 168 ++++++++++
 .../src/main/resources/images/logo-apache.png      | Bin 0 -> 16185 bytes
 content/Hadoop/src/main/theme/apache.css           | 349 +++++++++++++++++++++
 4 files changed, 753 insertions(+)

diff --git a/content/Hadoop/pom.xml b/content/Hadoop/pom.xml
new file mode 100644
index 0000000..c7012da
--- /dev/null
+++ b/content/Hadoop/pom.xml
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>21</version>
+    </parent>
+
+    <groupId>org.apache.training</groupId>
+    <artifactId>apache-hadoop</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <packaging>war</packaging>
+
+    <name>Apache Hadoop Slides</name>
+    <description></description>
+
+    <properties>
+        
<project.slides.directory>${project.build.directory}/generated-slides</project.slides.directory>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        
<asciidoctor.maven.plugin.version>2.0.0-RC.1</asciidoctor.maven.plugin.version>
+        <asciidoctorj.version>2.0.0-RC.2</asciidoctorj.version>
+        <revealjs.version>3.7.0</revealjs.version>
+        <asciidoctor-revealjs.version>2.0.0</asciidoctor-revealjs.version>
+        <maven-resources-plugin.version>3.1.0</maven-resources-plugin.version>
+    </properties>
+
+    <build>
+        <plugins>
+            <!-- Check if all source files have the required apache license 
headers -->
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>license-check</id>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>check</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.googlecode.maven-download-plugin</groupId>
+                <artifactId>download-maven-plugin</artifactId>
+                <version>1.4.1</version>
+                <executions>
+                    <execution>
+                        <id>install-asciidoctor-revealjs</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>wget</goal>
+                        </goals>
+                        <configuration>
+                            
<url>https://github.com/asciidoctor/asciidoctor-reveal.js/archive/v${asciidoctor-revealjs.version}.zip</url>
+                            <unpack>true</unpack>
+                            
<outputFileName>asciidoctor-reveal.js-${asciidoctor-revealjs.version}.zip</outputFileName>
+                            
<outputDirectory>${project.build.directory}</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>install-revealjs</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>wget</goal>
+                        </goals>
+                        <configuration>
+                            
<url>https://github.com/hakimel/reveal.js/archive/${revealjs.version}.zip</url>
+                            <unpack>true</unpack>
+                            
<outputFileName>reveal.js-${revealjs.version}.zip</outputFileName>
+                            
<outputDirectory>${project.slides.directory}</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>download-c3-css</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>wget</goal>
+                        </goals>
+                        <configuration>
+                            
<url>https://cdnjs.cloudflare.com/ajax/libs/c3/0.6.12/c3.min.css</url>
+                            
<outputDirectory>${project.slides.directory}/css</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>download-c3-js</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>wget</goal>
+                        </goals>
+                        <configuration>
+                            
<url>https://cdnjs.cloudflare.com/ajax/libs/c3/0.6.12/c3.min.js</url>
+                            
<outputDirectory>${project.slides.directory}/js</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>download-d3-js</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>wget</goal>
+                        </goals>
+                        <configuration>
+                            
<url>https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js</url>
+                            
<outputDirectory>${project.slides.directory}/js</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.asciidoctor</groupId>
+                <artifactId>asciidoctor-maven-plugin</artifactId>
+                <version>${asciidoctor.maven.plugin.version}</version>
+                <configuration>
+                    <!-- Tell asciidoctor to use the reveal.js backend and not 
the default html -->
+                    <backend>revealjs</backend>
+                    <!-- Configure where are all the asciidoc source files 
located -->
+                    <sourceDirectory>src/main/asciidoc</sourceDirectory>
+                    <!-- Configure the target director to where will the 
output be generated -->
+                    
<outputDirectory>${project.slides.directory}</outputDirectory>
+                    <attributes>
+                        <icons>font</icons>
+                    </attributes>
+                    <!-- output file-->
+                    <outputFile>index.html</outputFile>
+                    <!-- This has to point to the asciidoctor-revealjs 
directory which contains all the "slim" files -->
+                    
<templateDir>${project.build.directory}/asciidoctor-reveal.js-${asciidoctor-revealjs.version}/templates</templateDir>
+                    <attributes>
+                        <!--
+                            Tell the system the relative path to the reveal.js 
files
+                            inside the generated-slides directory.
+                        -->
+                        
<revealjsdir>reveal.js-${revealjs.version}</revealjsdir>
+                        <!--
+                            Use our custom theme, which is defined by 
src/main/theme/apache.css
+                            and copied inside the reveal.js installation by 
the resources plugin a few lines
+                            up inside this pom.
+                        -->
+                        <revealjs_theme>apache</revealjs_theme>
+                    </attributes>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>generate-slides</id>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>process-asciidoc</goal>
+                        </goals>
+
+                    </execution>
+                </executions>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.asciidoctor</groupId>
+                        <artifactId>asciidoctorj</artifactId>
+                        <version>${asciidoctorj.version}</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <version>${maven-resources-plugin.version}</version>
+                <executions>
+                    <execution>
+                        <id>copy-resources</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            
<outputDirectory>${project.build.directory}</outputDirectory>
+                            <resources>
+                                <!-- Copy the normal resources into the root 
of the slides directory -->
+                                <resource>
+                                    <directory>src/main/resources</directory>
+                                    
<targetPath>${project.slides.directory}</targetPath>
+                                </resource>
+                                <!-- Copy our css-theme to the reveal.js theme 
directory -->
+                                <resource>
+                                    <directory>src/main/theme</directory>
+                                    <filtering>true</filtering>
+                                    
<targetPath>${project.slides.directory}/reveal.js-${revealjs.version}/css/theme</targetPath>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <version>3.2.2</version>
+                <configuration>
+                    <failOnMissingWebXml>false</failOnMissingWebXml>
+                    
<warSourceDirectory>${project.slides.directory}</warSourceDirectory>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-maven-plugin</artifactId>
+                <version>9.4.14.v20181114</version>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.8.1</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/content/Hadoop/src/main/asciidoc/index.adoc 
b/content/Hadoop/src/main/asciidoc/index.adoc
new file mode 100644
index 0000000..f0fa467
--- /dev/null
+++ b/content/Hadoop/src/main/asciidoc/index.adoc
@@ -0,0 +1,168 @@
+////
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+////
+:revealjs_progress: true
+:revealjs_slidenumber: true
+:sourcedir: ../java
+
+== What is Apache Hadoop?
+
+The Apache Hadoop software library is a framework that allows for the 
distributed processing of large data sets across clusters of computers using 
simple programming models. It is designed to scale up from single servers to 
thousands of machines, each offering local computation and storage. Rather than 
rely on hardware to deliver high-availability, the library itself is designed 
to detect and handle failures at the application layer, so delivering a 
highly-available service on top of a c [...]
+
+== What are the main modules in Apache Hadoop?
+
+The base Apache Hadoop framework is composed of the following modules:
+
+* *Hadoop MapReduce* – an implementation of the MapReduce programming model 
for large-scale data processing.
+* *Hadoop Distributed File System (HDFS)* – a distributed file-system that 
stores data on commodity machines, providing very high aggregate bandwidth 
across the cluster.
+* *Hadoop YARN* – (introduced in 2012) a platform responsible for managing 
computing resources in clusters and using them for scheduling users' 
applications.
+* *Hadoop Common* – contains libraries and utilities needed by other Hadoop 
modules.
+
+== MapReduce
+
+Hadoop MapReduce is a software framework for easily writing applications which 
process vast amounts of data (multi-terabyte data-sets) in-parallel on large 
clusters (thousands of nodes) of commodity hardware in a reliable, 
fault-tolerant manner. 
+
+A MapReduce job usually splits the input data-set into independent chunks 
which are processed by the map tasks in a completely parallel manner. The 
framework sorts the outputs of the maps, which are then input to the reduce 
tasks. Typically both the input and the output of the job are stored in a 
file-system. The framework takes care of scheduling tasks, monitoring them and 
re-executes the failed tasks.
+
+
+== MapReduce Inputs and Outputs
+
+The MapReduce framework operates exclusively on <key, value> pairs, that is, 
the framework views the input to the job as a set of <key, value> pairs and 
produces a set of <key, value> pairs as the output of the job, conceivably of 
different types.
+
+* The key and value classes have to be serializable by the framework and hence 
need to implement the Writable interface.
+* Additionally, the key classes have to implement the WritableComparable 
interface to facilitate sorting by the framework.
+* Input and Output types of a MapReduce job:
+
+(_input_) <k1, v1> ->
+*map* -> <k2, v2> ->
+*combine* -> <k2, v2> ->
+*reduce* -> <k3, v3> (_output_)
+
+== Hadoop Distributed File System
+
+Hadoop Distributed File System (HDFS) is a distributed file system designed to 
run on commodity hardware. Its goals are:
+
+* *Automatic Recovery*: Detection of faults and quick, automatic recovery from 
them is a core architectural goal of HDFS.
+* *Streaming Data Access*: HDFS is designed more for batch processing rather 
than interactive use by users. The emphasis is on high throughput of data 
access rather than low latency of data access.
+* *Large Data Sets*: A typical file in HDFS is gigabytes to terabytes in size. 
Thus, HDFS is tuned to support large files.
+* *Simple Coherency Model*: HDFS applications need a write-once-read-many 
access model for files. A file once created, written, and closed need not be 
changed except for appends and truncates.
+* *Moving Computation is Cheaper than Moving Data*: HDFS provides interfaces 
for applications to move themselves closer to where the data is located.
+* *Portability Across Heterogeneous Hardware and Software Platforms*: HDFS has 
been designed to be easily portable from one platform to another.
+
+== HDFS Architecture Diagram
+
+image::https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/images/hdfsarchitecture.png[]
+
+== HDFS Architecture
+
+HDFS has a master/slave architecture. An HDFS cluster consists of:
+
+* *NameNode*: Single NameNode, a master server that manages the file system 
namespace and regulates access to files by clients.
+* *DataNode*: There can be one or more DataNodes used for storage and serving 
read and write requests from the file system’s clients.
+
+== HDFS Useful Features
+
+New features and improvements are regularly implemented in HDFS. The following 
is a subset of useful features in HDFS:
+
+- *Authentication*: File permissions and authentication.
+- *Rack awareness*: To take a node’s physical location into account while 
scheduling tasks and allocating storage.
+- *Safemode*: An administrative mode for maintenance.
+- *fsck*: A utility to diagnose health of the file system, to find missing 
files or blocks.
+- *fetchdt*: A utility to fetch DelegationToken and store it in a file on the 
local system.
+- *Balancer*: A tool to balance the cluster when the data is unevenly 
distributed among DataNodes.
+- *Upgrade and rollback*: After a software upgrade, it is possible to rollback 
to HDFS’ state before the upgrade in case of unexpected problems.
+
+
+== HDFS Special Nodes
+
+Main nodes in HDFS are as follows:
+
+- Secondary NameNode
+- Checkpoint node
+- Backup node
+
+== HDFS Secondary NameNode
+
+* Secondary NameNode performs periodic checkpoints of the namespace.
+* It helps keep the size of file containing log of HDFS modifications within 
certain limits at the NameNode.
+
+== HDFS Checkpoint node
+
+* Checkpoint node performs periodic checkpoints of the namespace.
+* It helps minimize the size of the log stored at the NameNode containing 
changes to the HDFS.
+* It replaces the role previously filled by the Secondary NameNode.
+* The NameNode allows multiple Checkpoint nodes simultaneously, as long as 
there are no Backup nodes registered with the system.
+
+
+== HDFS Backup node
+
+* Backup node is an extension to the Checkpoint node.
+* In addition to checkpointing it also receives a stream of edits from the 
NameNode.
+* It maintains its own in-memory copy of the namespace, which is always in 
sync with the active NameNode namespace state.
+* Only one Backup node may be registered with the NameNode at once.
+
+== HDFS Commands
+
+All HDFS commands are invoked by the bin/hdfs script.
+Running the hdfs script without any arguments prints the description for all 
commands.
+
+* *Usage*: hdfs [SHELL_OPTIONS] COMMAND [GENERIC_OPTIONS] [COMMAND_OPTIONS]
+
+
+== Common HDFS Commands
+
+Some of the common HDFS commands are as follows:
+
+- *dfs*: Runs a filesystem command on file system supported in Hadoop.
+- *envvars*: This command displays the Hadoop environment variables.
+- *fsck*: Runs the HDFS file system checking utility.
+- *getconf*: Gets the configuration information from the config directory.
+
+== Apache Hadoop YARN
+* The fundamental idea of YARN is to split up the functionalities of resource 
management and job scheduling/monitoring into separate daemons.
+* The idea is to have a global ResourceManager (RM) and per-application 
ApplicationMaster (AM). An application is either a single job or a DAG of jobs.
+* The ResourceManager and the NodeManager form the data-computation framework. 
The ResourceManager is the ultimate authority that arbitrates resources among 
all the applications in the system.
+* The NodeManager is the per-machine framework agent who is responsible for 
containers, monitoring their resource usage (cpu, memory, disk, network) and 
reporting the same to the ResourceManager/Scheduler.
+
+== Apache Hadoop YARN Architecture Diagram
+
+image::https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/yarn_architecture.gif[]
+
+== Apache YARN Components
+* *ResourceManager*: The ResourceManager is the ultimate authority that 
arbitrates resources among all the applications in the system.
+* *NodeManager*: The NodeManager is the per-machine framework agent who is 
responsible for containers, monitoring their resource usage (cpu, memory, disk, 
network) and reporting the same to the ResourceManager/Scheduler.
+
+
+== Apache YARN ResourceManager
+The ResourceManager has two main components:
+* *Scheduler*: The Scheduler is responsible for allocating resources to the 
various running applications subject to familiar constraints of capacities, 
queues etc.
+* *ApplicationsManager*: The ApplicationsManager is responsible for accepting 
job-submissions, negotiating the first container for executing the application 
specific ApplicationMaster.
+
+== Common YARN Commands
+
+Some of the common YARN commands are as follows:
+
+- *daemonlog*: Get/Set the log level for a Log identified by a qualified class 
name in the daemon dynamically.
+- *nodemanager*: Start the NodeManager.
+- *resourcemanager*: Start the ResourceManager.
+- *schedulerconf*: Updates scheduler configuration.
+- *timelineserver*: Start the TimeLineServer.
+
+== Further Sources
+
+Refer official Hadoop Documentation at: https://hadoop.apache.org
\ No newline at end of file
diff --git a/content/Hadoop/src/main/resources/images/logo-apache.png 
b/content/Hadoop/src/main/resources/images/logo-apache.png
new file mode 100644
index 0000000..44c337b
Binary files /dev/null and 
b/content/Hadoop/src/main/resources/images/logo-apache.png differ
diff --git a/content/Hadoop/src/main/theme/apache.css 
b/content/Hadoop/src/main/theme/apache.css
new file mode 100644
index 0000000..079a53f
--- /dev/null
+++ b/content/Hadoop/src/main/theme/apache.css
@@ -0,0 +1,349 @@
+/*
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+*/
+
+section.has-light-background, section.has-light-background h1, 
section.has-light-background h2, section.has-light-background h3, 
section.has-light-background h4, section.has-light-background h5, 
section.has-light-background h6 {
+  color: #fff; }
+
+/*********************************************
+ * GLOBAL STYLES
+ *********************************************/
+body {
+  background-image: url("../../../images/background.jpg");
+  background-repeat: no-repeat;
+  background-size: cover;
+  background-color: #fff; }
+
+.reveal {
+  font-family: Panton-Regular, Helvetica, sans-serif;
+  font-size: 34px;
+  font-weight: normal;
+  color: #000; }
+
+::selection {
+  color: #000;
+  background: #bee4fd;
+  text-shadow: none; }
+
+.reveal .slides > section, .reveal .slides > section > section {
+  line-height: 1.3;
+  font-weight: inherit; }
+
+/*********************************************
+ * HEADERS
+ *********************************************/
+.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 {
+  margin: 0 0 20px 0;
+  color: #000;
+  font-family: Panton-Regular, Helvetica, sans-serif;
+  font-weight: 600;
+  line-height: 1.2;
+  letter-spacing: normal;
+  text-transform: uppercase;
+  text-shadow: none;
+  word-wrap: break-word; }
+
+.reveal h1 {
+  font-size: 2.5em; }
+
+.reveal h2 {
+  font-size: 1.6em; }
+
+.reveal h3 {
+  font-size: 1.3em; }
+
+.reveal h4 {
+  font-size: 1em; }
+
+.reveal h1 {
+  text-shadow: none; }
+
+/*********************************************
+ * OTHER
+ *********************************************/
+.reveal p {
+  margin: 20px 0;
+  line-height: 1.3; }
+
+/* Ensure certain elements are never larger than the slide itself */
+.reveal img, .reveal video, .reveal iframe {
+  max-width: 95%;
+  max-height: 95%; }
+
+.reveal strong, .reveal b {
+  font-weight: bold; }
+
+.reveal em {
+  font-style: italic; }
+
+.reveal ol, .reveal dl, .reveal ul {
+  display: inline-block;
+  text-align: left;
+  margin: 0 0 0 1em; }
+
+.reveal ol {
+  list-style-type: decimal; }
+
+.reveal ul {
+  list-style-type: disc; }
+
+.reveal ul ul {
+  list-style-type: square; }
+
+.reveal ul ul ul {
+  list-style-type: circle; }
+
+.reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul {
+  display: block;
+  margin-left: 40px; }
+
+.reveal dt {
+  font-weight: bold; }
+
+.reveal dd {
+  margin-left: 40px; }
+
+.reveal q, .reveal blockquote {
+  quotes: none; }
+
+.reveal blockquote {
+  display: block;
+  position: relative;
+  width: 70%;
+  margin: 20px auto;
+  padding: 5px;
+  font-style: italic;
+  background: rgba(255, 255, 255, 0.05);
+  box-shadow: 0 0 2px rgba(0, 0, 0, 0.2); }
+
+.reveal blockquote p:first-child, .reveal blockquote p:last-child {
+  display: inline-block; }
+
+.reveal q {
+  font-style: italic; }
+
+.reveal pre {
+  display: block;
+  position: relative;
+  width: 90%;
+  margin: 20px auto;
+  text-align: left;
+  font-size: 0.55em;
+  font-family: monospace;
+  line-height: 1.2em;
+  word-wrap: break-word;
+  box-shadow: 0 0 6px rgba(0, 0, 0, 0.3); }
+
+.reveal code {
+  font-family: monospace; }
+
+.reveal pre code {
+  display: block;
+  padding: 5px;
+  overflow: auto;
+  max-height: 400px;
+  word-wrap: normal;
+  background: #3F3F3F;
+  color: #DCDCDC; }
+
+.reveal table {
+  margin: auto;
+  border-collapse: collapse;
+  border-spacing: 0; }
+
+.reveal table th {
+  font-weight: bold; }
+
+.reveal table th, .reveal table td {
+  text-align: left;
+  padding: 0.2em 0.5em 0.2em 0.5em;
+  border-bottom: 1px solid; }
+
+.reveal table th[align="center"], .reveal table td[align="center"] {
+  text-align: center; }
+
+.reveal table th[align="right"], .reveal table td[align="right"] {
+  text-align: right; }
+
+.reveal table tr:last-child td {
+  border-bottom: none; }
+
+.reveal sup {
+  vertical-align: super; }
+
+.reveal sub {
+  vertical-align: sub; }
+
+.reveal small {
+  display: inline-block;
+  font-size: 0.6em;
+  line-height: 1.2em;
+  vertical-align: top; }
+
+.reveal small * {
+  vertical-align: top; }
+
+/*********************************************
+ * LINKS
+ *********************************************/
+.reveal a {
+  color: #42affa;
+  text-decoration: none;
+  -webkit-transition: color 0.15s ease;
+  -moz-transition: color 0.15s ease;
+  transition: color 0.15s ease; }
+
+.reveal a:hover {
+  color: #8dcffc;
+  text-shadow: none;
+  border: none; }
+
+.reveal .roll span:after {
+  color: #fff;
+  background: #068ee9; }
+
+/*********************************************
+ * IMAGES
+ *********************************************/
+.reveal section img {
+  margin: 15px 0;
+  /*background: rgba(255, 255, 255, 0.12);*/
+  /*border: 4px solid #fff;*/
+  /*box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);*/ }
+
+.reveal a img {
+  -webkit-transition: all 0.15s linear;
+  -moz-transition: all 0.15s linear;
+  transition: all 0.15s linear; }
+
+.reveal a:hover img {
+  background: rgba(255, 255, 255, 0.2);
+  border-color: #42affa;
+  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
+
+/*********************************************
+ * NAVIGATION CONTROLS
+ *********************************************/
+.reveal .controls div.navigate-left, .reveal .controls 
div.navigate-left.enabled {
+  border-right-color: #42affa; }
+
+.reveal .controls div.navigate-right, .reveal .controls 
div.navigate-right.enabled {
+  border-left-color: #42affa; }
+
+.reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled {
+  border-bottom-color: #42affa; }
+
+.reveal .controls div.navigate-down, .reveal .controls 
div.navigate-down.enabled {
+  border-top-color: #42affa; }
+
+.reveal .controls div.navigate-left.enabled:hover {
+  border-right-color: #8dcffc; }
+
+.reveal .controls div.navigate-right.enabled:hover {
+  border-left-color: #8dcffc; }
+
+.reveal .controls div.navigate-up.enabled:hover {
+  border-bottom-color: #8dcffc; }
+
+.reveal .controls div.navigate-down.enabled:hover {
+  border-top-color: #8dcffc; }
+
+/*********************************************
+ * PROGRESS BAR
+ *********************************************/
+.reveal .progress {
+  background: rgba(0, 0, 0, 0.2); }
+
+.reveal .progress span {
+  background: #42affa;
+  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
+  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
+  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
+
+/*********************************************
+ * SLIDE NUMBER
+ *********************************************/
+.reveal .slide-number {
+  color: #42affa; }
+
+.reveal .red {
+  color: red;
+}
+
+/*********************************************
+ * C3JS Charts
+ *********************************************/
+
+.c3 {
+  fill: white;  }
+
+.c3 line, .c3 path {
+  stroke: white !important; }
+
+/*********************************************
+ * Custom styling of individual charts
+ *********************************************/
+
+#most-significant-barriers .c3-shape .c3-shape-2 .c3-bar .c3-bar-2 {
+  color: red;
+}
+
+/*********************************************
+ * Footer and Header
+ *********************************************/
+
+.header {
+  position:relative;
+}
+/*.header .left {
+  position:absolute;
+  top: 5px;
+  left: 5px;
+  width: 196px;
+  height: 100px;
+  background-image: url("../../../images/logo-building-iot.png");
+}*/
+.header .right {
+  position:absolute;
+  top: 5px;
+  right: 5px;
+  width: 246px;
+  height: 100px;
+  background-image: url("../../../images/logo-apache.png");
+}
+
+.footer {
+  position:relative;
+}
+/*.footer .left {
+  position:absolute;
+  bottom: 5px;
+  left: 5px;
+  width: 392px;
+  height: 50px;
+  background-image: url("../../../images/logo-company.png");
+}
+.footer .right {
+  position:absolute;
+  bottom: 5px;
+  right: 5px;
+  width: 306px;
+  height: 100px;
+  background-image: url("../../../images/logo-training.png");
+}*/
+

Reply via email to