Commit a5be1994 authored by MartinFIT's avatar MartinFIT

Restructuralized files, removed unused diagrams, added CD/DVD content

parent f092cc2f
Cassandra IP: 172.20.0.2
Zookeeper IP: 172.20.0.4
Kafka IP: 172.20.0.5
export JAVA_HOME=/opt/jdk
export PATH=${PATH}:/opt/jdk/bin
export KAFKA_ADVERTISED_HOST_NAME=172.20.0.5
export KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
export KAFKA_ADVERTISED_PORT=9092
export KAFKA_REPLICA_FETCH_MAX_BYTES=500000000
export KAFKA_MESSAGE_MAX_BYTES=500000000
export KAFKA_REQUEST_TIMEOUT_MS=50000
Maven:
export JAVA_HOME=/docker-java-home
export JAVA_HOME=/usr/lib/jvm/java-9-openjdk-amd64
export PATH=${PATH}:/usr/lib/jvm/java-9-openjdk-amd64/bin
# certs workaround
if java -fullversion 2>&1 | grep -q '"9.'; then \
curl --silent --show-error --location --fail --retry 3 --output /etc/ssl/certs/java/cacerts https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/openjdk-9-slim-cacerts; \
fi
\ No newline at end of file
......@@ -5,7 +5,7 @@
# Settings for high-performance machine
docker-machine rm default
docker-machine create --virtualbox-memory "24576" --virtualbox-cpu-count "4" --virtualbox-disk-size "45000" --virtualbox-share-folder "C:\\Users:c/Users" --driver virtualbox default
docker-machine create --virtualbox-memory "4096" --virtualbox-cpu-count "2" --virtualbox-disk-size "45000" --virtualbox-share-folder "C:\\Users:c/Users" --driver virtualbox default
eval "$(docker-machine env default)"
docker-machine ssh default "mkdir /home/docker/Users"
......
No preview for this file type
......@@ -221,7 +221,7 @@ Distribuovaná databáze se skládá z~většího počtu samostatných databáz
\subsection{Rozdělení}
\subsubsection{Homogenní}
Všechny uzly používají identické SŘBD a~operační systémy. Uzly mají informace o~ostatních uzlech a~spolupracují při zpracování uživatelských požadavků. Homogenní distribuovaná databáze se uživateli navenek jeví jako jeden systém. Je jednodušší jej navrhnout a~spravovat. Homogenní distribuované databáze můžeme ještě dělit na autonomní a neautonomní:
Všechny uzly používají identické SŘBD a~operační systémy. Uzly mají informace o~ostatních uzlech a~spolupracují při zpracování uživatelských požadavků. Homogenní distribuovaná databáze se uživateli navenek jeví jako jeden systém. Je jednodušší jej navrhnout a~spravovat. Homogenní distribuované databáze můžeme ještě dělit na autonomní a~neautonomní:
\begin{itemize}
\item Autonomní -- Každá databáze je nezávislá, neexistuje žádný centrální uzel. Databáze jsou spravovány aplikací, a~pro předávání dat používají zasílání zpráv.
......@@ -561,10 +561,10 @@ HDFS nabízí tři API, jejichž vlastnosti znázorňuje tabulka \ref{HDFSApi}.
\centering
\begin{tabular}{| l | l | l | l | l |}
\hline
Soubor. systém & Metoda & Schéma/Prefix & Zápis/Čtení & Verze \\ \hline
HDFS & RPC & \texttt{hdfs://} & Zápis i~čtení & Pouze stejná verze \\ \hline
HFTP & HTTP & \texttt{hftp://} & Pouze čtení & Nezávislé na verzi \\ \hline
WebHDFS & HTTP (REST) & \texttt{webhdfs://} & Zápis i~čtení & Nezávislé na verzi \\ \hline
File System & Comm. Method & Scheme / Prefix & Read / Write & Cross Version \\ \hline
HDFS & RPC & \texttt{hdfs://} & Read / Write & Same HDFS v. only \\ \hline
HFTP & HTTP & \texttt{hftp://} & Read only & Version independent \\ \hline
WebHDFS & HTTP (REST) & \texttt{webhdfs://} & Read / Write & Version independent \\ \hline
\end{tabular}\par
\bigskip
\caption{Druhy API, které HDFS poskytuje, převzato z~referenční dokumentace \cite{springHadoopReference}.}
......@@ -986,13 +986,13 @@ Je ale potřeba mít dostatečnou velikost paměti RAM k~načtení aktivních p
Většina konfigurací, kde je Kafka nasazena, nevyžaduje značný výkon procesoru. Výjimkou je však případ, kdy je zapnuto \texttt{SSL}, požadavky na výkon CPU potom mohou vzrůst. Je doporučeno zvolit moderní procesor s~více jádry, běžný Kafka cluster využije 24 jader. Větší počet jader má větší význam než vyšší frekvence procesoru.
Je také doporučeno nainstalovat více disků pro získání optimální propustnosti a~nesdílet tyto disky s~jinými aplikacemi nebo aktivitami operačního systému, aby byla zaručena nízká latence \cite{kafkaBestPractises}. Jisté výhody mají i~SSD disky, případně zapojení disků v~\texttt{RAID}. Důležitou součástí distribuovaného systému je rychlá a~spolehlivá síť s nízkými latencemi při přenosech. Moderní ethernetová připojení s~rychlostí 1 Gb/s, či 10 Gb/s jsou dostatečná. Nedoporučuje se provozovat clustery, jejichž uzly se nachází v~geograficky vzdálených lokacích.
Je také doporučeno nainstalovat více disků pro získání optimální propustnosti a~nesdílet tyto disky s~jinými aplikacemi nebo aktivitami operačního systému, aby byla zaručena nízká latence \cite{kafkaBestPractises}. Jisté výhody mají i~SSD disky, případně zapojení disků v~\texttt{RAID}. Důležitou součástí distribuovaného systému je rychlá a~spolehlivá síť s~nízkými latencemi při přenosech. Moderní ethernetová připojení s~rychlostí 1 Gb/s, či 10 Gb/s jsou dostatečná. Nedoporučuje se provozovat clustery, jejichž uzly se nachází v~geograficky vzdálených lokacích.
\subsection{Cassandra}
Výběr hardware závisí na konkrétním případu použití. Správná kombinace paměti RAM, CPU, disků, počtu uzlů a~sítě je obrovsky rozdílná pro prostředí se statickými daty, ke kterým se přistupuje zřídka, a~pro prostředí s~nestálými daty, ke kterým se přistupuje často \cite{cassandraPlanningHW}. Pro otestování clusteru před nasazením lze využít nástroje \texttt{cassandra-stress}, který provede řadu výkonostních testů, více na webových stránkách společnosti DataStax \footnote{https://docs.datastax.com/en/dse/6.0/dse-admin/datastax\_enterprise/tools/toolsCStress.html}.
Cassandra běží ve virtuálním stroji Java s~přidělenou fixní velikostí \texttt{heap}-u. Cassandra používá značný objem paměti RAM mimo \texttt{heap} pro kompresi metadat, \texttt{bloom} filtry, řádky, klíče, čítače atd. Využívá výhod \texttt{pagecache} operačního systému, kam ukládá části naposledy manipulovaných souborů z~RAM pro okamžité znovupoužití.
Minimální produkční server vyžaduje aspoň 2 jádra procesoru a~aspoň 8 GB RAM \cite{cassandraHW}. Typická konfigurace bývá 8 a více jader spolu s 32 GB RAM.
Minimální produkční server vyžaduje aspoň 2 jádra procesoru a~aspoň 8 GB RAM \cite{cassandraHW}. Typická konfigurace bývá 8 a~více jader spolu s~32 GB RAM.
Cassandra je vysoce vícevláknová, obsluhující mnoho souběžných požadavků (čtení i~zápisů) v~mnoha vláknech běžících na tolika jádrech CPU, kolik je dostupných. Zápis probíhá do tzv. \texttt{commitlog}-u a~poté vkládáním dat do \texttt{memtable} (optimalizovaná cache pro data, která mohou být vyhledána pomocí klíče), takže operace zápisu bývají především limitované procesorem. V~důsledku toho se po přidání dalších výpočetních jader zvýší propustnost čtení i~zápisů \cite{cassandraHW}.
......
......@@ -7,6 +7,25 @@
%\chapter{Manuál}
\chapter{Obsah přiloženého paměťového média}
Součástí diplomové práce je paměťové médium, které obsahuje:
\begin{itemize}
\item \texttt{DIP\_DistributedRepository} -- zdrojové kódy modulů distribuovaného úložiště
\item \texttt{Docker} -- běhové prostředí, skripty a~Docker obrazy technologií pro běh systému
\item \texttt{PCAP\_Input} -- adresář, jehož cesta je předána klientské demo aplikaci ve spouštěcím skriptu, slouží jako zdroj PCAP souborů k~odeslání do distribuovaného úložiště
\item \texttt{SEP\_DistributedRepository} -- zdrojové kódy modulů prototypu
\item \texttt{Text} -- zdrojové kódy k~technické zprávě včetně všech diagramů ve formátu PDF a~formátu pro grafický online nástroj \texttt{draw.io} \footnote{https://www.draw.io/}
\item \texttt{LICENSE} -- licence systému
\item \texttt{README.md} -- návod k~běhovému prostředí a~ke spuštění systému
\end{itemize}
\chapter{Konfigurace} \label{configuration}
\section{Systém distribuovaného úložiště}
Konfigurace aplikace DistributedRepository se nachází v~souboru \\ \texttt{DistributedRepository/src/main/resources/application.properties} \\
......@@ -92,7 +111,7 @@ cz.vutbr.fit.producerdemo.demo.LoadPcapProducerDemo.dataSourceStorage=HDFS
}
\chapter{Běhové prostředí} \label{dockerEnv}
Jako běhové prostředí pro systém distribuovaného repositáře byl zvolen projekt Docker \footnote{https://www.docker.com/} z~důvodu jednodušší a~oddělené správy použitých technologií. Každá technologie běží v~odděleném kontejneru spuštěném z~předem připraveného obrazu. Všechny soubory a~skripty týkající se běhového prostředí jsou uloženy v~adresáři \texttt{Docker/}.
Jako běhové prostředí pro systém distribuovaného repositáře byl zvolen projekt Docker \footnote{https://www.docker.com/} z~důvodu jednodušší a~oddělené správy použitých technologií. Každá technologie běží v~odděleném kontejneru spuštěném z~předem připraveného obrazu. Všechny soubory a~skripty týkající se běhového prostředí jsou uloženy v~adresáři \texttt{Docker}.
\section{Obrazy}
Každou technologii reprezentuje samostatný obraz (angl. \texttt{image}), v~němž je daná technologie nainstalována.
......
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment