dimanche 29 janvier 2017

Sqoop


Sqoop est une application d'interface de ligne de commande pour le transfert de données entre les bases de données relationnelles et Hadoop. [1] Il prend en charge les charges incrémentielles d'une table unique ou d'une requête SQL libre ainsi que des tâches enregistrées qui peuvent être exécutées plusieurs fois pour importer les mises à jour effectuées dans une base de données depuis la dernière importation. Les importations peuvent également être utilisées pour remplir des tables dans Hive ou HBase. [2] Les exportations peuvent être utilisées pour mettre des données de Hadoop dans une base de données relationnelle. Sqoop a obtenu le nom de sql + hadoop. Sqoop est devenu un projet Apache de haut niveau en mars 2012. [3]

Informatica Big Data Management fournit un connecteur basé sur Sqoop [désambiguïsation nécessaire] à partir de la version 10.1. Informatica prend en charge à la fois Sqoop Import et Export, qui est souvent utilisé avec les cas d'utilisation Data Integration sur Hadoop.

Pentaho propose des étapes de connexion basées sur Sqoop, Sqoop Import [4] et Sqoop Export, [5] dans leur suite ETL Pentaho Data Integration depuis la version 4.5 du logiciel. Microsoft utilise un connecteur basé sur Sqoop pour aider à transférer des données à partir des bases de données Microsoft SQL Server vers Hadoop. Couchbase, Inc. fournit également un connecteur de Couchbase Server-Hadoop au moyen de Sqoop. [8]

En 2015 Ralph Kimball a décrit Sqoop comme suit sous le titre L'avenir de ETL: [9]

Plusieurs changements importants doivent avoir lieu dans l'environnement ETL. Tout d'abord, les flux de données provenant de sources d'origine doivent supporter des largeurs de bande énormes, au moins gigaoctets par seconde.

Apache Oozie


Apache Oozie est un système de planification de workflow basé sur serveur pour gérer les jobs Hadoop.

Les flux de travail à Oozie sont définis comme une collection de noeuds de flux de contrôle et d'action dans un graphe acyclique dirigé. Les nœuds de flux de contrôle définissent le début et la fin d'un workflow (nœuds de début, de fin et de défaillance) ainsi qu'un mécanisme permettant de contrôler le chemin d'exécution du workflow (noeuds décision, fork et join). Les nœuds d'action sont le mécanisme par lequel un workflow déclenche l'exécution d'une tâche de calcul / traitement. Oozie prend en charge différents types d'actions, notamment Hadoop MapReduce, Hadoop distribué système de fichiers de fonctionnement, Pig, SSH et e-mail. Oozie peut également être étendu pour prendre en charge d'autres types d'actions.

Les flux de travail Oozie peuvent être paramétrés à l'aide de variables telles que $ {inputDir} dans la définition de workflow. Lors de la soumission d'une tâche de workflow, les valeurs des paramètres doivent être fournies. Si correctement paramétré (en utilisant différents répertoires de sortie), plusieurs travaux de workflow identiques peuvent s'exécuter simultanément.

Oozie est implémenté comme une application web Java qui s'exécute dans un conteneur de servlets Java et est distribué sous la licence Apache 2.0.

Apache Kafka



Apache Kafka est une plate-forme de traitement de flux open-source développée par Apache Software Foundation écrit en Scala et Java. Le projet vise à fournir une plate-forme unifiée, à haut débit et à faible latence pour gérer les flux de données en temps réel. Sa couche de stockage est essentiellement une «file d'attente de messages publicitaires massivement évolutive conçue comme un journal de transactions distribuées», ce qui rend très précieux pour les infrastructures d'entreprise le traitement des données en continu. En outre, Kafka se connecte à des systèmes externes (pour l'importation / exportation de données) via Kafka Connect et fournit Kafka Streams, une bibliothèque de traitement de flux Java.

La conception est fortement influencée par les journaux de transactions.
Apache Kafka a été initialement développé par LinkedIn et a ensuite été ouvert au début de 2011. Graduation de l'incubateur Apache a eu lieu le 23 Octobre 2012. En Novembre 2014, plusieurs ingénieurs qui ont travaillé sur Kafka chez LinkedIn a créé une nouvelle entreprise nommée Confluent  Un accent sur Kafka.

Entreprises qui utilisent Kafka
Ce qui suit est une liste d'entreprises remarquables qui ont utilisé ou utilisent Kafka:

Walmart
Systèmes Cisco
Daumkakao
Netflix
Pay Pal
Spotify
Uber
Boutique
Betfair
Sift Science
HubSpot
CloudFlare
EBay

Apache Velocity



Apache Velocity est un moteur de modèle basé sur Java qui fournit un langage de modèle pour référencer des objets définis dans le code Java. Il vise à assurer une séparation nette entre le niveau de présentation et les niveaux d'entreprise dans une application Web (modèle de modèle-contrôleur-contrôleur).

Velocity est un projet de logiciel libre hébergé par Apache Software Foundation. Il est publié sous la licence Apache.

utilisation

Voici quelques types d'applications qui utilisent Velocity:

Applications Web: les concepteurs Web créent des pages HTML avec des espaces réservés pour des informations dynamiques. La page est traitée avec VelocityViewServlet ou l'un des nombreux cadres qui prennent en charge Velocity.
Génération de code source: Velocity peut être utilisé pour générer du code source Java, SQL ou PostScript, basé sur des modèles. Un certain nombre de logiciels libres et logiciels de développement commercial utiliser Velocity de cette manière. [1]
Emails automatiques: de nombreuses applications génèrent des courriels automatiques pour l'enregistrement de compte, des rappels de mot de passe ou des rapports envoyés automatiquement. Avec Velocity, le modèle de courrier électronique peut être stocké dans un fichier texte plutôt que directement intégré dans le code Java.
Transformation XML: Velocity fournit une tâche Ant, appelée Anakia, qui lit un fichier XML et la rend disponible pour un modèle Velocity. Une application commune consiste à convertir la documentation stockée dans un format générique "xdoc" en un document HTML stylé.
Exemple de code
Le modèle suivant:
## Velocity Hello World
<html>
    <body>
       #set( $foo = "Velocity" )
       ## followed by
       Hello $foo World!
    </body>
</html>
processed by Velocity produce the following HTML:
<html>
    <body>
     Hello Velocity World!
    </body>
</html>
La syntaxe et le concept global des modèles Apache Velocity est similaire à la syntaxe du moteur de modèles WebMacro plus ancien, qui est maintenant également un projet open source
Apache Flume

Apache Flume

Afficher l'image d'origine

Agent component diagram

Apache Flume est un service distribué, fiable et disponible pour collecter, regrouper et déplacer efficacement de grandes quantités de données de journal. Il possède une architecture simple et flexible basée sur les flux de données en flux continu. Il est robuste et tolère les pannes avec des mécanismes de fiabilité accordables et de nombreux mécanismes de reprise et de reprise. Il utilise un modèle de données extensible simple qui permet l'application analytique en ligne.
L'équipe Apache Flume est heureuse d'annoncer la sortie de Flume 1.6.0.

Flume est un service distribué, fiable et disponible pour collecter, regrouper et déplacer efficacement de grandes quantités de données d'événements en continu.

La version 1.6.0 est la neuvième sortie de Flume en tant que projet de haut niveau Apache. Flume 1.6.0 est un logiciel stable, prêt à la production, et est compatible avec les versions précédentes de la Flux 1.x.

Plusieurs mois de développement actif sont entrés dans cette version: 105 correctifs ont été commis depuis la version 1.5.2, ce qui représente de nombreuses fonctionnalités, améliorations et corrections de bugs. Alors que le journal complet des changements peut être trouvé sur la page de la version 1.6.0 (lien ci-dessous), voici quelques nouveautés:

Flume Sink et Source pour Apache Kafka
Un nouveau canal qui utilise Kafka
Hive Sink basé sur le nouveau support Hive Streaming
Authentification de bout en bout dans Flume
Intercepteur simple de recherche et de remplacement de regex
Le journal complet des modifications et la documentation sont disponibles sur la page de version de Flume 1.6.0.

vendredi 27 janvier 2017

apache avro

apache avro

Résultat de recherche d'images pour "apache avro"

Avro est un appel de procédure à distance et une structure de sérialisation de données développée dans le projet Hadoop d'Apache. Il utilise JSON pour définir les types de données et les protocoles, et sérialise les données dans un format binaire compact. Son utilisation principale est Apache Hadoop, où il peut fournir à la fois un format de sérialisation pour les données persistantes, et un format fil pour la communication entre les noeuds Hadoop, et des programmes clients aux services Hadoop.

Il est semblable à Thrift, mais ne nécessite pas d'exécuter un programme de génération de code quand un schéma change (sauf si désiré pour les langues statiquement-typées).

Apache Spark SQL peut accéder à Avro en tant que source de données.
Un fichier conteneur d'objets Avro se compose de:

Un en-tête de fichier, suivi de
Un ou plusieurs blocs de données de fichier.
Un en-tête de fichier se compose de:

Quatre octets, ASCII 'O', 'b', 'j', suivis de 1.
Des métadonnées de fichier, y compris la définition du schéma.
Le marqueur de synchronisation de 16 octets, généré de façon aléatoire pour ce fichier.
Pour les blocs de données Avro spécifie deux encodages de sérialisation: [3] binaire et JSON. La plupart des applications utilisent le codage binaire, car il est plus petit et plus rapide. Pour le débogage et les applications Web, l'encodage JSON peut parfois être approprié.
Définition du schéma
Les schémas Avro sont définis à l'aide de JSON. Les schémas sont composés de types primitifs (null, boolean, int, long, flottant, double, octets et chaîne) et des types complexes (record, enum, array, map, union et fixed).

Exemple de schéma simple:
{
   "namespace": "example.avro",
   "type": "record",
   "name": "User",
   "fields": [
      {"name": "name", "type": "string"},
      {"name": "favorite_number",  "type": ["int", "null"]},
      {"name": "favorite_color", "type": ["string", "null"]}
   ] 
 }

Sérialisation et désérialisation
Les données d'Avro peuvent être stockées avec leur schéma correspondant, ce qui signifie que l'élément sérialisé peut être lu sans connaître le schéma à l'avance.

Exemple de code de sérialisation et de désérialisation en Python
Sérialisation:
import avro.schema
from avro.datafile import DataFileReader, DataFileWriter
from avro.io import DatumReader, DatumWriter

schema = avro.schema.parse(open("user.avsc").read())  # need to know the schema to write

writer = DataFileWriter(open("users.avro", "w"), DatumWriter(), schema)
writer.append({"name": "Alyssa", "favorite_number": 256})
writer.append({"name": "Ben", "favorite_number": 7, "favorite_color": "red"})
writer.close()

mardi 17 janvier 2017

Apache Hive



Apache Hive est une infrastructure d'entrepôt de données construite sur le dessus de Hadoop pour fournir la synthèse des données, la requête et l'analyse.  Hive fournit une interface SQL-like pour interroger les données stockées dans diverses bases de données et systèmes de fichiers qui s'intègrent avec Hadoop. Les requêtes SQL traditionnelles doivent être implémentées dans l'API MapReduce Java pour exécuter des applications et des requêtes SQL sur des données distribuées. Hive fournit l'abstraction SQL nécessaire pour intégrer les requêtes SQL (HiveQL) dans l'API Java sous-jacente sans avoir à implémenter de requêtes dans l'API Java de bas niveau. Comme la plupart des applications d'entreposage de données fonctionnent avec des langages de requête basés sur SQL, Hive supporte la portabilité facile de l'application basée sur SQL vers Hadoop [3]. Tout d'abord développé par Facebook, Apache Hive est maintenant utilisé et développé par d'autres sociétés telles que Netflix et le Financial Industry Regulatory Authority (FINRA).  Amazon maintient une fourchette logicielle d'Apache Hive incluse dans Amazon Elastic MapReduce sur Amazon Web Services.
La norme de facto pour les requêtes SQL dans Hadoop

Depuis son incubation en 2008, Apache Hive est considéré comme le standard de facto pour les requêtes SQL interactives sur des petabytes de données dans Hadoop.

Avec l'achèvement de l'Initiative Stinger et la prochaine phase de Stinger.next, la communauté Apache a considérablement amélioré la vitesse, l'échelle et la sémantique SQL de Hive. Hive s'intègre facilement avec d'autres technologies de centre de données critiques en utilisant une interface JDBC familière.

QU'EST-CE QUE
Hadoop a été construit pour organiser et stocker des quantités massives de données de toutes formes, tailles et formats. En raison de l'architecture «schema on read» de Hadoop, un cluster Hadoop est un réservoir parfait de données hétérogènes structurées et non structurées - à partir d'une multitude de sources.

Les analystes de données utilisent Hive pour interroger, synthétiser, analyser et analyser ces données, puis les transformer en informations opérationnelles.