Académique Documents
Professionnel Documents
Culture Documents
BIG DATA:
Ce qui change dans le cycle de développement
u Approche traditionnelle – le système est crée selon une demande
u Appropriée pour :
u Des données structurées
u Opérations et processus répétitifs
1 Le responsable métier définit
u Sources relativement stables
les besoins : Quelles
u Besoins bien compris et bien cadrés questions doit-on poser?
4 2
De nouvelles exigences IT conçoit une solution
nécessitent une nouvelle avec un ensemble de
conception et Construction structures et fonctionnalités
3
Le responsable métier exécute
les requêtes pour répondre aux
questions – encore et encore
BIG DATA:
Ce qui change dans le cycle de développement
u Approche Big Data – les données sont là, il faut les explorer
u Les sources guident la découverte
1
4
2
De nouvelles IT fournit une plateforme
idées conduisent qui permet une exploration
à l’intégration de créative de toutes les
technologies données disponibles
traditionnelles 3
• Sqoop : un outil conçu pour transférer efficacement une • Oozie : un système de flux de travail
masse de données entre Apache Hadoop et un stockage de (workflow) dont l'objectif est de simplifier la
coordination et la séquence de différents
données structuré tel que les bases de données
traitements (programme Map/Reduce, scripts
relationnelles. Pig,…).
11/06/2020
Talend
Volume
Vitesse
Variété
Véracité
Valeur 5
KAFKA
11/06/2020
Big Data
FLUME
11
Big Data
FLUME
Il sert a récupérer les flux des données générer par les sites de e-commerce, les
réseaux sociaux, les webcrawlers (Un robot d'indexation) et les dispositifs IOT. Il
sont des données non- structures
Pourquoi Flume?
Normalement, il y a tellement de données traitées sur un cluster Hadoop, donc il y
aura des centaines à des milliers de grands serveurs produisant les données. De telles
données énormes essayant d'écrire en HDFS peuvent causer d'énormes problèmes.
12
11/06/2020
FLUME
sources, pour consommer les messages envoyés par une source externe (une application,
un script, un syslog, …).
channels, pour stocker les logs au niveau de l’agent
sinks, pour consommer les logs d’un channel par lot et les écrire sur une destination
13
Big Data
FLUME
Exemple simple
D’abord, créer un dossier « Source » dans votre système local:
Par exemple: /home/cloudera/Desktop/Source
Big Data
FLUME
Exemple simple
Ecrire les propriétés suivantes dans le fichier:
Agent.sources=Source
Agent.sinks=Hdfs
Agent.channels=Channel
Agent.sources.Source.channels=Channel
Agent.sinks.Hdfs.channel=Channel
Agent.sources.Source.type=spooldir
Agent.sources.Source.spoolDir=/home/cloudera/Desktop/Source
Agent.sinks.Hdfs.type=HDFS
Agent.sinks.Hdfs.hdfs.path=/Sink
Agent.sinks.Hdfs.hdfs.filePrefix=events
Agent.sinks.Hdfs.hdfs.fileSuffix=.log
Agent.sinks.Hdfs.hdfs.fileType=DataStream
Agent.channels.Channel.type=file 78
Big Data
FLUME
Exemple simple
Démarrer flume par la commande:
79
11/06/2020
Big Data
FLUME
Exemple2: avec NetCat
a1.sources = r1 NetCat.properties
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
# Describe the sink
a1.sinks.k1.type = logger
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
80
Big Data
Sqoop
18
11/06/2020
Big Data
Sqoop
C’est quoi Sqoop
Apache Sqoop est un outil conçu pour transférer efficacement des données entre
Apache Hadoop et des bases de données externes
19
Sqoop
C’est quoi Sqoop
Fondamentalement, Sqoop («SQL-to-Hadoop») est un outil de ligne de commande
simple. Il offre les capacités suivantes:
20
11/06/2020
Sqoop
Commandes et syntaxe de base -Sqoop-Import-
La commande d'importation Sqoop importe une table d'un SGBDR vers HDFS.
Chaque enregistrement d'une table est considéré comme un enregistrement distinct
dans HDFS.
Importer une table dans HDFS
$ sqoop import --connect --table --username --password --target-dir
Exemple
sqoop import --connect "jdbc:mysql://192.168.56.1:3306/test" --table
"personne" --username root --password 1234 --target-dir /personnes --m 1
21
Sqoop
Commandes et syntaxe de base -Sqoop-Import-
Importation des données sélectionnées de la table
$ sqoop import --connect --table --username --password --columns --where
Exemple
sqoop import --connect "jdbc:mysql://192.168.56.1:3306/test" --table
"personne" --username root --password 1234 --columns id,nom --where "age<40" -
-target-dir /personnes --m 1
Exemple
sqoop import --connect "jdbc:mysql://192.168.56.1:3306/test" --username root
--password 1234 --query 'select id,nom from personne where $CONDITIONS and
age>40' --target-dir /personnes --m 1
22
11/06/2020
Big Data
Sqoop
Commandes et syntaxe de base -Sqoop-Import-
Importation incrémentielles
sqoop import --connect jdbc:mysql://192.168.56.1:3306/test --username root -
-password 1234 --table personne --target-dir /personnes --m 1 --incremental
append --check-column id --last-value 2
167
Big Data
Sqoop
Commandes et syntaxe de base -Sqoop-Import-
Importation des données vers Hive
Exemple
sqoop import \
--connect "jdbc:mysql://192.168.56.1:3306/test"
--username root –P \
--table personne \
--target-dir /usr/hive/warehouse/maBase.db \
--fields-terminated-by "," \
--hive-import \
--create-hive-table \
--hive-table maBase.personne\
11/06/2020
Sqoop
Commandes et syntaxe de base -Sqoop-Import-
Importation des données vers Hbase
Exemple
sqoop import \
--connect "jdbc:mysql://192.168.56.1:3306/test" \
--table personne \
--hbase-table personne\
--hbase-row-key id\
--column-family metadata \
--hbase-create-table \
--username root -P
Big Data
Sqoop
Commandes et syntaxe de base -Sqoop-Export-
Exporter depuis HDFS
Exemple
sqoop export --connect jdbc:mysql://192.168.56.1:3306/test --table
personne --export-dir /sqoop/newstudent/part-m-00000
11/06/2020
Big Data
KAFKA
171
Spring Data
Kafka
Présentation
Apache Kafka est une plateforme de streaming qui bénéficie de trois
fonctionnalités:
Spring Data
Kafka
Architecture de Kafka
Spring Data
Kafka
Installation sur Cloudera
Taper les commandes suivantes:
cd /etc/yum.repos.d
wget
http://archive.cloudera.com/kafka/redhat/6/x86_64/kafka/
sudo yum clean all
sudo yum install kafka
sudo yum install kafka-server
sudo service kafka-server start
11/06/2020
Spring Data
Kafka
Créer un topic
./kafka-topics.sh --create --zookeeper localhost:2181
--replication-factor 1 --partitions 1 --topic Tube
Lister les topics
./kafka-topics.sh --list --zookeeper localhost:2181
Démarrer Kafka
./kafka-server-start.sh ../config/server.properties
Spring Data
Kafka
Lancer deux fenêtres
Spring Data
Kafka
Créer le producteur
Dans la fenêtre à gauche, taper la commande pour envoyer les messages vers le topic
(comme un buffer)
./kafka-console-producer.sh --broker-list localhost:9093 --topic Tube
Spring Data
Kafka
Créer le consommateur
Dans la fenêtre à droite, taper la commande de réception, ou plus précisément: la
commande qui lit le contenu du topic Tube
./kafka-console-consumer.sh --bootstrap-server localhost:9093 --topic Tube
Vous pouvez maintenant écrire des messages dans le producer et remarquer que
consumer est toujours synchronisé avec toute modification du topic.
Pour arrêter Kafka: ./kafka-server-stop.sh
11/06/2020
Spring Data
Kafka
Supprimer les topics
Supprimez les deux sujets en utilisant:
kafka-topics --zookeeper localhost:2181 --delete --topic test-topic
kafka-topics --zookeeper localhost:2181 --delete --topic replicated-topic
Spring Data
Kafka
Dépendance Java
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-
clients</artifactId>
<version>0.9.0.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.21</version>
</dependency>
11/06/2020
Spring Data
Kafka
Producteur en Java
public class SimpleProducer {
public static void main(String[] args) {
Properties p = new Properties();
p.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.102:9092");
p.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
p.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
KafkaProducer<String, String> producer=new KafkaProducer<>(p);
ProducerRecord<String, String> record=new ProducerRecord<String, String>("Tube", "Bonjour");
producer.send(record);
producer.flush();
producer.close();
}
}
Spring Data
Kafka
Consommateur en Java
public class SimpleConsumer {
public static void main(String[] args) {
String bootstrapServers="192.168.56.102:9092";
Properties p=new Properties();
p.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG,bootstrapServers);
p.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG,StringDeserializer.class.getName());
p.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG,StringDeserializer.class.getName());
p.setProperty(ConsumerConfig.GROUP_ID_CONFIG,"app");
• Analyse des résultats de santé d’une population pour prévoir les maladies et les
épidémies, savoir les causes environnementales et prendre les prévention nécessaire
dans les stages primaires.
• Analyse prédictive : En analysant l’historique des achats du client ou les fichiers Logs qui contiennent les
pages visitées, l’entreprise peut prévoir ce que le client cherche et les mettre dans les zones des offres et
publicités afin d’augmenter les achats.
• Analyse des sentiments : De Nombreuses sociétés utilisent les échanges sur les réseaux sociaux comme le
reflet de l’opinion publique. Celle-ci devient une nouvelle source d’informations en temps réel directement
fournie par le consommateur. Les questions d’e-réputation « à quoi est associée mon image ?
» ou « comment est accueilli le nouveau produit que je viens de lancer ? » peuvent être analysées avec ces
données. Le Big Data permet de mesurer l’impact de sa marque, savoir comment est perçue la société
par le public et anticiper les mauvaises critiques.
11/06/2020
• L’analyse de Big Data a joué un rôle important dans la campagne de ré- élection de Barack Obama,
notamment pour analyser les opinions politiques de la population.
• Depuis l'année 2012, le Département de la défense américain investit annuellement sur les projets
de Big Data plus de 250 millions de dollars.
• Le gouvernement américain possède six des dix plus puissants supercalculateurs de la planète.
• La National Security Agency est actuellement en train de construire le Utah Data Center. Une fois
terminé, ce data center pourra supporter des yottaoctets d’information collectés par la NSA sur
internet.
A terme et quand l’analyse en temps réel sera réellement possible, on peut très
bien imaginer qu’une alerte remonte lorsqu’un joueur fatigue afin que
l’entraîneur le remplace.
35
11/06/2020
A titre d’exemple la ville de Londres avait, quant à elle, mis en place un système de
reconnaissance faciale lors des jeux olympiques de 2012 organisés dans la capitale, afin de
lutter contre le terrorisme pour lequel l’alerte était à son maximum.
Domaines d’application
GESTION DE FOULE
BIOLOGIE
TRANSPORT 50 50
11/06/2020
Domaines d’application
Logistique - Logistics
Domaines d’application
Domaines d’application
Domaines d’application
Logistique - Logistics
Consommateurs
Espace de Vente
Entrepôt de données
spatio-temporel et
Dipartimento di Informatica,
acheminement stratégique du
Bioingegneria, Robotica e Ingegneria dei transport de marchandises
Sistemi
dangereuses par route dans
le cadre de la réglementation
ADR
56