Commit 6d07069a authored by Decoupes Remy's avatar Decoupes Remy
Browse files

seperate mono-node with cluster

No related merge requests found
Showing with 197 additions and 95 deletions
+197 -95
...@@ -7,7 +7,7 @@ This project aims to deploy a datalake and its ecosystem using **[Ansible](http ...@@ -7,7 +7,7 @@ This project aims to deploy a datalake and its ecosystem using **[Ansible](http
Acutally, this project does : Acutally, this project does :
1. Deploy a mono-node HDFS on : 1. Deploy a mono-node HDFS on :
* [Your own computer using a virtual machine with Vagrant & ansible provision](#deploy-mono-node-hdfs-on-a-VM) * [Your own computer using a virtual machine with Vagrant & ansible provision](#deploy-mono-node-hdfs-on-a-vm)
* [a server using ansible](#deploy-mono-node-hdfs-on-a-server) * [a server using ansible](#deploy-mono-node-hdfs-on-a-server)
2. Deploy a cluster HDFS on : 2. Deploy a cluster HDFS on :
* [Your own computer using as many virtual machine you want using Vagrant & ansible](#deploy-cluster-hdfs-with-multiple-vms) * [Your own computer using as many virtual machine you want using Vagrant & ansible](#deploy-cluster-hdfs-with-multiple-vms)
......
...@@ -6,101 +6,101 @@ ...@@ -6,101 +6,101 @@
- "Be aware that things may not work when using jdk 11 like explore HDFS using webserver on port 9870" - "Be aware that things may not work when using jdk 11 like explore HDFS using webserver on port 9870"
- "Default IPv4 address is : {{ ansible_default_ipv4.address }}" - "Default IPv4 address is : {{ ansible_default_ipv4.address }}"
# - name: Set java home as environment variable - name: Set java home as environment variable
# become: yes become: yes
# apt: apt:
# name: name:
# - openjdk-11-jdk - openjdk-11-jdk
# - name: create hadoop group - name: create hadoop group
# become: yes become: yes
# group: group:
# name: hadoop name: hadoop
# - name: create hadoop user - name: create hadoop user
# become: yes become: yes
# user: user:
# name: hadoop name: hadoop
# group: hadoop group: hadoop
# home: "{{ hadoopUSRHome }}" home: "{{ hadoopUSRHome }}"
# createhome: yes createhome: yes
# system: yes system: yes
# - name: Set JAVA_HOME as environment variable - name: Set JAVA_HOME as environment variable
# become: yes become: yes
# become_user : hadoop become_user : hadoop
# blockinfile: blockinfile:
# insertafter: EOF insertafter: EOF
# path : ~/.bashrc path : ~/.bashrc
# block: | block: |
# export JAVA_HOME={{ javahome }} export JAVA_HOME={{ javahome }}
# export HADOOP_HOME=/usr/local/hadoop export HADOOP_HOME=/usr/local/hadoop
# export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/bin
# - name: source .bashrc - name: source .bashrc
# become: yes become: yes
# become_user: hadoop become_user: hadoop
# shell: source ~/.bashrc shell: source ~/.bashrc
# args: args:
# executable: /bin/bash executable: /bin/bash
# - name: create .ssh directory - name: create .ssh directory
# become: yes become: yes
# file: file:
# path: "{{ hadoopUSRHome }}/.ssh/" path: "{{ hadoopUSRHome }}/.ssh/"
# state: directory state: directory
# owner: hadoop owner: hadoop
# group: hadoop group: hadoop
# mode: 0700 mode: 0700
# - name: copy ssh key - name: copy ssh key
# become: yes become: yes
# copy: copy:
# src: "{{ item }}" src: "{{ item }}"
# dest: "{{ hadoopUSRHome }}/.ssh/" dest: "{{ hadoopUSRHome }}/.ssh/"
# owner: hadoop owner: hadoop
# group: hadoop group: hadoop
# mode: 0600 mode: 0600
# with_items: with_items:
# - keys/id_rsa - keys/id_rsa
# - keys/id_rsa.pub - keys/id_rsa.pub
# - name: authorized ssh key for hadoop user - name: authorized ssh key for hadoop user
# become: yes become: yes
# authorized_key: authorized_key:
# user: hadoop user: hadoop
# state: present state: present
# key: "{{ lookup('file', 'keys/id_rsa.pub') }}" key: "{{ lookup('file', 'keys/id_rsa.pub') }}"
# - name: create a tempory directory - name: create a tempory directory
# become: yes become: yes
# file: file:
# state: directory state: directory
# path: "{{ hadoopUSRHome }}/tmp" path: "{{ hadoopUSRHome }}/tmp"
# - name: create a prod directory for hadoop - name: create a prod directory for hadoop
# become: yes become: yes
# file: file:
# state: directory state: directory
# path: "{{ hadoopDir }}" path: "{{ hadoopDir }}"
# - name: "Download and Extract hadoop-{{ hadoopVersion }}" - name: "Download and Extract hadoop-{{ hadoopVersion }}"
# become: yes become: yes
# unarchive: unarchive:
# src: "http://apache.mirrors.ovh.net/ftp.apache.org/dist/hadoop/core/hadoop-{{ hadoopVersion }}/hadoop-{{ hadoopVersion }}.tar.gz" src: "http://apache.mirrors.ovh.net/ftp.apache.org/dist/hadoop/core/hadoop-{{ hadoopVersion }}/hadoop-{{ hadoopVersion }}.tar.gz"
# remote_src: yes remote_src: yes
# dest: "{{ hadoopDir }}" dest: "{{ hadoopDir }}"
# extra_opts: [--strip-components=1] extra_opts: [--strip-components=1]
# owner: hadoop owner: hadoop
# group: hadoop group: hadoop
# - name : Set JAVA_HOME in hadoop-env.sh - name : Set JAVA_HOME in hadoop-env.sh
# become: yes become: yes
# blockinfile: blockinfile:
# insertafter: EOF insertafter: EOF
# path: "{{ hadoopDir }}/etc/hadoop/hadoop-env.sh" path: "{{ hadoopDir }}/etc/hadoop/hadoop-env.sh"
# block: "export JAVA_HOME={{ javahome }}" block: "export JAVA_HOME={{ javahome }}"
# - name: configure core-site.xml # - name: configure core-site.xml
# become: yes # become: yes
......
- name: configure core-site.xml
become: yes
template:
src: templates/core-site.j2
dest: "{{ hadoopDir }}/etc/hadoop/core-site.xml"
owner: hadoop
group: hadoop
- name: configure hdfs-site.xml
become: yes
template:
src: templates/hdfs-site.j2
dest: "{{ hadoopDir }}/etc/hadoop/hdfs-site.xml"
owner: hadoop
group: hadoop
- name: configure mapred-site.xml
become: yes
template:
src: templates/mapred-site.j2
dest: "{{ hadoopDir }}/etc/hadoop/mapred-site.xml"
owner: hadoop
group: hadoop
- name: copy hadoop service file
become: yes
template:
src: templates/hadoop.service.j2
dest: /etc/systemd/system/hadoop.service
- name: enable hadoop service
become: yes
service:
daemon_reload: yes
name: hadoop
state: stopped
enabled: yes
- name: HDFS has been already formatted ?
become: yes
stat:
path: /tmp/hadoop-hadoop/dfs/name/current/VERSION
register: file_exist
- debug:
msg: "/tmp/hadoop-hadoop/dfs/name/current/VERSION exists ? : {{ file_exist.stat.exists}}"
- name: format HDFS
become: yes
become_user: hadoop
shell: "{{ hadoopDir }}/bin/hdfs namenode -format"
args:
executable: /bin/bash
when: file_exist.stat.exists == False
- name: stopped hadoop service
become: yes
service:
name: hadoop
state: stopped
- name: start hadoop service
become: yes
service:
name: hadoop
state: started
\ No newline at end of file
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
\ No newline at end of file
[Unit]
Description=Hadoop DFS namenode and datanode
After=syslog.target network.target remote-fs.target nss-lookup.target network-online.target
Requires=network-online.target
[Service]
User=hadoop
Group=hadoop
Type=forking
ExecStart={{ hadoopDir }}sbin/start-dfs.sh
ExecStop={{ hadoopDir }}sbin/stop-dfs.sh
WorkingDirectory={{ hadoopDir }}
Environment=JAVA_HOME={{ javahome }}
Environment=HADOOP_HOME={{ hadoopDir }}
TimeoutStartSec=2min
# Restart=on-failure
PIDFile=/tmp/hadoop-hadoop-namenode.pid
[Install]
WantedBy=multi-user.target
\ No newline at end of file
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
\ No newline at end of file
Supports Markdown
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