# Методы обработки больших объёмов данных
Здесь рассматривается только установка ПО для дальнейшей работы, искать выполненных лаб тут не стоит, потратишь время.
## Подготовительная работа
Привет, если ты здесь, это значит то, что либо твоё время поджимает и уже конец семестра, либо ты в тупике и всё плохо. **Не торопись и следуй гайду.** Без лишних слов, пошли спасать твою **ass**.
### Что тебе надо:
Внимание на **пункт 3**.
1) VMware Workstation
2) CentOS 7
3) hadoop-2.10.2.tar.gz (устанавливать на созданную виртуалку, в терминал пропишешь **НЕ ОТ РУТА**: wget http://mirror.linux-ia64.org/apache/hadoop/common/hadoop-2.10.2/hadoop-2.10.2.tar.gz)
4) jdk-8u221-linux-x64_tar.gz (устанавливать на созданную виртуалку)
### Где ты это можешь взять:
Со скачкой всех файлов не торопись.
Этот диск просуществует хз сколько, поэтому, если ты нашёл поломанную ссыль, то извиняй:
https://drive.google.com/drive/folders/1o_YL-h9Skuz8_LOpwN0N0MTHWgxyipqr?usp=sharing
## Используемая команда tar
Не ссы, это просто способ распаковать архив.
**Синтаксис**: tar -xvf *имя файла*
## Твой порядок действий
1) Надеюсь, что ты смог поставить себе VMware Workstation, потому что рассматривать инструкуцию по её установке я не буду.
2) Тебе надо создать виртуальную машинку с ос, которая называется CentOS 7, выдели ей: 6Гб RAM, 2 ядра CPU, 20Гб в файловой системе (можно и больше, чем указано в каждом пункте, если хочешь).
3) Накатил? Обнови! Куда тыкать? На скрине увидишь. 
4) Окей, с установкой VMware Workstation и CentOS 7 справились, осталось ещё несколько шагов.
5) Архив с **jdk-8u221-linux-x64_tar.gz** найдёшь по ссылке на гугл диск, которая оставлена выше. Вставь ссылку в браузер на виртуалке и скачивай.
6) После скачки файлов, нажми (не обращай внимание на hadoop-2.9.2, немного позже после написания гайда он был снесён и заменён на hadoop-2.10.2): 

7) Окей, зачем тебе нужны телодвижения из **пункта 6**: перетащи эти файлы в раздел "Home", это нужно дальше: 
8) Найс, первый этап ты прошёл.
## Логика дальнейшего происходящего
1) У тебя есть архивы в "Home", которые надо распаковать.
2) Затем провести небольшое редактирование некоторых конфигов.
3) Добавить скрипты, которые пригодятся для дальнейшей работы.
## Работа с архивами
Первоначальная вещь, которую надо сделать
` # yum install mc wget curl ssh rsync screen make`
Ты работаешь **в домашнем разделе**, если не прописано переходить в какой-либо другой раздел, ты не переходишь.
Команды **выполняются не от рута**, лишнее напоминание тебе:
> "$" - не рут
> "#" - рут
1. Открой терминал
2. Пропиши *cd ~* (переход в домашний раздел)
3. Распакуй архив с jdk-8u221-linux-x64_tar.gz:
> $ tar -xvf jdk-8u221-linux-x64_tar.gz
4. Установка hadoop-2.10.2, придётся подождать:
> $ wget http://mirror.linux-ia64.org/apache/hadoop/common/hadoop-2.10.2/hadoop-2.10.2.tar.gz

5. Распаковка hadoop-2.10.2:
> $ tar -xvf hadoop-2.10.2.tar.gz
6. Создай папку bin:
> $ mkdir bin
**Чтобы убедиться, что всё на месте и там, где надо, сделай следующее:**
В терминале пропиши *ls*, ты должен увидеть примерно такой вывод: 
Красное - архивы, не переживай, всё хорошо, если ты видишь над архивами синие папки, которые в названии имеют начало названия твоего архива.
## Работа с конфигами
**Работаешь по схеме "написал - сохранил"**
1. Необходимо отредачить файл в домашнем каталоге, который исполняется оболочкой при входе.
> $ mcedit ~/.bash_profile
```
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
JAVA_HOME=$HOME/jdk1.8.0_221
HADOOP_HOME=$HOME/hadoop-2.10.2
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin
export JAVA_HOME
export HADOOP_HOME
export PATH
```
Так это выглядит в консоли, потом нажми снизу на "2 Save"

2. Настройка беспарольного доступа по ssh:
```
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
$ ssh localhost
$ exit
```
3. Найстройка hadoop:
```
$ cd hadoop-2.10.2
$ cd etc
$ cd hadoop
$ mcedit hadoop-env.sh
```
**Пишешь:** JAVA_HOME=$HOME/jdk1.8.0_221

------
```
$ mcedit core-site.xml
```
**Пишешь:**
```
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
```

-----
```
$ mcedit hdfs-site.xml
```
**Пишешь:**
```
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
```

----
```
$ mcedit mapred-site.xml.template
```
**Пишешь:**
```
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
```

----
```
$ mcedit yarn-site.xml
```
**Пишешь:**
```
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
```

## Работа со скриптами
Помнишь, что ты создавал папку bin? Окей, перейди на гугл диск и скачай с него архив со скриптами, перенеси их в папку "Home", в этой папке увидишь папку "bin". Т.е твои скрипты лежат по следующему пути "Home"-"bin" и ты работаешь из консоли именно в ~/bin:
> [you@localhost bin] $ tar -xvf scripts.tar.gz
Убедись, что всё ок:

Твои нужные скрипты:
```
− hdpStart.sh — старт HDFS и yarn;
− hdpStop.sh — остановка yarn и HDFS;
− hdpFormat.sh — форматирование HDFS, необходимо перед стартом
первый раз;
− hdpCompileJava.sh — скрипт компиляции .java в .jar, поддерживает
один параметр — имя входного .java-файла.
```
## Финал
Надеюсь, что ты отстрадал не зря и морально готов к тому, чтобы убедиться в работоспособдности этой адской машины.
Сначала тебе надо перезагрузиться, чтобы все применённые изменения вступили в силу:
> $ reboot
Если ты читаешь это, то ты уже перезагрузил свою машинку, самое время открыть консоль и офигеть от жизни. Что тебе надо написать в ней:
> $ cd ~
> $ hdpFormat.sh
> $ hdpStart.sh
Перейди в браузер на виртуалке и набери http://localhost:50070
Если ты молодец, то увидишь в окне браузера что-то зелёненькое: 
Вся эта адская машина не любит спящий режим, поэтому, если ты положишь болт на моё предупреждение, то тут поможет только бог. Чтобы грамотно завершить работу напиши в терминале:
> $ hdpStop.sh
Нетрудно, правда?
### **Увидел?**
| Да | Нет |
| -------- | -------- |
| Красавчик | Добро пожаловать в документацию |